From f78aae47d519e31bc461d2942bd6b9b84d6e8023 Mon Sep 17 00:00:00 2001 From: imhuwq Date: Tue, 30 Jan 2024 11:25:55 +0800 Subject: [PATCH 01/11] feature(write concern): set write concern to 0 for batch saving --- deepdataspace/model/_base.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/deepdataspace/model/_base.py b/deepdataspace/model/_base.py index d45b713..1b30558 100644 --- a/deepdataspace/model/_base.py +++ b/deepdataspace/model/_base.py @@ -13,6 +13,7 @@ from typing import Tuple from pydantic import BaseModel as _Base +from pymongo import WriteConcern from pymongo.collection import Collection from pymongo.operations import UpdateOne from pymongo.typings import _DocumentType @@ -232,6 +233,8 @@ def batch_update(cls, filters: dict, set_data: dict = None, unset_data: dict = N co = cls.get_collection() if co is None: return None + wc = WriteConcern(w=0) + co = co.with_options(write_concern=wc) op = UpdateOne(filters, {"$set": set_data, "$unset": unset_data}) @@ -257,6 +260,8 @@ def finish_batch_update(cls): op_lock = cls._get_batch_op_lock() with op_lock: co = cls.get_collection() + wc = WriteConcern(w=0) + co = co.with_options(write_concern=wc) queue = _batch_update_queue.setdefault(cls_id, []) if queue: co.bulk_write(queue) @@ -310,6 +315,8 @@ def batch_save(self, batch_size: int = 20, set_on_insert: Dict = None): co = cls.get_collection() if co is None: return None + wc = WriteConcern(w=0) + co = co.with_options(write_concern=wc) _id = self.__dict__.get("id", None) if _id is None: @@ -348,6 +355,8 @@ def finish_batch_save(cls): op_lock = _batch_lock[cls_id] with op_lock: co = cls.get_collection() + wc = WriteConcern(w=0) + co = co.with_options(write_concern=wc) queue = _batch_save_queue.setdefault(cls_id, []) if queue: co.bulk_write(queue) From 6fe9bae0a75cd566cb9b129ce9f1b1714e81cd8c Mon Sep 17 00:00:00 2001 From: imhuwq Date: Wed, 21 Feb 2024 10:50:26 +0800 Subject: [PATCH 02/11] feature(batch insert): support batch insert for dataset importing --- deepdataspace/io/importer.py | 19 +++++------ deepdataspace/model/_base.py | 59 ++++++++++++++++++++++++++++++++++ deepdataspace/model/dataset.py | 33 +++++++++++++------ 3 files changed, 93 insertions(+), 18 deletions(-) diff --git a/deepdataspace/io/importer.py b/deepdataspace/io/importer.py index b3f01c8..6da2225 100644 --- a/deepdataspace/io/importer.py +++ b/deepdataspace/io/importer.py @@ -108,7 +108,7 @@ def __init__(self, name: str, id_: str = None): """ self.dataset_name = name - self.dataset = DataSet.get_importing_dataset(name, id_=id_) + self.dataset = DataSet.get_importing_dataset(name, id_=id_, batch_upsert=False) self._image_queue = {} self._label_queue = {} @@ -123,6 +123,7 @@ def pre_run(self): self.load_existing_user_data() self.dataset.status = constants.DatasetStatus.Importing self.dataset.save() + Image(self.dataset.id).get_collection().drop() def post_run(self): """ @@ -152,14 +153,14 @@ def load_existing_user_data(self): """ pipeline = [ - {"$project": {"flag" : 1, - "flag_ts" : 1, + {"$project": {"flag": 1, + "flag_ts": 1, "label_confirm": 1, - "objects" : { + "objects": { "$filter": { "input": "$objects", - "as" : "object", - "cond" : { + "as": "object", + "cond": { "$eq": ["$$object.label_type", LabelType.User] } } @@ -181,9 +182,9 @@ def load_existing_user_data(self): label_confirm = image.get("label_confirm", {}) self._user_data[image_id] = { - "objects" : user_objects, - "flag" : flag, - "flag_ts" : flag_ts, + "objects": user_objects, + "flag": flag, + "flag_ts": flag_ts, "label_confirm": label_confirm, } diff --git a/deepdataspace/model/_base.py b/deepdataspace/model/_base.py index 1b30558..7ecdf77 100644 --- a/deepdataspace/model/_base.py +++ b/deepdataspace/model/_base.py @@ -15,6 +15,7 @@ from pydantic import BaseModel as _Base from pymongo import WriteConcern from pymongo.collection import Collection +from pymongo.operations import InsertOne from pymongo.operations import UpdateOne from pymongo.typings import _DocumentType @@ -24,6 +25,7 @@ _batch_lock = {} # a dict of batch operation lock for every collection, {'collection_name': batch_op_lock, } _batch_save_queue = {} # a dict of batch save queue for every collection, {'collection_name': batch_save_queue, } _batch_update_queue = {} # a dict of batch update queue for every collection, {'collection_name': batch_update_queue, } +_batch_insert_queue = {} # a dict of batch insert queue for every collection, {'collection_name': batch_insert_queue, } def current_ts(): @@ -362,6 +364,63 @@ def finish_batch_save(cls): co.bulk_write(queue) _batch_save_queue[cls_id] = [] + @classmethod + def batch_create(cls, model_obj: "BaseModel", batch_size: int = 20): + """ + The same as self.batch_save function, + but the performance is better because we save by InsertOne instead of UpdateOne with upsert. + + :param model_obj: the saving model object. + :param batch_size: the batch size. We will only write to mongodb when the batch is full. + """ + + model_obj.post_init() + + co = cls.get_collection() + if co is None: + return None + wc = WriteConcern(w=0) + co = co.with_options(write_concern=wc) + + _id = model_obj.__dict__.get("id", None) + if _id is None: + return None + + data = model_obj.to_dict() + data["_id"] = data.pop("id", None) + + op = InsertOne(data) + + cls_id = cls.get_cls_id() + op_lock = cls._get_batch_op_lock() + with op_lock: + queue = _batch_insert_queue.setdefault(cls_id, []) + queue.append(op) + if len(queue) >= batch_size: + co.bulk_write(queue) + _batch_insert_queue[cls_id] = [] + + @classmethod + def finish_batch_create(cls): + """ + This must be called after all the batch_create calls. + """ + + cls_id = cls.get_cls_id() + if _batch_lock.get(cls_id, None) is None: + with _lock_lock: + _batch_lock[cls_id] = Lock() + + op_lock = _batch_lock[cls_id] + with op_lock: + co = cls.get_collection() + wc = WriteConcern(w=0) + co = co.with_options(write_concern=wc) + queue = _batch_insert_queue.setdefault(cls_id, []) + if queue: + co.bulk_write(queue) + _batch_insert_queue[cls_id] = [] + def delete(self): """ Delete current object from mongodb. diff --git a/deepdataspace/model/dataset.py b/deepdataspace/model/dataset.py index b99f690..370f20d 100644 --- a/deepdataspace/model/dataset.py +++ b/deepdataspace/model/dataset.py @@ -104,6 +104,9 @@ def get_collection(cls, *args, **kwargs) -> Collection[_DocumentType]: _batch_queue: Dict[int, ImageModel] = {} _batch_size: int = 100 + # If True, images from batch_add_image will be saved by UpdateOne with upsert=True. + # If False, images from batch_add_image will be saved by InsertOne, which is faster. + _batch_upsert: bool = True @classmethod def create_dataset(cls, @@ -114,6 +117,7 @@ def create_dataset(cls, files: dict = None, description: str = None, description_func: str = None, + batch_upsert: bool = True, ) -> "DataSet": """ Create a dataset. @@ -129,6 +133,8 @@ def create_dataset(cls, :param description_func: an import path of a function to generate description. The function takes the dataset instance as the only argument and returns a string. If this is provided, it proceeds the description str. + :param batch_upsert: If True, images from batch_add_image will be saved by UpdateOne with upsert=True. + otherwise they will be saved by faster InsertOne operation. :return: the dataset object. """ @@ -148,6 +154,7 @@ def create_dataset(cls, dataset = cls(name=name, id=id_, type=type, path=path, files=files, status=DatasetStatus.Ready, description=description, description_func=description_func) + dataset._batch_upsert = batch_upsert dataset.post_init() dataset.save() return dataset @@ -159,6 +166,7 @@ def get_importing_dataset(cls, type: str = None, path: str = None, files: dict = None, + batch_upsert: bool = True, ) -> "DataSet": """ This is the same as create_dataset. @@ -179,6 +187,7 @@ def get_importing_dataset(cls, files = files or {} dataset = cls(name=name, id=id_, type=type, path=path, files=files, status=DatasetStatus.Waiting) + dataset._batch_upsert = batch_upsert dataset.post_init() dataset.save() return dataset @@ -384,14 +393,20 @@ def _batch_save_image_batch(self): # setup image image.idx = idx image.id = idx if image.id < 0 else image.id - image.batch_save(batch_size=self._batch_size, set_on_insert={"idx": image.idx}) + if self._batch_upsert is True: + image.batch_save(batch_size=self._batch_size, set_on_insert={"idx": image.idx}) + else: + IModel.batch_create(image, batch_size=self._batch_size) idx += 1 self._add_local_file_url_to_whitelist(image.url, whitelist_dirs) self._add_local_file_url_to_whitelist(image.url_full_res, whitelist_dirs) # finish batch saves - IModel.finish_batch_save() + if self._batch_upsert is True: + IModel.finish_batch_save() + else: + IModel.finish_batch_create() Label.finish_batch_save() Category.finish_batch_save() @@ -406,9 +421,9 @@ def _batch_save_image_batch(self): self._batch_queue.clear() - def batch_save_image(self, enforce: bool = False): + def batch_save_image(self): batch_is_full = len(self._batch_queue) >= self._batch_size - if batch_is_full or enforce: + if batch_is_full: self._batch_save_image_batch() return True return False @@ -449,16 +464,16 @@ def cascade_delete(dataset: "DataSet"): return dataset_id = dataset.id - print(f"dataset [{dataset_id}] is found, deleting...") + logger.info(f"dataset [{dataset_id}] is found, deleting...") - print(f"dataset [{dataset_id}] is found, deleting categories...") + logger.info(f"dataset [{dataset_id}] is found, deleting categories...") Category.delete_many({"dataset_id": dataset_id}) - print(f"dataset [{dataset_id}] is found, deleting labels...") + logger.info(f"dataset [{dataset_id}] is found, deleting labels...") Label.delete_many({"dataset_id": dataset_id}) - print(f"dataset [{dataset_id}] is found, deleting images...") + logger.info(f"dataset [{dataset_id}] is found, deleting images...") Image(dataset_id).get_collection().drop() DataSet.delete_many({"id": dataset_id}) - print(f"dataset [{dataset_id}] is deleted.") + logger.info(f"dataset [{dataset_id}] is deleted.") From 794e71fded52f04329263aa014b844e39b5a2f8c Mon Sep 17 00:00:00 2001 From: imhuwq Date: Fri, 23 Feb 2024 18:15:55 +0800 Subject: [PATCH 03/11] refactor(import dataset): import images with raw python dict instead of pydantic model --- deepdataspace/globals.py | 11 +- deepdataspace/io/importer.py | 253 +++++++++++++++++--- deepdataspace/model/_base.py | 73 +----- deepdataspace/model/dataset.py | 73 ++---- deepdataspace/model/image.py | 58 ++--- deepdataspace/model/label_task.py | 3 - deepdataspace/model/object.py | 19 -- deepdataspace/plugins/coco2017/importer.py | 13 +- deepdataspace/scripts/migrate/2023061401.py | 2 +- deepdataspace/services/mongodb.py | 2 +- 10 files changed, 277 insertions(+), 230 deletions(-) diff --git a/deepdataspace/globals.py b/deepdataspace/globals.py index c03edd6..23f118a 100644 --- a/deepdataspace/globals.py +++ b/deepdataspace/globals.py @@ -41,17 +41,8 @@ _mongo_user = urllib.parse.quote_plus(MONGODB_USER) _mongo_pass = urllib.parse.quote_plus(MONGODB_PASS) _mongo_url = f"mongodb://{_mongo_user}:{_mongo_pass}@{MONGODB_HOST}:{MONGODB_PORT}/{MONGODB_DBNAME}" -_mongo_client = MongoClient(_mongo_url, authMechanism="SCRAM-SHA-256") +_mongo_client = MongoClient(_mongo_url, authMechanism="SCRAM-SHA-256", maxPoolSize=None) MongoDB = _mongo_client[MONGODB_DBNAME] # init redis client Redis = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, db=REDIS_DBNAME, password=REDIS_PASS) - -# init sentry client -# TODO: sentry is not necessary for dds tool, remove it as soon as possible -if SENTRY_DSN is not None: - sample_rate = 0.1 if ENV == RunningEnv.Prod else 1.0 - sentry_sdk.init(dsn=SENTRY_DSN, - traces_sample_rate=sample_rate, - environment=ENV, ) - sentry_sdk.set_tag("os.user", get_os_username()) diff --git a/deepdataspace/io/importer.py b/deepdataspace/io/importer.py index 6da2225..e176906 100644 --- a/deepdataspace/io/importer.py +++ b/deepdataspace/io/importer.py @@ -6,25 +6,35 @@ import abc import copy +import json import logging import os -import time +import uuid from typing import Dict from typing import List +from typing import Literal from typing import Tuple from typing import Type from typing import Union from tqdm import tqdm +from pymongo import WriteConcern from deepdataspace import constants +from deepdataspace.constants import AnnotationType from deepdataspace.constants import DatasetFileType +from deepdataspace.constants import DatasetStatus +from deepdataspace.constants import FileReadMode from deepdataspace.constants import LabelName from deepdataspace.constants import LabelType -from deepdataspace.model import Category +from deepdataspace.constants import RedisKey +from deepdataspace.globals import Redis from deepdataspace.model import DataSet -from deepdataspace.model import Label +from deepdataspace.model.category import Category from deepdataspace.model.image import Image +from deepdataspace.model.image import ImageModel +from deepdataspace.model.label import Label +from deepdataspace.utils.file import create_file_url from deepdataspace.utils.function import count_block_time from deepdataspace.utils.string import get_str_md5 @@ -106,14 +116,206 @@ def __init__(self, name: str, id_: str = None): :param id_: the dataset id. If provided, the importer will try to update an existing dataset instead of creating a new one. """ - self.dataset_name = name - self.dataset = DataSet.get_importing_dataset(name, id_=id_, batch_upsert=False) + self.dataset = self.get_importing_dataset(name, id=id_) self._image_queue = {} self._label_queue = {} self._category_queue = {} self._user_data = {} # {image_id: {}} + self._import_queue = {} + self._batch_size = 200 + self.IModel = Image(self.dataset.id) + + @staticmethod + def get_importing_dataset(name: str, + id: str = None, + type: str = None, + path: str = None, + files: dict = None, + ) -> "DataSet": + if id: + dataset = DataSet.find_one({"id": id}) + if dataset is not None: + dataset.type = type or dataset.type + dataset.path = path or dataset.path + dataset.files = files or dataset.files + dataset.name = name + dataset.save() + return dataset + else: + id = uuid.uuid4().hex + + files = files or {} + dataset = DataSet(name=name, id=id, type=type, path=path, files=files, status=DatasetStatus.Waiting) + dataset.save() + return dataset + + def dataset_import_image(self, + dataset: DataSet, + uri: str, + thumb_uri: str = None, + width: int = None, + height: int = None, + id_: int = None, + metadata: dict = None, + flag: int = 0, + flag_ts: int = 0, ) -> dict: + full_uri = uri + thumb_uri = full_uri if thumb_uri is None else thumb_uri + if full_uri.startswith("file://"): + full_uri = create_file_url(full_uri[7:], read_mode=FileReadMode.Binary) + if thumb_uri.startswith("file://"): + thumb_uri = create_file_url(thumb_uri[7:], read_mode=FileReadMode.Binary) + + metadata = metadata or {} + metadata = json.dumps(metadata) + + # if id is not set, + # we use a negative value to indicate we are adding a new image instead of updating an existing one + idx = dataset.num_images + id_ = id_ if id_ is not None else dataset.num_images + image = dict(id=id_, idx=idx, + type=dataset.type, dataset_id=dataset.id, + url=thumb_uri, url_full_res=full_uri, + width=width, height=height, + flag=flag, flag_ts=flag_ts, + objects=[], metadata=metadata, ) + + self._import_queue[id_] = image + dataset.num_images += 1 + return image + + @staticmethod + def image_import_annotation(image: dict, + category: str, + label: str = LabelName.GroundTruth, + label_type: Literal["GT", "Pred", "User"] = "GT", + conf: float = 1.0, + is_group: bool = False, + bbox: Tuple[int, int, int, int] = None, + segmentation: List[List[int]] = None, + alpha_uri: str = None, + keypoints: List[Union[float, int]] = None, + keypoint_colors: List[int] = None, + keypoint_skeleton: List[int] = None, + keypoint_names: List[str] = None, + caption: str = None, + confirm_type: int = 0, ): + + bbox = ImageModel.format_bbox(image["width"], image["height"], bbox) + segmentation = ImageModel.format_segmentation(segmentation) + points, colors, lines, names = ImageModel.format_keypoints(keypoints, + keypoint_colors, + keypoint_skeleton, + keypoint_names) + if alpha_uri and alpha_uri.startswith("file://"): + alpha_path = alpha_uri[7:] + alpha_uri = create_file_url(file_path=alpha_path, + read_mode=FileReadMode.Binary) + + anno_obj = dict(label_name=label, label_type=label_type, + category_name=category, caption=caption, + bounding_box=bbox, segmentation=segmentation, alpha=alpha_uri, + points=points, lines=lines, point_colors=colors, point_names=names, + conf=conf, is_group=is_group, confirm_type=confirm_type) + image["objects"].append(anno_obj) + + def bulk_write_images(self, image_queue: list): + co = self.IModel.get_collection() + wc = WriteConcern(w=0) + co = co.with_options(write_concern=wc) + co.insert_many(image_queue) + + def _dataset_flush_importing(self): + if not self._import_queue: + return + + with count_block_time("prepare batch setup", logger.debug): + dataset_id = self.dataset.id + waiting_labels = dict() + waiting_categories = dict() + object_types = set() + whitelist_dirs = set() + + with count_block_time("prepare batch data", logger.debug): + image_insert_queue = [] + + for image_id, image in self._import_queue.items(): + for obj in image["objects"]: + # setup label + label_name = obj["label_name"] + label_id = waiting_labels.get(label_name, None) + if label_id is None: + label_id = get_str_md5(f"{dataset_id}_{label_name}") + label = Label(name=label_name, id=label_id, type=obj["label_type"], dataset_id=dataset_id) + label.batch_save(batch_size=self._batch_size) + waiting_labels[label_name] = label_id + obj["label_id"] = label_id + + # setup category + cat_name = obj["category_name"] + category_id = waiting_categories.get(cat_name, None) + if category_id is None: + category_id = get_str_md5(f"{dataset_id}_{cat_name}") + category = Category(name=cat_name, id=category_id, dataset_id=dataset_id) + category.batch_save(batch_size=self._batch_size) + waiting_categories[cat_name] = category_id + obj["category_id"] = category_id + + # setup object types + if AnnotationType.Classification not in object_types: + object_types.add(AnnotationType.Classification) + if obj["bounding_box"] and AnnotationType.Detection not in object_types: + object_types.add(AnnotationType.Detection) + if obj["segmentation"] and AnnotationType.Segmentation not in object_types: + object_types.add(AnnotationType.Segmentation) + if obj["alpha"] and AnnotationType.Matting not in object_types: + object_types.add(AnnotationType.Matting) + DataSet.add_local_file_url_to_whitelist(obj["alpha"], whitelist_dirs) + if obj["points"] and AnnotationType.KeyPoints not in object_types: + object_types.add(AnnotationType.KeyPoints) + + # setup image + image["_id"] = image.pop("id") + image_insert_queue.append(image) + + DataSet.add_local_file_url_to_whitelist(image["url"], whitelist_dirs) + DataSet.add_local_file_url_to_whitelist(image["url_full_res"], whitelist_dirs) + + # finish batch saves + with count_block_time("finish batch save", logger.debug): + Label.finish_batch_save() + Category.finish_batch_save() + self.bulk_write_images(image_insert_queue) + + # setup dataset + with count_block_time("setup dataset", logger.debug): + self.dataset.object_types = list(sorted(list(object_types))) + self.dataset.save() + + # save whitelist to redis + with count_block_time("save whitelist", logger.debug): + if whitelist_dirs: + Redis.sadd(RedisKey.DatasetImageDirs, *whitelist_dirs) + + self._import_queue.clear() + + def dataset_flush_importing(self): + batch_is_full = len(self._import_queue) >= self._batch_size + if batch_is_full: + with count_block_time("_dataset_flush_importing", logger.debug): + self._dataset_flush_importing() + return True + return False + + def dataset_finish_importing(self): + """ + This method should be called after all batch_add_image calls are finished. + This saves all images in the buffer queue to database. + """ + self._dataset_flush_importing() + self.dataset.add_cover() def pre_run(self): """ @@ -121,6 +323,7 @@ def pre_run(self): """ self.load_existing_user_data() + self.dataset.num_images = 0 self.dataset.status = constants.DatasetStatus.Importing self.dataset.save() Image(self.dataset.id).get_collection().drop() @@ -129,9 +332,9 @@ def post_run(self): """ A post-run hook for subclass importers to clean up data. """ - - self.dataset.status = constants.DatasetStatus.Ready - self.dataset.save() + self.dataset.add_cover() + DataSet.update_one({"id": self.dataset.id}, {"status": DatasetStatus.Ready}) + self.dataset = DataSet.find_one({"id": self.dataset.id}) def on_error(self, err: Exception): """ @@ -139,11 +342,8 @@ def on_error(self, err: Exception): """ try: - dataset_id = self.dataset.id - Label.delete_many({"dataset_id": dataset_id}) - Category.delete_many({"dataset_id": dataset_id}) - Image(dataset_id).get_collection().drop() - self.dataset.delete() + DataSet.cascade_delete(self.dataset) + self.dataset = None finally: raise err @@ -188,20 +388,20 @@ def load_existing_user_data(self): "label_confirm": label_confirm, } - def add_user_data(self, image): + def image_add_user_data(self, image: dict): """ Save manually added user data back. """ - image_id = image.id + image_id = image["id"] user_data = self._user_data.pop(image_id, {}) if not user_data: return - image.objects.extend(user_data["objects"]) - image.flag = user_data["flag"] - image.flag_ts = user_data["flag_ts"] - image.label_confirm = user_data["label_confirm"] + image.setdefault("objects").extend(user_data["objects"]) + image["flag"] = user_data["flag"] + image["flag_ts"] = user_data["flag_ts"] + image["label_confirm"] = user_data["label_confirm"] def run_import(self): """ @@ -211,15 +411,14 @@ def run_import(self): desc = f"dataset[{self.dataset.name}@{self.dataset.id}] import progress" for (image, anno_list) in tqdm(self, desc=desc, unit=" images"): - beg = int(time.time() * 1000) - image = self.dataset.batch_add_image(**image) - self.add_user_data(image) + # for (image, anno_list) in self: + image = self.dataset_import_image(self.dataset, **image) + self.image_add_user_data(image) for anno in anno_list: - image.batch_add_annotation(**anno) - image.finish_batch_add_annotation() - logger.debug(f"time cost of import one image: {int(time.time() * 1000) - beg}ms") - logger.debug(f"imported image, id={image.id}, url={image.url}") - self.dataset.finish_batch_add_image() + self.image_import_annotation(image, **anno) + self.dataset_flush_importing() + + self.dataset_finish_importing() def run(self): """ diff --git a/deepdataspace/model/_base.py b/deepdataspace/model/_base.py index 7ecdf77..977228d 100644 --- a/deepdataspace/model/_base.py +++ b/deepdataspace/model/_base.py @@ -5,6 +5,7 @@ """ import abc +import logging import time from threading import Lock from typing import ClassVar @@ -15,7 +16,6 @@ from pydantic import BaseModel as _Base from pymongo import WriteConcern from pymongo.collection import Collection -from pymongo.operations import InsertOne from pymongo.operations import UpdateOne from pymongo.typings import _DocumentType @@ -27,6 +27,8 @@ _batch_update_queue = {} # a dict of batch update queue for every collection, {'collection_name': batch_update_queue, } _batch_insert_queue = {} # a dict of batch insert queue for every collection, {'collection_name': batch_insert_queue, } +logger = logging.getLogger("model.base") + def current_ts(): """ @@ -56,12 +58,6 @@ def get_collection(cls, *args, **kwargs) -> Collection[_DocumentType]: raise NotImplementedError - def post_init(self): - """ - Post init hook for initializing a model object. - """ - pass - @classmethod def from_dict(cls, data: dict): """ @@ -69,7 +65,6 @@ def from_dict(cls, data: dict): """ obj = cls.parse_obj(data) - obj.post_init() return obj def to_dict(self, include: list = None, exclude: list = None): @@ -282,7 +277,6 @@ def save(self, refresh=False): If refresh is True, the object will be re-fetched from mongodb after saving. """ - self.post_init() co = self.get_collection() if co is None: return None @@ -300,7 +294,6 @@ def save(self, refresh=False): new_self = co.find_one({"_id": _id}) new_self.pop("_id", None) self.__dict__.update(new_self) - self.post_init() return self def batch_save(self, batch_size: int = 20, set_on_insert: Dict = None): @@ -310,9 +303,6 @@ def batch_save(self, batch_size: int = 20, set_on_insert: Dict = None): :param batch_size: the batch size. We will only write to mongodb when the batch is full. :param set_on_insert: the fields only need to be set when we are inserting a new object. """ - - self.post_init() - cls = self.__class__ co = cls.get_collection() if co is None: @@ -364,63 +354,6 @@ def finish_batch_save(cls): co.bulk_write(queue) _batch_save_queue[cls_id] = [] - @classmethod - def batch_create(cls, model_obj: "BaseModel", batch_size: int = 20): - """ - The same as self.batch_save function, - but the performance is better because we save by InsertOne instead of UpdateOne with upsert. - - :param model_obj: the saving model object. - :param batch_size: the batch size. We will only write to mongodb when the batch is full. - """ - - model_obj.post_init() - - co = cls.get_collection() - if co is None: - return None - wc = WriteConcern(w=0) - co = co.with_options(write_concern=wc) - - _id = model_obj.__dict__.get("id", None) - if _id is None: - return None - - data = model_obj.to_dict() - data["_id"] = data.pop("id", None) - - op = InsertOne(data) - - cls_id = cls.get_cls_id() - op_lock = cls._get_batch_op_lock() - with op_lock: - queue = _batch_insert_queue.setdefault(cls_id, []) - queue.append(op) - if len(queue) >= batch_size: - co.bulk_write(queue) - _batch_insert_queue[cls_id] = [] - - @classmethod - def finish_batch_create(cls): - """ - This must be called after all the batch_create calls. - """ - - cls_id = cls.get_cls_id() - if _batch_lock.get(cls_id, None) is None: - with _lock_lock: - _batch_lock[cls_id] = Lock() - - op_lock = _batch_lock[cls_id] - with op_lock: - co = cls.get_collection() - wc = WriteConcern(w=0) - co = co.with_options(write_concern=wc) - queue = _batch_insert_queue.setdefault(cls_id, []) - if queue: - co.bulk_write(queue) - _batch_insert_queue[cls_id] = [] - def delete(self): """ Delete current object from mongodb. diff --git a/deepdataspace/model/dataset.py b/deepdataspace/model/dataset.py index 370f20d..31c16ce 100644 --- a/deepdataspace/model/dataset.py +++ b/deepdataspace/model/dataset.py @@ -27,6 +27,7 @@ from deepdataspace.model.image import ImageModel from deepdataspace.model.label import Label from deepdataspace.utils.file import create_file_url +from deepdataspace.utils.function import count_block_time from deepdataspace.utils.string import get_str_md5 logger = logging.getLogger("io.model.dataset") @@ -103,10 +104,7 @@ def get_collection(cls, *args, **kwargs) -> Collection[_DocumentType]: group_name: str = None _batch_queue: Dict[int, ImageModel] = {} - _batch_size: int = 100 - # If True, images from batch_add_image will be saved by UpdateOne with upsert=True. - # If False, images from batch_add_image will be saved by InsertOne, which is faster. - _batch_upsert: bool = True + _batch_size: int = 200 @classmethod def create_dataset(cls, @@ -117,7 +115,6 @@ def create_dataset(cls, files: dict = None, description: str = None, description_func: str = None, - batch_upsert: bool = True, ) -> "DataSet": """ Create a dataset. @@ -145,6 +142,7 @@ def create_dataset(cls, dataset.path = path or dataset.path dataset.files = files or dataset.files dataset.name = name + dataset.num_images = Image(dataset.id).count_num({}) dataset.save() return dataset else: @@ -154,45 +152,11 @@ def create_dataset(cls, dataset = cls(name=name, id=id_, type=type, path=path, files=files, status=DatasetStatus.Ready, description=description, description_func=description_func) - dataset._batch_upsert = batch_upsert - dataset.post_init() + dataset.num_images = Image(dataset.id).count_num({}) dataset.save() return dataset - @classmethod - def get_importing_dataset(cls, - name: str, - id_: str = None, - type: str = None, - path: str = None, - files: dict = None, - batch_upsert: bool = True, - ) -> "DataSet": - """ - This is the same as create_dataset. - But if the dataset is new, it's status will be set to "waiting" instead of "ready". - """ - - if id_: - dataset = DataSet.find_one({"id": id_}) - if dataset is not None: - dataset.type = type or dataset.type - dataset.path = path or dataset.path - dataset.files = files or dataset.files - dataset.name = name - dataset.save() - return dataset - else: - id_ = uuid.uuid4().hex - - files = files or {} - dataset = cls(name=name, id=id_, type=type, path=path, files=files, status=DatasetStatus.Waiting) - dataset._batch_upsert = batch_upsert - dataset.post_init() - dataset.save() - return dataset - - def _add_cover(self, force_update: bool = False): + def add_cover(self, force_update: bool = False): has_cover = bool(self.cover_url) if has_cover and not force_update: return @@ -266,17 +230,16 @@ def add_image(self, image.flag = flag or image.flag image.flag_ts = flag_ts or image.flag_ts image.metadata = metadata or image.metadata - image.post_init() image._dataset = self # this saves a db query image.save() self.num_images = Model.count_num({}) - self._add_cover() + self.add_cover() # save whitelist to redis whitelist_dirs = set() - self._add_local_file_url_to_whitelist(image.url, whitelist_dirs) - self._add_local_file_url_to_whitelist(image.url_full_res, whitelist_dirs) + self.add_local_file_url_to_whitelist(image.url, whitelist_dirs) + self.add_local_file_url_to_whitelist(image.url_full_res, whitelist_dirs) if whitelist_dirs: Redis.sadd(RedisKey.DatasetImageDirs, *whitelist_dirs) @@ -335,7 +298,7 @@ def batch_add_image(self, return image @staticmethod - def _add_local_file_url_to_whitelist(url: str, whitelist: set): + def add_local_file_url_to_whitelist(url: str, whitelist: set): if not url or not url.startswith("/files/local_files"): return @@ -386,27 +349,21 @@ def _batch_save_image_batch(self): object_types.add(AnnotationType.Segmentation) if obj.alpha and AnnotationType.Matting not in object_types: object_types.add(AnnotationType.Matting) - self._add_local_file_url_to_whitelist(obj.alpha, whitelist_dirs) + self.add_local_file_url_to_whitelist(obj.alpha, whitelist_dirs) if obj.points and AnnotationType.KeyPoints not in object_types: object_types.add(AnnotationType.KeyPoints) # setup image image.idx = idx image.id = idx if image.id < 0 else image.id - if self._batch_upsert is True: - image.batch_save(batch_size=self._batch_size, set_on_insert={"idx": image.idx}) - else: - IModel.batch_create(image, batch_size=self._batch_size) + image.batch_save(batch_size=self._batch_size, set_on_insert={"idx": image.idx}) idx += 1 - self._add_local_file_url_to_whitelist(image.url, whitelist_dirs) - self._add_local_file_url_to_whitelist(image.url_full_res, whitelist_dirs) + self.add_local_file_url_to_whitelist(image.url, whitelist_dirs) + self.add_local_file_url_to_whitelist(image.url_full_res, whitelist_dirs) # finish batch saves - if self._batch_upsert is True: - IModel.finish_batch_save() - else: - IModel.finish_batch_create() + IModel.finish_batch_save() Label.finish_batch_save() Category.finish_batch_save() @@ -434,7 +391,7 @@ def finish_batch_add_image(self): This saves all images in the buffer queue to database. """ self._batch_save_image_batch() - self._add_cover() + self.add_cover() def eval_description(self): """ diff --git a/deepdataspace/model/image.py b/deepdataspace/model/image.py index 2840232..39fd579 100644 --- a/deepdataspace/model/image.py +++ b/deepdataspace/model/image.py @@ -163,7 +163,6 @@ def from_dict(cls, data: dict): data.setdefault("idx", data["id"]) obj = cls.parse_obj(data) - obj.post_init() return obj @staticmethod @@ -173,17 +172,6 @@ def _convert_local_to_url(file_uri: str): read_mode=constants.FileReadMode.Binary) return file_url - def post_init(self): - """ - Ensure the url are visible for local file uri. - """ - - if self.url.startswith("file://"): - self.url = self._convert_local_to_url(self.url) - - if self.url_full_res.startswith("file://"): - self.url_full_res = self._convert_local_to_url(self.url_full_res) - def _add_label(self, label: str, label_type: str): """ Add a label to the dataset the image belongs to. @@ -200,7 +188,6 @@ def _add_label(self, label: str, label_type: str): if label_obj is None: label_obj = Label(name=label, id=label_id, type=label_type, dataset_id=self.dataset_id) - label_obj.post_init() label_obj.save() self._labels[label_id] = label_obj return label_obj @@ -217,13 +204,12 @@ def _add_category(self, category: str): if category_obj is None: category_obj = Category(name=category, id=category_id, dataset_id=self.dataset_id) - category_obj.post_init() category_obj.save() self._categories[category_id] = category_obj return category_obj @staticmethod - def _format_bbox(width, height, bbox: Tuple[int, int, int, int]): + def format_bbox(width, height, bbox: Tuple[int, int, int, int]): """ Convert the bbox data to the internal format. """ @@ -239,7 +225,7 @@ def _format_bbox(width, height, bbox: Tuple[int, int, int, int]): return bounding_box @staticmethod - def _format_segmentation(segmentation: List[List[int]]): + def format_segmentation(segmentation: List[List[int]]): """ Convert the segmentation data to the internal format. """ @@ -249,10 +235,10 @@ def _format_segmentation(segmentation: List[List[int]]): return "/".join([",".join([str(x) for x in seg]) for seg in segmentation]) @staticmethod - def _format_keypoints(keypoints: List[Union[float, int]], - colors: List[int] = None, - skeleton: List[int] = None, - names: List[str] = None): + def format_keypoints(keypoints: List[Union[float, int]], + colors: List[int] = None, + skeleton: List[int] = None, + names: List[str] = None): """ Convert the coco_keypoints data to the internal format. """ @@ -333,20 +319,24 @@ def _add_annotation(self, if not self.width or not self.height: raise ValueError("image width and height must be set before setting bbox") + if alpha_uri and alpha_uri.startswith("file://"): + alpha_path = alpha_uri[7:] + alpha_uri = create_file_url(file_path=alpha_path, + read_mode=FileReadMode.Binary) + label_obj = self._add_label(label, label_type) category_obj = self._add_category(category) - bounding_box = self._format_bbox(self.width, self.height, bbox) - segmentation = self._format_segmentation(segmentation) - points, colors, lines, names = self._format_keypoints(keypoints, - keypoint_colors, - keypoint_skeleton, - keypoint_names) + bounding_box = self.format_bbox(self.width, self.height, bbox) + segmentation = self.format_segmentation(segmentation) + points, colors, lines, names = self.format_keypoints(keypoints, + keypoint_colors, + keypoint_skeleton, + keypoint_names) anno_obj = Object(label_name=label, label_type=label_type, label_id=label_obj.id, category_name=category, category_id=category_obj.id, caption=caption, bounding_box=bounding_box, segmentation=segmentation, alpha=alpha_uri, points=points, lines=lines, point_colors=colors, point_names=names, conf=conf, is_group=is_group, confirm_type=confirm_type) - anno_obj.post_init() self.objects.append(anno_obj) def add_annotation(self, @@ -421,7 +411,7 @@ def batch_add_annotation(self, for annotation_data in annotations: image.batch_add_annotation(**annotation_data) - dataset.finish_batch_add+image() + dataset.finish_batch_add_image() :param category: the category name. :param label: the label name. @@ -442,12 +432,12 @@ def batch_add_annotation(self, :return: None """ - bbox = self._format_bbox(self.width, self.height, bbox) - segmentation = self._format_segmentation(segmentation) - points, colors, lines, names = self._format_keypoints(keypoints, - keypoint_colors, - keypoint_skeleton, - keypoint_names) + bbox = self.format_bbox(self.width, self.height, bbox) + segmentation = self.format_segmentation(segmentation) + points, colors, lines, names = self.format_keypoints(keypoints, + keypoint_colors, + keypoint_skeleton, + keypoint_names) if alpha_uri and alpha_uri.startswith("file://"): alpha_path = alpha_uri[7:] alpha_uri = create_file_url(file_path=alpha_path, diff --git a/deepdataspace/model/label_task.py b/deepdataspace/model/label_task.py index 9f00a29..42736cf 100644 --- a/deepdataspace/model/label_task.py +++ b/deepdataspace/model/label_task.py @@ -462,7 +462,6 @@ def _get_label(dataset_id: str, label_set_name: str): """ label_id = get_str_md5(f"{dataset_id}_{label_set_name}") label_obj = Label(name=label_set_name, id=label_id, type=LabelType.GroundTruth, dataset_id=dataset_id) - label_obj.post_init() label_obj.save() return label_obj @@ -475,7 +474,6 @@ def _get_category(dataset_id: str, category_name: str, categories: dict): if cat_obj is None: cat_id = get_str_md5(f"{dataset_id}_{category_name}") cat_obj = Category(id=cat_id, name=category_name, dataset_id=dataset_id) - cat_obj.post_init() cat_obj.save() categories[category_name] = cat_obj return cat_obj @@ -529,7 +527,6 @@ def _export_dataset(self, dataset: DataSet, label_set_name: str): anno_obj = Object(label_name=label_obj.name, label_type=label_obj.type, label_id=label_obj.id, category_name=cat_obj.name, category_id=cat_obj.id, bounding_box=anno["bounding_box"]) - anno_obj.post_init() image.objects.append(anno_obj) image.batch_save() diff --git a/deepdataspace/model/object.py b/deepdataspace/model/object.py index 55133a9..5855969 100644 --- a/deepdataspace/model/object.py +++ b/deepdataspace/model/object.py @@ -89,22 +89,3 @@ def get_collection(cls, *args, **kwargs): confirm_type: Optional[int] = 0 # the image confirm type, 0 no confirm required, 1 gt may be fn, 2 pred may be fp compare_result: Optional[Dict[str, str]] = {} # {"90": "FP", ..., "10": "OK"} matched_det_idx: Optional[int] = None # The matched ground truth index, for prediction objects only. - - @staticmethod - def _convert_file_path_to_url(file_uri: str): - """ - Convert a local file path to a visible file url. - """ - - file_path = file_uri[7:] - file_url = create_file_url(file_path=file_path, - read_mode=constants.FileReadMode.Binary) - return file_url - - def post_init(self): - """ - Override the post_init method to convert the alpha file path to url. - """ - - if self.alpha and self.alpha.startswith("file://"): - self.alpha = self._convert_file_path_to_url(self.alpha) diff --git a/deepdataspace/plugins/coco2017/importer.py b/deepdataspace/plugins/coco2017/importer.py index 1d4ba15..4016118 100644 --- a/deepdataspace/plugins/coco2017/importer.py +++ b/deepdataspace/plugins/coco2017/importer.py @@ -1,14 +1,13 @@ """ Import the coco2017 dataset and save metadata into mongodb. """ - import json import logging import os +import traceback from typing import Dict from typing import List from typing import Tuple -import traceback from deepdataspace.constants import DatasetFileType from deepdataspace.constants import DatasetType @@ -83,11 +82,11 @@ def _parse_meta(meta_path: str): assert os.path.isdir(image_root) and os.path.exists(image_root) info = { - "dataset_name" : dataset_name, - "ground_truth" : ground_truth, - "predictions" : predictions, - "image_root" : image_root, - "dynamic_caption" : getattr(module, "dynamic_caption", False), + "dataset_name": dataset_name, + "ground_truth": ground_truth, + "predictions": predictions, + "image_root": image_root, + "dynamic_caption": getattr(module, "dynamic_caption", False), "caption_generator": getattr(module, "caption_generator", None), } diff --git a/deepdataspace/scripts/migrate/2023061401.py b/deepdataspace/scripts/migrate/2023061401.py index 71f4aae..5105feb 100644 --- a/deepdataspace/scripts/migrate/2023061401.py +++ b/deepdataspace/scripts/migrate/2023061401.py @@ -16,7 +16,7 @@ def add_covers(): datasets = DataSet.find_many({}) for idx, dataset in enumerate(datasets): - dataset._add_cover(force_update=True) + dataset.add_cover(force_update=True) logger.info(f"[{idx + 1}/{num}]Added cover to dataset[{dataset.id}], cover_url={dataset.cover_url}") logger.info("Finished adding covers") diff --git a/deepdataspace/services/mongodb.py b/deepdataspace/services/mongodb.py index 83c9d2b..ffe533f 100644 --- a/deepdataspace/services/mongodb.py +++ b/deepdataspace/services/mongodb.py @@ -82,7 +82,7 @@ def _start_mongodb(self, auth: bool = False): self.port = find_free_port(*port_range) while True: run_cmd = cmd[:] - run_cmd.extend(["--port", str(self.port)]) + run_cmd.extend(["--nojournal", "--port", str(self.port)]) try: self.start_process(run_cmd) except Exception as err: From 187334c2e6e399bc09773215527dee1fba8a0a18 Mon Sep 17 00:00:00 2001 From: imhuwq Date: Mon, 26 Feb 2024 10:17:37 +0800 Subject: [PATCH 04/11] feature(mongodb): enable journaling --- deepdataspace/services/mongodb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepdataspace/services/mongodb.py b/deepdataspace/services/mongodb.py index ffe533f..83c9d2b 100644 --- a/deepdataspace/services/mongodb.py +++ b/deepdataspace/services/mongodb.py @@ -82,7 +82,7 @@ def _start_mongodb(self, auth: bool = False): self.port = find_free_port(*port_range) while True: run_cmd = cmd[:] - run_cmd.extend(["--nojournal", "--port", str(self.port)]) + run_cmd.extend(["--port", str(self.port)]) try: self.start_process(run_cmd) except Exception as err: From 4c03620141a9069f14d8ab342c780df9380fae2b Mon Sep 17 00:00:00 2001 From: imhuwq Date: Mon, 26 Feb 2024 11:40:24 +0800 Subject: [PATCH 05/11] delete(label confirm): delete label confirm attribute for objects --- deepdataspace/io/importer.py | 17 +--- deepdataspace/model/image.py | 22 +---- deepdataspace/model/object.py | 6 -- deepdataspace/plugins/tsv/importer.py | 4 - .../server/resources/api_v1/__init__.py | 2 - .../server/resources/api_v1/annotations.py | 1 - .../server/resources/api_v1/images.py | 11 +-- .../server/resources/api_v1/label_clone.py | 5 +- .../server/resources/api_v1/object_confirm.py | 84 ------------------- 9 files changed, 11 insertions(+), 141 deletions(-) delete mode 100644 deepdataspace/server/resources/api_v1/object_confirm.py diff --git a/deepdataspace/io/importer.py b/deepdataspace/io/importer.py index e176906..66d70a0 100644 --- a/deepdataspace/io/importer.py +++ b/deepdataspace/io/importer.py @@ -77,8 +77,7 @@ def format_annotation(category: str, keypoint_colors: List[int] = None, keypoint_skeleton: List[int] = None, keypoint_names: List[str] = None, - caption: str = None, - confirm_type: int = 0, ): + caption: str = None): """ A helper function to format annotation data. """ @@ -95,8 +94,7 @@ def format_annotation(category: str, keypoint_colors=keypoint_colors, keypoint_skeleton=keypoint_skeleton, keypoint_names=keypoint_names, - caption=caption, - confirm_type=confirm_type, ) + caption=caption) class Importer(ImportHelper, abc.ABC): @@ -200,8 +198,7 @@ def image_import_annotation(image: dict, keypoint_colors: List[int] = None, keypoint_skeleton: List[int] = None, keypoint_names: List[str] = None, - caption: str = None, - confirm_type: int = 0, ): + caption: str = None): bbox = ImageModel.format_bbox(image["width"], image["height"], bbox) segmentation = ImageModel.format_segmentation(segmentation) @@ -218,7 +215,7 @@ def image_import_annotation(image: dict, category_name=category, caption=caption, bounding_box=bbox, segmentation=segmentation, alpha=alpha_uri, points=points, lines=lines, point_colors=colors, point_names=names, - conf=conf, is_group=is_group, confirm_type=confirm_type) + conf=conf, is_group=is_group) image["objects"].append(anno_obj) def bulk_write_images(self, image_queue: list): @@ -355,7 +352,6 @@ def load_existing_user_data(self): pipeline = [ {"$project": {"flag": 1, "flag_ts": 1, - "label_confirm": 1, "objects": { "$filter": { "input": "$objects", @@ -378,14 +374,10 @@ def load_existing_user_data(self): flag = image.get("flag", 0) flag_ts = image.get("flag_ts", 0) - # manually added confirm flag - label_confirm = image.get("label_confirm", {}) - self._user_data[image_id] = { "objects": user_objects, "flag": flag, "flag_ts": flag_ts, - "label_confirm": label_confirm, } def image_add_user_data(self, image: dict): @@ -401,7 +393,6 @@ def image_add_user_data(self, image: dict): image.setdefault("objects").extend(user_data["objects"]) image["flag"] = user_data["flag"] image["flag_ts"] = user_data["flag_ts"] - image["label_confirm"] = user_data["label_confirm"] def run_import(self): """ diff --git a/deepdataspace/model/image.py b/deepdataspace/model/image.py index 39fd579..50c864e 100644 --- a/deepdataspace/model/image.py +++ b/deepdataspace/model/image.py @@ -90,12 +90,6 @@ class ImageModel(BaseModel): fp counter of image in the format {"label_id": {90:x, 80: y, ..., 10: z}}. Default is an empty dict. num_fp_cat: dict fp counter of image categorized, in the format {"label_id": {"category_id: {90:x, 80: y, ..., 10: z}}}. Default is an empty dict. - label_confirm: dict - Confirm status of every label sets, where confirm can be: - 0 = not confirmed, - 1 = confirmed, - 2 = refine required. - Format is {"label_id": {"confirm": int, "confirm_ts": int}}. Default is an empty dict. """ @classmethod @@ -128,10 +122,6 @@ def get_collection(cls): num_fp: dict = {} # {"label_id": {90:x, 80: y, ..., 10: z}} num_fp_cat: dict = {} # {"label_id": {"category_id: {90:x, 80: y, ..., 10: z}}} - # confirm status of every label sets, confirm: 0 = not confirmed, 1 = confirmed, 2 = refine required - # {"label_id": {"confirm": int, "confirm_ts": int}} - label_confirm: dict = {} - _dataset = None _labels: dict = {} @@ -313,7 +303,6 @@ def _add_annotation(self, keypoint_skeleton: List[int] = None, keypoint_names: List[str] = None, caption: str = None, - confirm_type: int = 0, ): if bbox: if not self.width or not self.height: @@ -336,7 +325,7 @@ def _add_annotation(self, category_name=category, category_id=category_obj.id, caption=caption, bounding_box=bounding_box, segmentation=segmentation, alpha=alpha_uri, points=points, lines=lines, point_colors=colors, point_names=names, - conf=conf, is_group=is_group, confirm_type=confirm_type) + conf=conf, is_group=is_group) self.objects.append(anno_obj) def add_annotation(self, @@ -353,7 +342,6 @@ def add_annotation(self, keypoint_skeleton: List[int] = None, keypoint_names: List[str] = None, caption: str = None, - confirm_type: int = 0, ): """ Add an annotation to the image. @@ -373,13 +361,12 @@ def add_annotation(self, :param keypoint_colors: the key point colors, [255, 0, 0, ...]. :param keypoint_skeleton: the key point skeleton, [0, 1, 2, ...]. :param caption: the caption of the annotation. - :param confirm_type: the confirm_type of the annotation, 0 = not confirmed, 1 = gt may be fn, 2 = pred may be fp """ self._add_annotation(category, label, label_type, conf, is_group, bbox, segmentation, alpha_uri, keypoints, keypoint_colors, keypoint_skeleton, keypoint_names, - caption, confirm_type) + caption) self.save() self._update_dataset(bbox, segmentation, alpha_uri, keypoints) @@ -398,7 +385,7 @@ def batch_add_annotation(self, keypoint_skeleton: List[int] = None, keypoint_names: List[str] = None, caption: str = None, - confirm_type: int = 0, ): + ): """ The batch version of add_annotation. The performance is better if we are saving a lot of annotations. @@ -428,7 +415,6 @@ def batch_add_annotation(self, :param keypoint_colors: the key point colors, [255, 0, 0, ...]. :param keypoint_skeleton: the key point skeleton, [0, 1, 2, ...]. :param caption: the caption of the annotation. - :param confirm_type: the confirm_type of the annotation, 0 = not confirmed, 1 = gt may be fn, 2 = pred may be fp :return: None """ @@ -447,7 +433,7 @@ def batch_add_annotation(self, category_name=category, caption=caption, bounding_box=bbox, segmentation=segmentation, alpha=alpha_uri, points=points, lines=lines, point_colors=colors, point_names=names, - conf=conf, is_group=is_group, confirm_type=confirm_type) + conf=conf, is_group=is_group) self.objects.append(anno_obj) def finish_batch_add_annotation(self): diff --git a/deepdataspace/model/object.py b/deepdataspace/model/object.py index 5855969..a0c7a14 100644 --- a/deepdataspace/model/object.py +++ b/deepdataspace/model/object.py @@ -6,13 +6,10 @@ from typing import Dict from typing import List -from typing import Literal from typing import Optional from typing import Union -from deepdataspace import constants from deepdataspace.model._base import BaseModel -from deepdataspace.utils.file import create_file_url class Object(BaseModel): @@ -52,8 +49,6 @@ class Object(BaseModel): The point names of the object. caption: str The caption of the object. - confirm_type: int - The image confirm type, 0 for unconfirmed, 1 for confirmed, 2 for rejected. compare_result: dict The compare result of the object, {"90": "FP", ..., "10": "OK"}. matched_det_idx: int @@ -86,6 +81,5 @@ def get_collection(cls, *args, **kwargs): point_colors: Optional[List[int]] = [] point_names: Optional[List[str]] = [] caption: Optional[str] = "" - confirm_type: Optional[int] = 0 # the image confirm type, 0 no confirm required, 1 gt may be fn, 2 pred may be fp compare_result: Optional[Dict[str, str]] = {} # {"90": "FP", ..., "10": "OK"} matched_det_idx: Optional[int] = None # The matched ground truth index, for prediction objects only. diff --git a/deepdataspace/plugins/tsv/importer.py b/deepdataspace/plugins/tsv/importer.py index e243ecb..490516b 100644 --- a/deepdataspace/plugins/tsv/importer.py +++ b/deepdataspace/plugins/tsv/importer.py @@ -156,9 +156,6 @@ def load_objects(self, # prepare is_group is_group = bool(obj.get("iscrowd", False)) - # prepare confirm_type - confirm_type = obj.get("confirm_type", None) - # prepare confidence confidence = obj.get("conf", 1.0) @@ -167,7 +164,6 @@ def load_objects(self, label=label_name, label_type=label_type, conf=confidence, is_group=is_group, bbox=bbox, segmentation=segmentation, alpha_uri=alpha, - confirm_type=confirm_type, ) obj_list.append(obj) diff --git a/deepdataspace/server/resources/api_v1/__init__.py b/deepdataspace/server/resources/api_v1/__init__.py index 3681a8d..445f99b 100644 --- a/deepdataspace/server/resources/api_v1/__init__.py +++ b/deepdataspace/server/resources/api_v1/__init__.py @@ -17,7 +17,6 @@ from deepdataspace.server.resources.api_v1.image_flags import ImageFlagsView from deepdataspace.server.resources.api_v1.images import ImagesView from deepdataspace.server.resources.api_v1.label_clone import LabelCloneView -from deepdataspace.server.resources.api_v1.object_confirm import ObjectConfirmView urls = [ path("ping", ping.PingView.as_view()), @@ -29,7 +28,6 @@ path("datasets/", DatasetView.as_view()), path("image_flags", ImageFlagsView.as_view()), path("label_clone", LabelCloneView.as_view()), - path("object_confirm", ObjectConfirmView.as_view()), path("annotations", AnnotationsView.as_view()), path("comparisons", ComparisonsView.as_view()), path("label_projects", label_tasks.ProjectsView.as_view()), diff --git a/deepdataspace/server/resources/api_v1/annotations.py b/deepdataspace/server/resources/api_v1/annotations.py index 49b97a4..3580e22 100644 --- a/deepdataspace/server/resources/api_v1/annotations.py +++ b/deepdataspace/server/resources/api_v1/annotations.py @@ -118,7 +118,6 @@ def _save_annotations(dataset: DataSet, image, annotations): cur_objs.append(obj) image.objects = cur_objs - image.label_confirm[label_id] = {"confirm": 1, "confirm_ts": int(time.time())} image.save() return saving_categories, saving_labels diff --git a/deepdataspace/server/resources/api_v1/images.py b/deepdataspace/server/resources/api_v1/images.py index da93987..acd303c 100644 --- a/deepdataspace/server/resources/api_v1/images.py +++ b/deepdataspace/server/resources/api_v1/images.py @@ -68,7 +68,6 @@ class ImagesView(BaseAPIView): Argument("dataset_id", str, Argument.QUERY, required=True), Argument("category_id", str, Argument.QUERY, required=False), Argument("flag", int, Argument.QUERY, required=False), - Argument("confirm", int, Argument.QUERY, required=False), Argument("label_id", str, Argument.QUERY, required=False), Argument("page_num", Argument.PositiveInt, Argument.QUERY, default=1), Argument("page_size", Argument.PositiveInt, Argument.QUERY, default=100) @@ -80,7 +79,7 @@ def get(self, request): - GET /api/v1/images """ - dataset_id, category_id, flag, confirm, label_id, page_num, page_size = parse_arguments(request, self.get_args) + dataset_id, category_id, flag, label_id, page_num, page_size = parse_arguments(request, self.get_args) dataset = DataSet.find_one({"_id": dataset_id}) if dataset is None: @@ -101,15 +100,13 @@ def get(self, request): if flag is not None: filters["flag"] = flag - if confirm is not None and label_id is not None: - filters[f"label_confirm.{label_id}.confirm"] = confirm total = Image(dataset_id).count_num(filters) image_list = [] offset = max(0, page_size * (page_num - 1)) - includes = {"id", "idx", "flag", "label_confirm", "objects", "metadata", "type", "width", "height", "url", + includes = {"id", "idx", "flag", "objects", "metadata", "type", "width", "height", "url", "url_full_res"} includes = {i: 1 for i in includes} @@ -123,10 +120,6 @@ def get(self, request): skip=offset, size=page_size, to_dict=True): - - # TODO keep for compatibility, delete this after run op/migrates/add_confirm_fields.py - image.setdefault("label_confirm", {}) - for obj in image["objects"]: obj["source"] = obj["label_type"] # TODO keep for compatibility, delete this in the future diff --git a/deepdataspace/server/resources/api_v1/label_clone.py b/deepdataspace/server/resources/api_v1/label_clone.py index 8dec90b..0542a7e 100644 --- a/deepdataspace/server/resources/api_v1/label_clone.py +++ b/deepdataspace/server/resources/api_v1/label_clone.py @@ -64,12 +64,9 @@ def gen_unique_clone_name(dataset_id, src_label_name, dst_label_name): def clone_images_collection(dataset_id, target_dataset_id, src_label_id, dst_label_id, dst_label_name): for image in Image(dataset_id).find_many({}): cloned = [] - label_confirm = image.label_confirm - label_confirm.setdefault(dst_label_id, {"confirm": 0, "confirm_ts": 0}) for obj in image.objects: label_id = obj.label_id - label_confirm.setdefault(label_id, {"confirm": 0, "confirm_ts": 0}) if obj.label_id != src_label_id: continue @@ -79,7 +76,7 @@ def clone_images_collection(dataset_id, target_dataset_id, src_label_id, dst_lab category_id=obj.category_id, category_name=obj.category_name, conf=obj.conf, is_group=obj.is_group, bounding_box=obj.bounding_box, segmentation=obj.segmentation, alpha=obj.alpha, points=obj.points, lines=obj.lines, point_colors=obj.point_colors, - point_names=obj.point_names, confirm_type=obj.confirm_type, + point_names=obj.point_names ) cloned.append(obj) image.objects.extend(cloned) diff --git a/deepdataspace/server/resources/api_v1/object_confirm.py b/deepdataspace/server/resources/api_v1/object_confirm.py deleted file mode 100644 index aaa736e..0000000 --- a/deepdataspace/server/resources/api_v1/object_confirm.py +++ /dev/null @@ -1,84 +0,0 @@ -""" -deepdataspace.server.resources.api_v1.object_confirm - -RESTful API for object confirm. -""" - -import logging -import time - -from deepdataspace.constants import ErrCode -from deepdataspace.constants import DatasetStatus -from deepdataspace.model import DataSet -from deepdataspace.model import Label -from deepdataspace.model import Object -from deepdataspace.model.image import Image -from deepdataspace.utils.http import Argument -from deepdataspace.utils.http import BaseAPIView -from deepdataspace.utils.http import format_response -from deepdataspace.utils.http import parse_arguments -from deepdataspace.utils.http import raise_exception - -logger = logging.getLogger("django") - - -class ObjectConfirmView(BaseAPIView): - """ - - POST /api/v1/object_confirm - """ - - post_args = [ - Argument("dataset_id", str, Argument.JSON, required=True), - Argument("label_id", str, Argument.JSON, required=True), - Argument("image_id", int, Argument.JSON, required=True), - Argument("confirm", Argument.Choice([1, 2]), Argument.JSON, required=True), - Argument("objects", list, Argument.JSON, required=False), - ] - - def post(self, request): - """ - Confirm a label set of an image. - - - POST /api/v1/object_confirm - """ - - dataset_id, label_id, image_id, confirm, objects = parse_arguments(request, self.post_args) - - dataset = DataSet.find_one({"id": dataset_id}) - if dataset is None: - raise_exception(ErrCode.DatasetNotFound, f"dataset_id[{dataset_id}] not found") - if dataset.status in DatasetStatus.DontRead_: - raise_exception(404, f"dataset_id[{dataset_id}] is in status [{dataset.status}] now, try again later") - - label = Label.find_one({"id": label_id, "dataset_id": dataset_id}) - if label is None: - raise_exception(ErrCode.DatasetLabelNotFound, f"label_id[{label_id}] not found") - - image = Image(dataset_id).find_one({"id": image_id}) - if image is None: - raise_exception(ErrCode.DatasetImageNotFound, f"image_id[{image_id}] not found") - - new_objects = [] - for idx, obj in enumerate(objects): - if obj["label_id"] != label_id: - continue - - try: - obj = Object.from_dict(obj) - obj.compare_result = {} - obj.matched_det_idx = None - except Exception as err: - logger.warning(err) - raise_exception(ErrCode.AnnotationFormatError, f"objects[{idx}] data structure mismatch") - new_objects.append(obj) - - saving_objects = [o for o in image.objects if o.label_id != label_id] - saving_objects.extend(new_objects) - image.objects = saving_objects - - label_confirm = image.label_confirm - confirm_ts = int(time.time()) - label_confirm[label_id] = {"confirm": confirm, "confirm_ts": confirm_ts} - image.save() - - return format_response({"confirm": confirm, "confirm_ts": confirm_ts}) From c46cda039b7d3fbdfa9f8997e8773eec6f1963b9 Mon Sep 17 00:00:00 2001 From: imhuwq Date: Mon, 26 Feb 2024 15:02:49 +0800 Subject: [PATCH 06/11] delete(comments): delete outdated comments --- deepdataspace/io/importer.py | 2 -- deepdataspace/model/_base.py | 1 - deepdataspace/model/dataset.py | 2 -- 3 files changed, 5 deletions(-) diff --git a/deepdataspace/io/importer.py b/deepdataspace/io/importer.py index 66d70a0..d30c5e5 100644 --- a/deepdataspace/io/importer.py +++ b/deepdataspace/io/importer.py @@ -169,8 +169,6 @@ def dataset_import_image(self, metadata = metadata or {} metadata = json.dumps(metadata) - # if id is not set, - # we use a negative value to indicate we are adding a new image instead of updating an existing one idx = dataset.num_images id_ = id_ if id_ is not None else dataset.num_images image = dict(id=id_, idx=idx, diff --git a/deepdataspace/model/_base.py b/deepdataspace/model/_base.py index 977228d..3c9830b 100644 --- a/deepdataspace/model/_base.py +++ b/deepdataspace/model/_base.py @@ -25,7 +25,6 @@ _batch_lock = {} # a dict of batch operation lock for every collection, {'collection_name': batch_op_lock, } _batch_save_queue = {} # a dict of batch save queue for every collection, {'collection_name': batch_save_queue, } _batch_update_queue = {} # a dict of batch update queue for every collection, {'collection_name': batch_update_queue, } -_batch_insert_queue = {} # a dict of batch insert queue for every collection, {'collection_name': batch_insert_queue, } logger = logging.getLogger("model.base") diff --git a/deepdataspace/model/dataset.py b/deepdataspace/model/dataset.py index 31c16ce..28d8311 100644 --- a/deepdataspace/model/dataset.py +++ b/deepdataspace/model/dataset.py @@ -130,8 +130,6 @@ def create_dataset(cls, :param description_func: an import path of a function to generate description. The function takes the dataset instance as the only argument and returns a string. If this is provided, it proceeds the description str. - :param batch_upsert: If True, images from batch_add_image will be saved by UpdateOne with upsert=True. - otherwise they will be saved by faster InsertOne operation. :return: the dataset object. """ From 144b780154b14f15ca92af77cf648d79348dc506 Mon Sep 17 00:00:00 2001 From: imhuwq Date: Wed, 28 Feb 2024 15:44:54 +0800 Subject: [PATCH 07/11] feature(save annotations): support save segmentation, keypoints and mask --- deepdataspace/constants.py | 1 + deepdataspace/model/label_task.py | 38 ++-- deepdataspace/model/object.py | 1 + .../server/resources/api_v1/__init__.py | 2 - .../server/resources/api_v1/annotations.py | 163 ------------------ .../server/resources/api_v1/label_tasks.py | 73 +++++--- 6 files changed, 76 insertions(+), 202 deletions(-) delete mode 100644 deepdataspace/server/resources/api_v1/annotations.py diff --git a/deepdataspace/constants.py b/deepdataspace/constants.py index 2b7c14e..7c7eb0e 100644 --- a/deepdataspace/constants.py +++ b/deepdataspace/constants.py @@ -93,6 +93,7 @@ class AnnotationType: Segmentation = "Segmentation" #: The annotation segments the object. Matting = "Matting" #: The annotation matting the object. KeyPoints = "KeyPoints" #: The annotation marks the keypoints of the object. + Mask = "Mask" #: The annotation contains RLE format of mask class TaskStatus: diff --git a/deepdataspace/model/label_task.py b/deepdataspace/model/label_task.py index 42736cf..5b72a0f 100644 --- a/deepdataspace/model/label_task.py +++ b/deepdataspace/model/label_task.py @@ -489,7 +489,7 @@ def _export_dataset(self, dataset: DataSet, label_set_name: str): LTImage = LabelTaskImage(dataset.id) images, offset = self._get_image_batch(dataset.id, 0) - has_bbox = False # whether the annotations have bbox + obj_types = set() # iter every label image, save every annotation to target image for ltimage in LTImage.find_many({}, sort=[("image_id", 1)]): @@ -517,26 +517,42 @@ def _export_dataset(self, dataset: DataSet, label_set_name: str): if not category: continue + obj_types.add(AnnotationType.Classification) + bounding_box = anno["bounding_box"] - if not bounding_box: - continue + segmentation = anno["segmentation"] + mask = anno["mask"] + points = anno["points"] + lines = anno["lines"] + point_names = anno["point_names"] + point_colors = anno["point_colors"] - has_bbox = True - cat_obj = self._get_category(dataset.id, category, categories) + if bool(bounding_box): + obj_types.add(AnnotationType.Detection) + + if bool(segmentation): + obj_types.add(AnnotationType.Segmentation) + if bool(mask): + obj_types.add(AnnotationType.Mask) + + if bool(points) and bool(lines) and bool(point_names) and bool(point_colors): + obj_types.add(AnnotationType.KeyPoints) + + cat_obj = self._get_category(dataset.id, category, categories) anno_obj = Object(label_name=label_obj.name, label_type=label_obj.type, label_id=label_obj.id, category_name=cat_obj.name, category_id=cat_obj.id, - bounding_box=anno["bounding_box"]) + bounding_box=bounding_box, segmentation=segmentation, mask=mask, + points=points, lines=lines, point_names=point_names, point_colors=point_colors) image.objects.append(anno_obj) image.batch_save() Image(dataset.id).finish_batch_save() - if has_bbox: - if AnnotationType.Classification not in dataset.object_types: - dataset.object_types.append(AnnotationType.Classification) - if AnnotationType.Detection not in dataset.object_types: - dataset.object_types.append(AnnotationType.Detection) + cur_obj_types = set(dataset.object_types) + if cur_obj_types != obj_types: + obj_types.union(cur_obj_types) + dataset.object_types = list(sorted(obj_types)) dataset.save() def export_project(self, label_set_name: str): diff --git a/deepdataspace/model/object.py b/deepdataspace/model/object.py index a0c7a14..3502a86 100644 --- a/deepdataspace/model/object.py +++ b/deepdataspace/model/object.py @@ -83,3 +83,4 @@ def get_collection(cls, *args, **kwargs): caption: Optional[str] = "" compare_result: Optional[Dict[str, str]] = {} # {"90": "FP", ..., "10": "OK"} matched_det_idx: Optional[int] = None # The matched ground truth index, for prediction objects only. + mask: dict = {} diff --git a/deepdataspace/server/resources/api_v1/__init__.py b/deepdataspace/server/resources/api_v1/__init__.py index 445f99b..1ce2411 100644 --- a/deepdataspace/server/resources/api_v1/__init__.py +++ b/deepdataspace/server/resources/api_v1/__init__.py @@ -10,7 +10,6 @@ from deepdataspace.server.resources.api_v1 import lints from deepdataspace.server.resources.api_v1 import login from deepdataspace.server.resources.api_v1 import ping -from deepdataspace.server.resources.api_v1.annotations import AnnotationsView from deepdataspace.server.resources.api_v1.comparisons import ComparisonsView from deepdataspace.server.resources.api_v1.datasets import DatasetView from deepdataspace.server.resources.api_v1.datasets import DatasetsView @@ -28,7 +27,6 @@ path("datasets/", DatasetView.as_view()), path("image_flags", ImageFlagsView.as_view()), path("label_clone", LabelCloneView.as_view()), - path("annotations", AnnotationsView.as_view()), path("comparisons", ComparisonsView.as_view()), path("label_projects", label_tasks.ProjectsView.as_view()), path("label_projects/", label_tasks.ProjectView.as_view()), diff --git a/deepdataspace/server/resources/api_v1/annotations.py b/deepdataspace/server/resources/api_v1/annotations.py deleted file mode 100644 index 3580e22..0000000 --- a/deepdataspace/server/resources/api_v1/annotations.py +++ /dev/null @@ -1,163 +0,0 @@ -""" -deepdataspace.server.resources.api_v1.annotations - -The RESTful API of Annotations. -""" - -import logging -import time - -from deepdataspace.constants import ErrCode -from deepdataspace.constants import AnnotationType -from deepdataspace.constants import DatasetStatus -from deepdataspace.constants import LabelName -from deepdataspace.constants import LabelType -from deepdataspace.model import Category -from deepdataspace.model import DataSet -from deepdataspace.model import Label -from deepdataspace.model.image import Image -from deepdataspace.model.object import Object -from deepdataspace.utils.http import Argument -from deepdataspace.utils.http import BaseAPIView -from deepdataspace.utils.http import format_response -from deepdataspace.utils.http import parse_arguments -from deepdataspace.utils.http import raise_exception -from deepdataspace.utils.string import get_str_md5 - -logger = logging.getLogger("django") - - -class AnnotationsView(BaseAPIView): - """ - - POST /api/v1/annotations - """ - - post_args = [ - Argument("dataset_id", str, Argument.JSON, required=True), - Argument("image_id", int, Argument.JSON, required=True), - Argument("annotations", list, Argument.JSON, required=True), - ] - - def _parse_json(self, request): - dataset_id, image_id, annotations = parse_arguments(request, self.post_args) - - dataset = DataSet.find_one({"id": dataset_id}) - if dataset is None: - raise_exception(ErrCode.DatasetNotFound, - f"dataset[{dataset_id}] not found") - - image = Image(dataset_id).find_one({"id": image_id}) - if image is None: - raise_exception(ErrCode.DatasetImageNotFound, f"image[{image_id}] not found") - - status = dataset.status - if status in DatasetStatus.DontRead_: - raise_exception(ErrCode.DatasetNotReadable, - f"dataset[{dataset_id}] is in status[{status}] now, try again later") - - for idx, annotation in enumerate(annotations): - if not isinstance(annotation, dict): - raise_exception(ErrCode.AnnotationNotListOfObj, - f"annotations[{idx}] must be a list of object, got '{annotation}'") - - try: - annotation["category_name"] = str(annotation["category_name"]) - except KeyError: - raise_exception(ErrCode.AnnotationMissingCatName, - f"field annotations[{idx}] must have key 'category_name'") - - try: - bbox = annotation["bounding_box"] - except KeyError: - raise_exception(ErrCode.AnnotationMissingBBox, - f"field annotations[{idx}] must have key 'bounding_box'") - - try: - bbox["xmin"] = float(bbox["xmin"]) - bbox["ymin"] = float(bbox["ymin"]) - bbox["xmax"] = float(bbox["xmax"]) - bbox["ymax"] = float(bbox["ymax"]) - except (KeyError, ValueError, TypeError): - raise_exception(ErrCode.AnnotationBBoxFormatError, - f"field annotations[{idx}].bounding_box must have key xmin/xmax/ymin/ymax of float value") - - return dataset, image, annotations - - @staticmethod - def _save_annotations(dataset: DataSet, image, annotations): - """ - 保存 objects 到 image - """ - cur_objs = image.objects - cur_objs = list(filter(lambda x: x.label_name != LabelName.UserAnnotation, cur_objs)) - - saving_categories = {} - saving_labels = {} - - label_name = LabelName.UserAnnotation - label_id = get_str_md5(f"{dataset.id}_{label_name}") - for obj in annotations: - category_name = obj["category_name"] - category_id = get_str_md5(f"{dataset.id}_{category_name}") - obj["category_id"] = category_id - obj["category_name"] = obj.pop("category_name") # 重新插入保持一致的字段顺序 - saving_categories[category_id] = category_name - - obj["label_id"] = label_id - obj["label_name"] = label_name - obj["label_type"] = LabelType.User - obj["conf"] = 1 - saving_labels[label_id] = label_name - - try: - obj = Object.from_dict(obj) - except Exception as err: - logger.warning(f"object data structure mismatch: err={str(err)}") - raise_exception(ErrCode.AnnotationFormatError, ErrCode.AnnotationFormatErrorMsg) - else: - cur_objs.append(obj) - - image.objects = cur_objs - image.save() - - return saving_categories, saving_labels - - def _save_categories(self, dataset, categories): - for cat_id, cat_name in categories.items(): - category = Category(id=cat_id, name=cat_name, dataset_id=dataset.id) - category.save() - - @staticmethod - def _save_labels(dataset: DataSet, labels): - """ - 保存 label 到 mongodb - """ - - for label_id, label_name in labels.items(): - label = Label(id=label_id, name=label_name, type=LabelType.User, dataset_id=dataset.id) - label.save() - - @staticmethod - def _save_object_types(dataset: DataSet): - dataset = DataSet.find_one({"id": dataset.id}) - object_types = dataset.object_types - if AnnotationType.Detection not in object_types: - object_types.append(AnnotationType.Detection) - object_types.sort() - dataset.object_types = object_types - dataset.save() - - def post(self, request): - """ - Save annotations to a image. - - POST /api/v1/annotations - """ - - dataset, image, annotations = self._parse_json(request) - - categories, labels = self._save_annotations(dataset, image, annotations) - self._save_categories(dataset, categories) - self._save_labels(dataset, labels) - self._save_object_types(dataset) - - return format_response({}) diff --git a/deepdataspace/server/resources/api_v1/label_tasks.py b/deepdataspace/server/resources/api_v1/label_tasks.py index 6afda88..d9fa50d 100644 --- a/deepdataspace/server/resources/api_v1/label_tasks.py +++ b/deepdataspace/server/resources/api_v1/label_tasks.py @@ -5,6 +5,9 @@ """ import copy +from typing import List + +from pydantic import BaseModel from deepdataspace.constants import ErrCode from deepdataspace.constants import LabelImageQAActions @@ -918,6 +921,43 @@ def get(self, request, task_id): return format_response(data) +class BoundingBox(BaseModel): + xmin: float + ymin: float + xmax: float + ymax: float + + +class Mask(BaseModel): + counts: str + size: List[int] + + +AnnoDataMissingFields = type("AnnoDataMissingFields", (ValueError,), {}) + + +class AnnoData(BaseModel): + category_name: str + bounding_box: BoundingBox = {} + segmentation: str = "" + mask: Mask = "" + points: List[float] = [] + lines: List[int] = [] + point_colors: List[int] = [] + point_names: List[str] = [] + + def model_post_init(self, __context) -> None: + empty_bbox = not self.bounding_box + empty_polygon = not self.segmentation + empty_mask = not self.mask + empty_keypoints = (not self.lines or + not self.points or + not self.point_colors or + not self.point_names) + if empty_bbox or empty_polygon or empty_mask or empty_keypoints: + raise AnnoDataMissingFields(f"annotations missing field(s)") + + class TaskImageLabelView(AuthenticatedAPIView): """ - POST /api/v1/label_task_image_labels/ @@ -933,36 +973,17 @@ def _parse_annotations(self, request): valid_anno_list = [] for idx, anno in enumerate(annotations): try: - assert "category_name" in anno - assert "bounding_box" in anno - assert "xmin" in anno["bounding_box"] - assert "ymin" in anno["bounding_box"] - assert "xmax" in anno["bounding_box"] - assert "ymax" in anno["bounding_box"] - except AssertionError: - raise_exception(ErrCode.LabelAnnotationMissingFields, f"annotations[{idx}] missing field(s)") - - try: - bbox = anno["bounding_box"] - cat_name = str(anno["category_name"]) - xmin, ymin = float(bbox["xmin"]), float(bbox["ymin"]) - xmax, ymax = float(bbox["xmax"]), float(bbox["ymax"]) + valid_anno = AnnoData(**anno) + except AnnoDataMissingFields as err: + raise_exception(ErrCode.LabelAnnotationMissingFields, + f"annotations.[{idx}] {ErrCode.LabelAnnotationMissingFieldsMsg}") except Exception: raise_exception(ErrCode.LabelAnnotationFieldValueInvalid, - f"annotations[{idx}] field data type is wrong") + f"annotations.[{idx}] {ErrCode.LabelAnnotationFieldValueInvalid}") else: - valid_anno = { - "category_name": cat_name, - "category_id" : cat_name, - "bounding_box" : { - "xmin": xmin, - "ymin": ymin, - "xmax": xmax, - "ymax": ymax, - } - } + valid_anno = valid_anno.dict() + valid_anno["category_id"] = valid_anno["category_name"] valid_anno_list.append(valid_anno) - return valid_anno_list def post(self, request, task_image_id): From dd9e3148eeb513be5c7afc47b4bffecda6a481d1 Mon Sep 17 00:00:00 2001 From: fredzhu Date: Wed, 28 Feb 2024 18:37:04 +0800 Subject: [PATCH 08/11] feat(annotation view): fix keypoints and boundingbox view logic --- packages/app/src/models/dataset/common.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/app/src/models/dataset/common.tsx b/packages/app/src/models/dataset/common.tsx index ba915a7..aa51370 100644 --- a/packages/app/src/models/dataset/common.tsx +++ b/packages/app/src/models/dataset/common.tsx @@ -282,9 +282,11 @@ export default () => { return ( (obj.mask && displayType === AnnotationType.Mask) || (obj.alpha && displayType === AnnotationType.Matting) || - (obj.points && displayType === AnnotationType.KeyPoints) || + (obj.points?.length && displayType === AnnotationType.KeyPoints) || (obj.segmentation && displayType === AnnotationType.Segmentation) || - (obj.boundingBox && displayType === AnnotationType.Detection) + (!obj.points?.length && + obj.boundingBox && + displayType === AnnotationType.Detection) ); }) .map((obj) => { From 895630b0f59bc5ce4add65c11f3403e1972e08e7 Mon Sep 17 00:00:00 2001 From: fredzhu Date: Thu, 29 Feb 2024 10:46:24 +0800 Subject: [PATCH 09/11] feat(annotator): update annotator interface --- .../components/AttributeEditor/index.tsx | 8 +- .../components/Classification/index.tsx | 1 + .../Annotator/components/ObjectList/index.tsx | 50 +++++----- .../SmartAnnotationControl/index.less | 16 ++++ .../SmartAnnotationControl/index.tsx | 91 ++++++++---------- .../src/Annotator/constants/render.ts | 7 +- packages/components/src/Annotator/editor.tsx | 72 +++++++------- .../src/Annotator/hooks/useActions.tsx | 12 ++- .../src/Annotator/hooks/useAiModels.ts | 24 +++-- .../src/Annotator/hooks/useAttributes.ts | 47 ++++----- .../src/Annotator/hooks/useCanvasRender.tsx | 38 ++++++-- .../src/Annotator/hooks/useLabels.ts | 13 ++- .../src/Annotator/hooks/useMouseEvents.tsx | 8 +- .../src/Annotator/hooks/useObjects.ts | 40 ++++---- .../src/Annotator/hooks/useToolActions.ts | 78 ++++++++------- packages/components/src/Annotator/preview.tsx | 5 +- .../components/src/Annotator/tools/base.ts | 2 +- .../src/Annotator/tools/usePolygon.ts | 8 +- .../src/Annotator/tools/useSkeleton.ts | 3 +- packages/components/src/Annotator/type.ts | 2 + .../components/src/Annotator/utils/base64.ts | 7 +- .../components/src/Annotator/utils/compute.ts | 96 ++++++++++--------- .../components/src/Annotator/utils/verify.ts | 10 ++ packages/components/src/Annotator/view.tsx | 5 +- packages/components/src/locales/en-US.ts | 14 ++- packages/components/src/locales/zh-CN.ts | 12 ++- 26 files changed, 377 insertions(+), 292 deletions(-) create mode 100644 packages/components/src/Annotator/utils/verify.ts diff --git a/packages/components/src/Annotator/components/AttributeEditor/index.tsx b/packages/components/src/Annotator/components/AttributeEditor/index.tsx index 60e0a21..66dae14 100644 --- a/packages/components/src/Annotator/components/AttributeEditor/index.tsx +++ b/packages/components/src/Annotator/components/AttributeEditor/index.tsx @@ -5,6 +5,7 @@ import { memo, useEffect } from 'react'; import { useImmer } from 'use-immer'; import { IAttributeValue, IEditingAttribute } from '../../type'; +import { isRequiredAttributeValueEmpty } from '../../utils/verify'; import AttributesForm from '../AttributesForm'; import { FloatWrapper } from '../FloatWrapper'; @@ -36,8 +37,7 @@ const AttributeEditor: React.FC = memo( if ( data.attributes.find( (item, index) => - item.required && - (values[index] === undefined || values[index] === null), + item.required && isRequiredAttributeValueEmpty(values[index]), ) ) { message.error(localeText('DDSAnnotator.attribute.required')); @@ -57,7 +57,9 @@ const AttributeEditor: React.FC = memo( className="dds-annotator-attribute-editor" title={
-
{localeText('DDSAnnotator.attribute.add')}
+
+ {localeText('DDSAnnotator.attribute.modal')} #{data.index + 1} +
) : ( -
- setAiLabels(e.target.value)} - onKeyUp={(event) => event.stopPropagation()} - onKeyDown={(event) => event.stopPropagation()} - /> - +
+
+ + {localeText('DDSAnnotator.smart.detection.label')}: + + {latestLabel} +
+
+ + {localeText('DDSAnnotator.smart.detection.prompt')}: + + setPromptText(e.target.value)} + onKeyUp={(event) => event.stopPropagation()} + onKeyDown={(event) => event.stopPropagation()} + /> +
+
+ +
))} {((selectedTool === EBasicToolItem.Rectangle && @@ -343,38 +360,10 @@ const SmartAnnotationControl: React.FC = memo( ) : ( <> - {/*
-
-
- {localeText('DDSAnnotator.smart.modelTyle')} -
- -
-
*/} diff --git a/packages/components/src/Annotator/constants/render.ts b/packages/components/src/Annotator/constants/render.ts index bc4a7e8..5245c75 100644 --- a/packages/components/src/Annotator/constants/render.ts +++ b/packages/components/src/Annotator/constants/render.ts @@ -2,10 +2,10 @@ import { LineType } from '../type'; export const ANNO_FILL_ALPHA = { DEFAULT: 0, + DEFAULT_SHAPE: 0.35, CREATING: 0, - SHAPE: 0.4, + JUST_CREATED: 0.5, FOCUS: 0.6, - ACTIVE: 0.2, CTRL_TO_SELECT: 0.1, OTHER: 0, }; @@ -22,7 +22,8 @@ export const ANNO_STROKE_ALPHA = { export const ANNO_MASK_ALPHA = { CREATING: 0.7, FOCUS: 0.7, - DEFAULT: 0.5, + JUST_CREATED: 0.5, + DEFAULT: 0.35, }; export const ANNO_STROKE_COLOR = { diff --git a/packages/components/src/Annotator/editor.tsx b/packages/components/src/Annotator/editor.tsx index b3805fd..ed9eaeb 100755 --- a/packages/components/src/Annotator/editor.tsx +++ b/packages/components/src/Annotator/editor.tsx @@ -83,7 +83,6 @@ export interface EditProps { manualMode?: boolean; forceColorByObject?: boolean; limitActiveObject?: boolean; - limitActiveObjectAfterCreate?: boolean; customDefaultDrawData?: Partial; customDefaultEditState?: EditState; customDrawData?: DrawData; @@ -123,7 +122,6 @@ const Edit: React.FC = (props) => { manualMode, forceColorByObject, limitActiveObject, - limitActiveObjectAfterCreate, customDefaultDrawData, onPrev, onNext, @@ -234,24 +232,21 @@ const Edit: React.FC = (props) => { commitedObjects, currObject, } = useObjects({ - annotations, - setAnnotations, + mode, + categories, drawData, setDrawData, setDrawDataWithHistory, setEditState, - mode, translateToObject, judgeEditingAttribute, - limitActiveObjectAfterCreate, updateHistory, }); const { labelOptions, + latestLabel, classificationOptions, - aiLabels, - setAiLabels, onChangeObjectHidden, onChangeCategoryHidden, onChangeActiveClass, @@ -281,33 +276,6 @@ const Edit: React.FC = (props) => { getAnnotColor, }); - const { - onSaveAnnotations, - onCommitAnnotations, - onCancelAnnotations, - onRejectAnnotations, - onAcceptAnnotations, - onModifyAnnotations, - } = useActions({ - mode, - currImageItem, - modal, - drawData, - editState, - setEditState, - hadChangeRecord, - categories, - translateObject, - flagSaved, - onCancel, - onSave, - onCommit, - onReviewModify, - onReviewAccept, - onReviewReject, - classificationOptions, - }); - const { updateMouseCursor } = useMouseCursor({ topCanvas: activeCanvasRef.current, editState, @@ -332,13 +300,13 @@ const Edit: React.FC = (props) => { onChangeColorMode, onChangePointResolution, onSelectModel, + isInAiSession, } = useToolActions({ mode, manualMode: !!manualMode, drawData, setDrawData, setDrawDataWithHistory, - setAiLabels, editState, setEditState, getAnnotColor, @@ -373,7 +341,6 @@ const Edit: React.FC = (props) => { updateObject, addObject, updateMouseCursor, - aiLabels, onAiAnnotation, getAnnotColor, categories, @@ -416,6 +383,34 @@ const Edit: React.FC = (props) => { limitActiveObject, }); + const { + onSaveAnnotations, + onCommitAnnotations, + onCancelAnnotations, + onRejectAnnotations, + onAcceptAnnotations, + onModifyAnnotations, + } = useActions({ + mode, + currImageItem, + modal, + drawData, + editState, + setEditState, + hadChangeRecord, + categories, + translateObject, + flagSaved, + onCancel, + onSave, + onCommit, + onReviewModify, + onReviewAccept, + onReviewReject, + classificationOptions, + isInAiSession, + }); + useShortcuts({ visible, mode, @@ -626,9 +621,8 @@ const Edit: React.FC = (props) => { hasPolygonPreds={!!drawData.creatingObject?.polygon} isCtrlPressed={editState.isCtrlPressed} limitConf={drawData.limitConf} - aiLabels={aiLabels} naturalSize={naturalSize} - setAiLabels={setAiLabels} + latestLabel={latestLabel} forceChangeTool={forceChangeTool} onAiAnnotation={onAiAnnotation} onExitAIAnnotation={onExitAIAnnotation} diff --git a/packages/components/src/Annotator/hooks/useActions.tsx b/packages/components/src/Annotator/hooks/useActions.tsx index ce32e14..2e016c4 100644 --- a/packages/components/src/Annotator/hooks/useActions.tsx +++ b/packages/components/src/Annotator/hooks/useActions.tsx @@ -11,7 +11,9 @@ import { EditorMode, Category, VideoFramesData, + ICreatingObject, } from '../type'; +import { isRequiredAttributeValueEmpty } from '../utils/verify'; interface IProps { mode: EditorMode; @@ -44,6 +46,7 @@ interface IProps { frameIssues?: Record, ) => Promise; classificationOptions?: Category[]; + isInAiSession: () => boolean | ICreatingObject | undefined; } const useActions = ({ @@ -65,6 +68,7 @@ const useActions = ({ onReviewAccept, onReviewReject, classificationOptions, + isInAiSession, }: IProps) => { const { localeText } = useLocale(); const { isRequiring } = editState; @@ -119,7 +123,7 @@ const useActions = ({ // check classification classificationOptions?.forEach((item, idx) => { const value = labels.find((label) => label.labelId === item.id); - if (!value || [undefined, null, ''].includes(value.labelValue)) { + if (!value || isRequiredAttributeValueEmpty(value.labelValue)) { errorList.push( localeText('DDSAnnotator.save.check.classification', { idx: idx + 1, @@ -134,7 +138,7 @@ const useActions = ({ label?.attributes?.find( (attribute, index) => attribute.required && - [undefined, null, ''].includes(item.attributes?.[index]), + isRequiredAttributeValueEmpty(item.attributes?.[index]), ) ) { errorList.push( @@ -169,7 +173,7 @@ const useActions = ({ }; const onSaveAnnotations = async () => { - if (isRequiring || !onSave) return; + if (isRequiring || !onSave || isInAiSession()) return; const [id, labels] = translateDrawData(editorDrawData); console.log('>>> save', id, labels); @@ -186,7 +190,7 @@ const useActions = ({ }; const onCommitAnnotations = async () => { - if (isRequiring || !onCommit) return; + if (isRequiring || !onCommit || isInAiSession()) return; const [id, labels] = translateDrawData(editorDrawData); if (judgeLimitCommit(labels)) return; diff --git a/packages/components/src/Annotator/hooks/useAiModels.ts b/packages/components/src/Annotator/hooks/useAiModels.ts index de7bce4..dd32179 100644 --- a/packages/components/src/Annotator/hooks/useAiModels.ts +++ b/packages/components/src/Annotator/hooks/useAiModels.ts @@ -52,7 +52,7 @@ interface IProps { export type OnAiAnnotationFunc = ({ type, drawData, - aiLabels, + text, bbox, promptsQueue, segmentationClicks, @@ -60,7 +60,7 @@ export type OnAiAnnotationFunc = ({ }: { type?: EObjectType; drawData?: DrawData; - aiLabels?: string; + text?: string; bbox?: IBoundingBox; promptsQueue?: PromptItem[]; segmentationClicks?: { @@ -173,8 +173,8 @@ const useAiModels = ({ return newPromptArr; }; - const requestAiDetection = async (drawData: DrawData, aiLabels: string) => { - if (!aiLabels) { + const requestAiDetection = async (drawData: DrawData, text: string) => { + if (!text) { message.warning(localeText('DDSAnnotator.smart.msg.labelRequired')); return; } @@ -183,7 +183,7 @@ const useAiModels = ({ prompts: [ { type: EPromptType.Text, - text: aiLabels, + text, }, ], }); @@ -698,7 +698,7 @@ const useAiModels = ({ async ({ type, drawData: propsDrawData, - aiLabels, + text, promptsQueue, segmentEverythingParams, }) => { @@ -723,7 +723,7 @@ const useAiModels = ({ drawData.selectedModel[drawData.selectedTool] === EnumModelType.Detection ) { - isSuccess = await requestAiDetection(drawData, aiLabels || ''); + isSuccess = await requestAiDetection(drawData, text || ''); } else { isSuccess = await requestIvpDetection(drawData, promptsQueue); } @@ -781,7 +781,15 @@ const useAiModels = ({ hide(); } }, - [editorDrawData], + [ + editorDrawData, + currImageItem, + editState, + naturalSize, + clientSize, + getAnnotColor, + setDrawDataWithHistory, + ], ); return { diff --git a/packages/components/src/Annotator/hooks/useAttributes.ts b/packages/components/src/Annotator/hooks/useAttributes.ts index ecb04a1..30ceda4 100644 --- a/packages/components/src/Annotator/hooks/useAttributes.ts +++ b/packages/components/src/Annotator/hooks/useAttributes.ts @@ -33,31 +33,34 @@ export default function useAttributes({ [categories], ); - const onConfirmAttibuteEdit = useCallback((values: IAttributeValue[]) => { - setDrawDataWithHistory((s) => { - if (s.editingAttribute) { - if (s.objectList[s.editingAttribute.index]) { - // object attributes - s.objectList[s.editingAttribute.index].attributes = values; - } else { - // classification attributes - const i = s.classifications.findIndex( - (item) => item.labelId === s.editingAttribute?.labelId, - ); - if (i > -1) { - s.classifications[i].attributes = values; + const onConfirmAttibuteEdit = useCallback( + (values: IAttributeValue[]) => { + setDrawDataWithHistory((s) => { + if (s.editingAttribute) { + if (s.objectList[s.editingAttribute.index]) { + // object attributes + s.objectList[s.editingAttribute.index].attributes = values; } else { - s.classifications.push({ - labelId: s.editingAttribute?.labelId, - labelValue: null, - attributes: values, - }); + // classification attributes + const i = s.classifications.findIndex( + (item) => item.labelId === s.editingAttribute?.labelId, + ); + if (i > -1) { + s.classifications[i].attributes = values; + } else { + s.classifications.push({ + labelId: s.editingAttribute?.labelId, + labelValue: null, + attributes: values, + }); + } } + s.editingAttribute = undefined; } - s.editingAttribute = undefined; - } - }); - }, []); + }); + }, + [setDrawDataWithHistory], + ); const onCancelAttibuteEdit = () => { setDrawDataWithHistory((s) => { diff --git a/packages/components/src/Annotator/hooks/useCanvasRender.tsx b/packages/components/src/Annotator/hooks/useCanvasRender.tsx index fafd697..b0be586 100644 --- a/packages/components/src/Annotator/hooks/useCanvasRender.tsx +++ b/packages/components/src/Annotator/hooks/useCanvasRender.tsx @@ -19,6 +19,7 @@ import { ToolInstanceHookReturn } from '../tools/base'; import { DrawData, EditState, + EObjectStatus, IAnnotationObject, ICreatingObject, } from '../type'; @@ -67,7 +68,7 @@ const useCanvasRender = ({ const getObjectStyles = ( object: IAnnotationObject, color: string, - status?: 'focus' | 'creating' | 'editing', + status?: 'focus' | 'justCreated' | 'creating' | 'editing', ) => { let [strokeColor, fillColor, maskAlpha] = [ hexToRgba(color, ANNO_STROKE_ALPHA.DEFAULT), @@ -78,6 +79,9 @@ const useCanvasRender = ({ maskAlpha = ANNO_MASK_ALPHA.FOCUS; strokeColor = hexToRgba(color, ANNO_STROKE_ALPHA.FOCUS); fillColor = hexToRgba(color, ANNO_FILL_ALPHA.FOCUS); + } else if (status === 'justCreated') { + maskAlpha = ANNO_MASK_ALPHA.JUST_CREATED; + fillColor = hexToRgba(color, ANNO_FILL_ALPHA.JUST_CREATED); } else if (status === 'editing') { maskAlpha = ANNO_MASK_ALPHA.CREATING; strokeColor = hexToRgba(color, ANNO_STROKE_ALPHA.CREATING); @@ -195,18 +199,23 @@ const useCanvasRender = ({ updateCreatingPromptRender(theDrawData); }; - const renderObject = (object: IAnnotationObject, isFocus: boolean) => { + const renderObject = ( + object: IAnnotationObject, + isFocus: boolean, + isJustCreated: boolean, + ) => { const canvasCoordObject = translateAnnotCoord(object, { x: -imagePos.current.x, y: -imagePos.current.y, }); const { type } = canvasCoordObject; // Color styles - const styles = getObjectStyles( - object, - object.color, - isFocus ? 'focus' : undefined, - ); + const status = isFocus + ? 'focus' + : isJustCreated + ? 'justCreated' + : undefined; + const styles = getObjectStyles(object, object.color, status); // Change globalAlpha when creating / editing object setCanvasGlobalAlpha(canvasRef.current!, drawData.creatingObject ? 0.6 : 1); @@ -216,6 +225,7 @@ const useCanvasRender = ({ color: object.color, styles, isFocus, + isJustCreated, }); }; @@ -233,7 +243,13 @@ const useCanvasRender = ({ ) { return; } - renderObject(obj, drawData.editingAttribute?.index === index); + + const isFocus = drawData.editingAttribute?.index === index; + const isJustCreated = + (!editState.isCtrlPressed && obj.status === EObjectStatus.Checked) || + (drawData.isJustCreated && index === list.length - 1); + + renderObject(obj, isFocus, isJustCreated); }); }; @@ -293,7 +309,11 @@ const useCanvasRender = ({ !theDrawData.objectList[editState.focusObjectIndex].hidden && !theDrawData.objectList[editState.focusObjectIndex].frameEmpty ) { - renderObject(theDrawData.objectList[editState.focusObjectIndex], true); + renderObject( + theDrawData.objectList[editState.focusObjectIndex], + true, + false, + ); } }; diff --git a/packages/components/src/Annotator/hooks/useLabels.ts b/packages/components/src/Annotator/hooks/useLabels.ts index 3613b2b..a4b4fcb 100644 --- a/packages/components/src/Annotator/hooks/useLabels.ts +++ b/packages/components/src/Annotator/hooks/useLabels.ts @@ -1,5 +1,5 @@ import { cloneDeep } from 'lodash'; -import { useCallback, useEffect, useMemo, useState } from 'react'; +import { useCallback, useEffect, useMemo } from 'react'; import { Updater } from 'use-immer'; import { @@ -43,7 +43,6 @@ export default function useLabels({ updateObjectWithoutHistory, updateAllObjectWithoutHistory, }: IProps) { - const [aiLabels, setAiLabels] = useState(undefined); const curObjects = drawData.objectList; const labelOptions: Category[] = useMemo(() => { @@ -182,11 +181,17 @@ export default function useLabels({ } }, [drawData.activeObjectIndex]); + const latestLabel = useMemo(() => { + const label = labelOptions.find( + (item) => item.id === editState.latestLabelId, + ); + return label?.labelName || label?.name || ''; + }, [labelOptions, editState.latestLabelId]); + return { labelOptions, + latestLabel, classificationOptions, - aiLabels, - setAiLabels, curObjects, onChangeObjectHidden, onChangeCategoryHidden, diff --git a/packages/components/src/Annotator/hooks/useMouseEvents.tsx b/packages/components/src/Annotator/hooks/useMouseEvents.tsx index ec25be2..943cddc 100644 --- a/packages/components/src/Annotator/hooks/useMouseEvents.tsx +++ b/packages/components/src/Annotator/hooks/useMouseEvents.tsx @@ -271,6 +271,7 @@ const useMouseEvents = ({ s.focusObjectIndex = -1; }); } else { + s.AIAnnotation = false; s.activeObjectIndex = index; if (!s.objectList[index]?.frameEmpty) { s.creatingObject = { @@ -413,10 +414,15 @@ const useMouseEvents = ({ // 3. Active object selectFocusObject(editState.focusObjectIndex, event); } else { - // 4. Drag object + // 4. Drag image setEditState((s) => { s.allowMove = true; }); + setDrawData((s) => { + s.activeObjectIndex = -1; + s.editingAttribute = undefined; + s.creatingObject = undefined; + }); } } }; diff --git a/packages/components/src/Annotator/hooks/useObjects.ts b/packages/components/src/Annotator/hooks/useObjects.ts index 8622edc..0a72873 100644 --- a/packages/components/src/Annotator/hooks/useObjects.ts +++ b/packages/components/src/Annotator/hooks/useObjects.ts @@ -4,7 +4,6 @@ import { Updater } from 'use-immer'; import { EElementType, EObjectType } from '../constants'; import { - BaseObject, DrawData, EditState, EditorMode, @@ -13,12 +12,12 @@ import { IEditingAttribute, EObjectStatus, VideoFramesData, + Category, } from '../type'; interface IProps { mode: EditorMode; - annotations: BaseObject[]; - setAnnotations: Updater; + categories: Category[]; drawData: DrawData; setDrawData: Updater; setDrawDataWithHistory: Updater; @@ -30,12 +29,12 @@ interface IProps { object: IAnnotationObject, index: number, ) => IEditingAttribute | undefined; - limitActiveObjectAfterCreate?: boolean; updateHistory: (drawData: DrawData, theframesData?: VideoFramesData) => void; } const useObjects = ({ mode, + categories, drawData, setDrawData, setDrawDataWithHistory, @@ -44,7 +43,6 @@ const useObjects = ({ setEditState, translateToObject, judgeEditingAttribute, - limitActiveObjectAfterCreate, updateHistory, }: IProps) => { const initObjectList = (annotations: DrawObject[]) => { @@ -87,25 +85,22 @@ const useObjects = ({ }); }; - const addObject = (object: IAnnotationObject, notActive?: boolean) => { + const addObject = (object: IAnnotationObject) => { if (mode !== EditorMode.Edit) return; setDrawDataWithHistory((s) => { s.objectList.push(object); - - if (limitActiveObjectAfterCreate) { - s.creatingObject = undefined; - s.activeObjectIndex = -1; - } else { - s.creatingObject = { ...object }; - s.activeObjectIndex = notActive ? -1 : s.objectList.length - 1; - - // Show attribut editor - if (judgeEditingAttribute) { - s.editingAttribute = judgeEditingAttribute( - object, - s.objectList.length - 1, - ); - } + s.isJustCreated = true; + s.creatingObject = undefined; + s.activeObjectIndex = -1; + s.activeClassName = + categories.find((item) => item.id === object.labelId)?.name || ''; + + // Show attribut editor + if (judgeEditingAttribute) { + s.editingAttribute = judgeEditingAttribute( + object, + s.objectList.length - 1, + ); } }); }; @@ -180,6 +175,7 @@ const useObjects = ({ if (s.creatingObject && s.objectList[s.activeObjectIndex]) { s.creatingObject = { ...s.objectList[s.activeObjectIndex] }; } + s.isJustCreated = false; }); }; @@ -207,7 +203,7 @@ const useObjects = ({ const commitedObjects = useMemo(() => { return drawData.objectList.filter((obj) => { - return obj.status === EObjectStatus.Commited; + return obj?.status === EObjectStatus.Commited; }); }, [drawData.isBatchEditing, drawData.objectList]); diff --git a/packages/components/src/Annotator/hooks/useToolActions.ts b/packages/components/src/Annotator/hooks/useToolActions.ts index 84fe78c..29f010c 100644 --- a/packages/components/src/Annotator/hooks/useToolActions.ts +++ b/packages/components/src/Annotator/hooks/useToolActions.ts @@ -30,7 +30,6 @@ interface IProps { manualMode?: boolean; setDrawData: Updater; setDrawDataWithHistory: Updater; - setAiLabels: (labels?: string) => void; editState: EditState; setEditState: Updater; getAnnotColor: (category: string) => string; @@ -51,7 +50,6 @@ const useToolActions = ({ drawData, setDrawData, setDrawDataWithHistory, - setAiLabels, editState, setEditState, clientSize, @@ -140,7 +138,7 @@ const useToolActions = ({ updateObject(newObject, drawData.activeObjectIndex); } else { // add mask object - addObject(newObject, true); + addObject(newObject); } } else if (maskRle) { // Empty mask @@ -168,7 +166,7 @@ const useToolActions = ({ updateObject(newObject, drawData.activeObjectIndex); } else { // add new polygon - addObject(newObject, true); + addObject(newObject); } } else { const newObject = { @@ -225,8 +223,7 @@ const useToolActions = ({ s.creatingObject = undefined; s.prompt = {}; }); - setAiLabels(undefined); - }, [drawData.objectList]); + }, [drawData.objectList, setDrawDataWithHistory]); const onAbortBatchObjects = useCallback(() => { setDrawDataWithHistory((s) => { @@ -239,7 +236,7 @@ const useToolActions = ({ s.creatingObject = undefined; s.prompt = {}; }); - }, [drawData.objectList]); + }, [drawData.objectList, setDrawDataWithHistory]); const isInAiSession = useCallback(() => { const { @@ -251,40 +248,48 @@ const useToolActions = ({ creatingObject, } = drawData; - if (!AIAnnotation) return false; + const judegInAiSession = () => { + if (!AIAnnotation) return false; - if (selectedTool === EBasicToolItem.Rectangle) { - return isBatchEditing; - } - - if (selectedTool === EBasicToolItem.Polygon) { - return creatingObject; - } - - if (selectedTool === EBasicToolItem.Skeleton) { - return isBatchEditing; - } - - if (selectedTool === EBasicToolItem.Mask) { - const currModel = selectedModel[selectedTool]; - if (currModel === EnumModelType.IVP) { + if (selectedTool === EBasicToolItem.Rectangle) { return isBatchEditing; } - if ( - currModel === EnumModelType.SegmentEverything && - selectedSubTool === ESubToolItem.AutoSegmentEverything - ) { - return isBatchEditing; + if (selectedTool === EBasicToolItem.Polygon) { + return creatingObject; } - if (currModel === EnumModelType.SegmentByMask) { - return creatingObject; + if (selectedTool === EBasicToolItem.Skeleton) { + return isBatchEditing; } + if (selectedTool === EBasicToolItem.Mask) { + const currModel = selectedModel[selectedTool]; + if (currModel === EnumModelType.IVP) { + return isBatchEditing; + } + + if ( + currModel === EnumModelType.SegmentEverything && + selectedSubTool === ESubToolItem.AutoSegmentEverything + ) { + return isBatchEditing; + } + + if (currModel === EnumModelType.SegmentByMask) { + return creatingObject; + } + + return false; + } return false; + }; + + const result = judegInAiSession(); + if (result) { + message.warning(localeText('DDSAnnotator.smart.tip.limitJump')); } - return false; + return result; }, [ drawData.selectedTool, drawData.selectedModel, @@ -298,8 +303,7 @@ const useToolActions = ({ (tool: EBasicToolItem) => { if ( mode !== EditorMode.Edit || - (tool === drawData.selectedTool && !drawData.AIAnnotation) || - drawData.isBatchEditing + (tool === drawData.selectedTool && !drawData.AIAnnotation) ) return; @@ -307,6 +311,7 @@ const useToolActions = ({ setDrawData((s) => { s.selectedTool = tool; + s.isJustCreated = false; s.AIAnnotation = false; s.activeObjectIndex = -1; s.creatingObject = undefined; @@ -381,7 +386,7 @@ const useToolActions = ({ s.creatingObject = undefined; s.prompt = {}; }); - }, []); + }, [setDrawDataWithHistory]); const setBrushSize = useCallback( (size: number) => { @@ -473,7 +478,7 @@ const useToolActions = ({ s.objectList = updateObjects; }); }, - [drawData.objectList], + [drawData.objectList, setDrawDataWithHistory], ); const onChangeLimitConf = useCallback( @@ -500,7 +505,7 @@ const useToolActions = ({ ); }); }, - [drawData.objectList], + [drawData.objectList, setDrawDataWithHistory], ); const onChangeImageDisplayOpts = useCallback( @@ -627,6 +632,7 @@ const useToolActions = ({ onChangeColorMode, onChangePointResolution, onSelectModel, + isInAiSession, }; }; diff --git a/packages/components/src/Annotator/preview.tsx b/packages/components/src/Annotator/preview.tsx index d85f48c..7abde57 100755 --- a/packages/components/src/Annotator/preview.tsx +++ b/packages/components/src/Annotator/preview.tsx @@ -134,13 +134,12 @@ const Preview: React.FC = (props) => { }); const { addObject, initObjectList, updateObject } = useObjects({ - annotations, - setAnnotations, + mode: EditorMode.View, + categories, drawData, setDrawData, setDrawDataWithHistory, setEditState, - mode: EditorMode.View, translateToObject, updateHistory, }); diff --git a/packages/components/src/Annotator/tools/base.ts b/packages/components/src/Annotator/tools/base.ts index d132964..6a0b3b6 100644 --- a/packages/components/src/Annotator/tools/base.ts +++ b/packages/components/src/Annotator/tools/base.ts @@ -51,6 +51,7 @@ export namespace ToolHooksFunc { color: string; styles: RenderStyles; isFocus: boolean; + isJustCreated?: boolean; }) => void; export type RenderCreatingObject = (params: { @@ -137,7 +138,6 @@ export interface ToolInstanceHookProps { activeCanvasRef: React.RefObject; updateMouseCursor: (value: string, position?: Direction) => void; getAnnotColor: (category: string) => string; - aiLabels?: string; onAiAnnotation?: OnAiAnnotationFunc; displayOptionsResult?: { [key in DisplayOption]?: boolean }; categories: Category[]; diff --git a/packages/components/src/Annotator/tools/usePolygon.ts b/packages/components/src/Annotator/tools/usePolygon.ts index 90543de..147240e 100644 --- a/packages/components/src/Annotator/tools/usePolygon.ts +++ b/packages/components/src/Annotator/tools/usePolygon.ts @@ -64,12 +64,14 @@ const usePolygon: ToolInstanceHook = ({ color, styles, isFocus, + isJustCreated, }) => { const { polygon } = object; if (polygon && polygon.visible) { - let fiilColor = !isFocus - ? hexToRgba(color, ANNO_FILL_ALPHA.SHAPE) - : styles.fillColor; + let fiilColor = styles.fillColor; + if (!isFocus && !isJustCreated) { + fiilColor = hexToRgba(color, ANNO_FILL_ALPHA.DEFAULT_SHAPE); + } let thickness = styles.thickness; if (displayOptionsResult) { if (!displayOptionsResult.showSegFilling && !isFocus) { diff --git a/packages/components/src/Annotator/tools/useSkeleton.ts b/packages/components/src/Annotator/tools/useSkeleton.ts index 2a586e2..fd80b3e 100644 --- a/packages/components/src/Annotator/tools/useSkeleton.ts +++ b/packages/components/src/Annotator/tools/useSkeleton.ts @@ -79,7 +79,6 @@ const useSkeleton: ToolInstanceHook = ({ updateMouseCursor, addObject, updateObject, - aiLabels, onAiAnnotation, displayOptionsResult, }) => { @@ -326,7 +325,7 @@ const useSkeleton: ToolInstanceHook = ({ editState.startElementMovePoint.mousePoint?.y !== contentMouse.elementY) ) { - onAiAnnotation?.({ type: EObjectType.Skeleton, drawData, aiLabels }); + onAiAnnotation?.({ type: EObjectType.Skeleton, drawData }); } } diff --git a/packages/components/src/Annotator/type.ts b/packages/components/src/Annotator/type.ts index 76bc1b6..efaf052 100644 --- a/packages/components/src/Annotator/type.ts +++ b/packages/components/src/Annotator/type.ts @@ -220,6 +220,7 @@ export interface DrawData { /** drawing */ activeClassName: string; activeObjectIndex: number; + isJustCreated: boolean; creatingObject?: ICreatingObject; // - editing / creating isBatchEditing: boolean; // active while handle batch predictions by model editingAttribute?: IEditingAttribute; @@ -292,6 +293,7 @@ export const DEFAULT_DRAW_DATA: DrawData = { classifications: [], activeObjectIndex: -1, activeClassName: '', + isJustCreated: false, creatingObject: undefined, editingAttribute: undefined, brushSize: 20, diff --git a/packages/components/src/Annotator/utils/base64.ts b/packages/components/src/Annotator/utils/base64.ts index f40334c..e7e62f9 100644 --- a/packages/components/src/Annotator/utils/base64.ts +++ b/packages/components/src/Annotator/utils/base64.ts @@ -47,8 +47,13 @@ export const isHttpsUrl = (str: string) => { return httpsRegex.test(str); }; +export const isHttpUrl = (str: string) => { + const httpsRegex = /^http?:\/\//i; + return httpsRegex.test(str); +}; + export const getServerAddressableUrl = async (url: string) => { - if (isBlobUrl(url)) { + if (isBlobUrl(url) || isHttpUrl(url)) { return await getImageBase64(url); } return url; diff --git a/packages/components/src/Annotator/utils/compute.ts b/packages/components/src/Annotator/utils/compute.ts index 48f6722..6fc4afd 100644 --- a/packages/components/src/Annotator/utils/compute.ts +++ b/packages/components/src/Annotator/utils/compute.ts @@ -8,7 +8,12 @@ import { } from '../constants'; import { LINE_COLOR } from '../constants/render'; import { rleToCanvas } from '../tools/useMask'; -import { DrawData, IAnnotationObject, PromptItem } from '../type'; +import { + DrawData, + EObjectStatus, + IAnnotationObject, + PromptItem, +} from '../type'; import { rgbArrayToRgba, rgbaToRgbArray } from './color'; @@ -1684,51 +1689,52 @@ export const convertFrameObjectsIntoFramesObjects = ( naturalSize: ISize, ) => { const tempObjects = [...framesObjects]; - currFrameObjects.forEach((item, objectIdx) => { - const objectframes = - tempObjects[objectIdx] || new Array(frameCount).fill(undefined); - tempObjects[objectIdx] = objectframes.map((obj, frameIdx) => { - if (frameIdx === activeIndex) { - return item; - } - const frameEmpty = obj?.frameEmpty || Boolean(!obj); - let resultObject = obj; - if ( - frameIdx > activeIndex && - isEqual( - omitBy(obj, isUndefined), - omitBy(objectframes[activeIndex], isUndefined), - ) - ) { - // [active frame, later changed frame] -> same change - resultObject = item; - } else if ( - !frameEmpty && - item.type === EObjectType.Mask && - resultObject.maskRle && - item.labelId !== obj.labelId - ) { - // mask label changed => re compute maskCanvas - resultObject.maskCanvasElement = rleToCanvas( - resultObject.maskRle, - naturalSize, - item.color, - ); - } - - return { - ...resultObject, - type: item.type, - labelId: item.labelId, - hidden: item.hidden, - color: item.color, - customStyles: item.customStyles, - attributes: item.attributes, - status: item.status, - frameEmpty, - }; + currFrameObjects + .filter((obj) => obj?.status === EObjectStatus.Commited) + .forEach((item, objectIdx) => { + const objectframes = + tempObjects[objectIdx] || new Array(frameCount).fill(undefined); + tempObjects[objectIdx] = objectframes.map((obj, frameIdx) => { + if (frameIdx === activeIndex) { + return item; + } + const frameEmpty = obj?.frameEmpty || Boolean(!obj); + let resultObject = obj; + if ( + frameIdx > activeIndex && + isEqual( + omitBy(obj, isUndefined), + omitBy(objectframes[activeIndex], isUndefined), + ) + ) { + // [active frame, later changed frame] -> same change + resultObject = item; + } else if ( + !frameEmpty && + item.type === EObjectType.Mask && + resultObject.maskRle && + item.labelId !== obj.labelId + ) { + // mask label changed => re compute maskCanvas + resultObject.maskCanvasElement = rleToCanvas( + resultObject.maskRle, + naturalSize, + item.color, + ); + } + return { + ...resultObject, + type: item.type, + labelId: item.labelId, + hidden: item.hidden, + color: item.color, + customStyles: item.customStyles, + attributes: item.attributes, + status: item.status, + frameEmpty, + }; + }); }); - }); return tempObjects; }; diff --git a/packages/components/src/Annotator/utils/verify.ts b/packages/components/src/Annotator/utils/verify.ts new file mode 100644 index 0000000..ca0471b --- /dev/null +++ b/packages/components/src/Annotator/utils/verify.ts @@ -0,0 +1,10 @@ +export const isRequiredAttributeValueEmpty = ( + value?: string | number | number[] | null, +) => { + return ( + value === undefined || + value === null || + value === '' || + (Array.isArray(value) && (value as number[]).length === 0) + ); +}; diff --git a/packages/components/src/Annotator/view.tsx b/packages/components/src/Annotator/view.tsx index 5761a50..0a973ab 100755 --- a/packages/components/src/Annotator/view.tsx +++ b/packages/components/src/Annotator/view.tsx @@ -132,13 +132,12 @@ const View: React.FC = (props) => { }); const { addObject, initObjectList, updateObject } = useObjects({ - annotations, - setAnnotations, + mode: EditorMode.View, + categories, drawData, setDrawData, setDrawDataWithHistory, setEditState, - mode: EditorMode.View, translateToObject, updateHistory, }); diff --git a/packages/components/src/locales/en-US.ts b/packages/components/src/locales/en-US.ts index 4a644b5..206a77a 100644 --- a/packages/components/src/locales/en-US.ts +++ b/packages/components/src/locales/en-US.ts @@ -156,7 +156,9 @@ export default { 'Sorry, this feature is not available in the local version of DeepDataSpace currently. Please visit the official website for more information. You can contact us (deepdataspace_dm@idea.edu.cn) for a priority experience of intelligent annotate.', 'DDSAnnotator.smart.infoModal.action': 'Visit Our Website', 'DDSAnnotator.smart.detection.name': 'Intelligent Object Detection', - 'DDSAnnotator.smart.detection.input': 'Select or enter categories', + 'DDSAnnotator.smart.detection.label': 'Target Detection Label', + 'DDSAnnotator.smart.detection.prompt': 'Prompt', + 'DDSAnnotator.smart.detection.input': 'Enter prompt text', 'DDSAnnotator.smart.segmentation.name': 'Intelligent Segmentation (Polygon)', 'DDSAnnotator.smart.pose.name': 'Intelligent Pose Estimation', 'DDSAnnotator.smart.mask.name': 'Intelligent Panoramic Segmentation', @@ -183,7 +185,8 @@ export default { 'DDSAnnotator.smart.msg.loading': 'Loading Intelligent Annotation...', 'DDSAnnotator.smart.msg.success': 'Request Annotations Successfully', 'DDSAnnotator.smart.msg.error': 'Request Annotations Failed', - 'DDSAnnotator.smart.msg.labelRequired': 'Please select one category at least', + 'DDSAnnotator.smart.msg.labelRequired': + 'Please enter one detection target at least', 'DDSAnnotator.smart.msg.confResults': '{count} matching annotations shown', 'DDSAnnotator.smart.msg.applyConf': '{count} annotations have been retained, with the others removed.', @@ -203,11 +206,16 @@ export default { 'DDSAnnotator.smart.tip.annotationApplied': '{count} annotations applied.', 'DDSAnnotator.smart.tip.visualPrompt': 'Add more visual prompts or accept current objects', + 'DDSAnnotator.smart.tip.edgeStitchError': + 'To ensure valid results when using intelligent edge stitching, make sure to use at least 2 mask objects.', + 'DDSAnnotator.smart.tip.limitJump': + 'You should finish or exit current intelligent session first', + 'DDSAnnotator.seg.tool': 'Segmentation tool', 'DDSAnnotator.seg.tool.content': 'Accept the segmentation result.', 'DDSAnnotator.confirm': 'Confirm', 'DDSAnnotator.points.editor': 'Points Attributes', - 'DDSAnnotator.attribute.add': 'Add label attributes', + 'DDSAnnotator.attribute.modal': 'Label attributes', 'DDSAnnotator.attribute.edit': 'Edit label attributes', 'DDSAnnotator.attribute.input': 'Please input', 'DDSAnnotator.attribute.required': 'Please fill in all required fields.', diff --git a/packages/components/src/locales/zh-CN.ts b/packages/components/src/locales/zh-CN.ts index 0e7a11a..3df87a0 100644 --- a/packages/components/src/locales/zh-CN.ts +++ b/packages/components/src/locales/zh-CN.ts @@ -149,7 +149,9 @@ export default { 'DDSAnnotator.smart.annotate': '生成标注', 'DDSAnnotator.smart.retry': '重新生成', 'DDSAnnotator.smart.modelTyle': '模型类型', - 'DDSAnnotator.smart.detection.input': '选择或输入类别', + 'DDSAnnotator.smart.detection.label': '目标检测类别', + 'DDSAnnotator.smart.detection.prompt': '提示文字', + 'DDSAnnotator.smart.detection.input': '输入提示文字', 'DDSAnnotator.smart.pose.input': '选择模版', 'DDSAnnotator.smart.pose.apply': '保留当前结果', 'DDSAnnotator.smart.ivp.name': '交互式视觉提示 (iVP)', @@ -169,7 +171,7 @@ export default { 'DDSAnnotator.smart.msg.loading': '正在请求智能标注结果...', 'DDSAnnotator.smart.msg.success': '智能标注请求成功', 'DDSAnnotator.smart.msg.error': '智能标注请求失败', - 'DDSAnnotator.smart.msg.labelRequired': '请至少选择一个目标类别', + 'DDSAnnotator.smart.msg.labelRequired': '请至少输入一个检测目标', 'DDSAnnotator.smart.msg.confResults': '共有{count}条标注符合目标置信区间', 'DDSAnnotator.smart.msg.applyConf': '已保留{count}条标注,其他标注已移除', 'DDSAnnotator.smart.msg.positivePrompt': '请确保至少添加一个正视觉提示', @@ -185,11 +187,15 @@ export default { 'DDSAnnotator.smart.tip.overlayobject': '查看重叠的标注对象', 'DDSAnnotator.smart.tip.annotationApplied': '已添加{count}个标注对象', 'DDSAnnotator.smart.tip.visualPrompt': '添加更多视觉提示或接受当前结果', + 'DDSAnnotator.smart.tip.edgeStitchError': + '在使用智能缝合笔刷时,为了确保得到有效的结果,请确保至少使用2个Mask对象。', + 'DDSAnnotator.smart.tip.limitJump': '请先完成/退出当前智能标注会话', + 'DDSAnnotator.seg.tool': '分割工具', 'DDSAnnotator.seg.tool.content': '接受本次分割结果.', 'DDSAnnotator.confirm': '确认', 'DDSAnnotator.points.editor': '关键点属性', - 'DDSAnnotator.attribute.add': '添加标签属性', + 'DDSAnnotator.attribute.modal': '标签属性', 'DDSAnnotator.attribute.edit': '编辑标签属性', 'DDSAnnotator.attribute.input': '请输入', 'DDSAnnotator.attribute.required': '请填写所有必填项', From 006f4e52c009645919e77df5632bc6bfddc4b830 Mon Sep 17 00:00:00 2001 From: fredzhu Date: Thu, 29 Feb 2024 10:56:24 +0800 Subject: [PATCH 10/11] update(frontend): build & update frontend files --- deepdataspace/server/static/index.html | 4 +- ...js => p__Dataset__index.d22cf5c2.async.js} | 2 +- ...p__Lab__FlagTool__index.05b9bfe4.async.js} | 2 +- ...oject__Workspace__index.afc69f7b.async.js} | 2 +- deepdataspace/server/static/umi.0e5412b2.js | 518 ++++++++++++++++++ .../server/static/umi.0e5412b2.js.map | 1 + deepdataspace/server/static/umi.83ddf177.js | 518 ------------------ .../server/static/umi.83ddf177.js.map | 1 - .../{umi.5d546bdb.css => umi.ac821cfa.css} | 4 +- ....5d546bdb.css.map => umi.ac821cfa.css.map} | 2 +- deepdataspace/server/templates/index.html | 4 +- 11 files changed, 529 insertions(+), 529 deletions(-) rename deepdataspace/server/static/{p__Dataset__index.cc75cb8c.async.js => p__Dataset__index.d22cf5c2.async.js} (99%) rename deepdataspace/server/static/{p__Lab__FlagTool__index.5a95f054.async.js => p__Lab__FlagTool__index.05b9bfe4.async.js} (99%) rename deepdataspace/server/static/{p__Project__Workspace__index.065c0c78.async.js => p__Project__Workspace__index.afc69f7b.async.js} (98%) create mode 100644 deepdataspace/server/static/umi.0e5412b2.js create mode 100644 deepdataspace/server/static/umi.0e5412b2.js.map delete mode 100644 deepdataspace/server/static/umi.83ddf177.js delete mode 100644 deepdataspace/server/static/umi.83ddf177.js.map rename deepdataspace/server/static/{umi.5d546bdb.css => umi.ac821cfa.css} (58%) rename deepdataspace/server/static/{umi.5d546bdb.css.map => umi.ac821cfa.css.map} (99%) diff --git a/deepdataspace/server/static/index.html b/deepdataspace/server/static/index.html index 29730a3..0e6b285 100644 --- a/deepdataspace/server/static/index.html +++ b/deepdataspace/server/static/index.html @@ -5,10 +5,10 @@ - +
- + \ No newline at end of file diff --git a/deepdataspace/server/static/p__Dataset__index.cc75cb8c.async.js b/deepdataspace/server/static/p__Dataset__index.d22cf5c2.async.js similarity index 99% rename from deepdataspace/server/static/p__Dataset__index.cc75cb8c.async.js rename to deepdataspace/server/static/p__Dataset__index.d22cf5c2.async.js index d03a35d..0d17e8a 100644 --- a/deepdataspace/server/static/p__Dataset__index.cc75cb8c.async.js +++ b/deepdataspace/server/static/p__Dataset__index.d22cf5c2.async.js @@ -1 +1 @@ -"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[33],{51204:function(se,Z,e){e.d(Z,{Z:function(){return V}});var R=e(58757),j=e(59504),N=e(53357),A={wrapper:"wrapper___FtwXk"},u=e(35667),o=function(P){var i=(0,N.bU)(),s=i.localeText,p=P.categoryId,t=P.categories,h=P.onCategoryChange,y=(0,R.useMemo)(function(){return t.map(function(w){return{label:w.name,value:w.id}})},[t]);return(0,u.jsxs)("div",{className:A.wrapper,children:[s("dataset.detail.category"),":",(0,u.jsx)(j.Z,{showSearch:!0,style:{width:"160px",marginLeft:"10px"},placeholder:"Select a category",options:y,optionFilterProp:"label",value:p,onChange:h,getPopupContainer:function(){return document.getElementById("filterWrap")}})]})},V=o},85205:function(se,Z,e){e.d(Z,{Z:function(){return t}});var R=e(58757),j=e(10852),N=e(38904),A=e(57414),u={dropBtn:"dropBtn___SYvIY",displayPanel:"displayPanel___JkzSB",objectTypeOption:"objectTypeOption___O6sJL",typeTitle:"typeTitle___l97pr",displayOptions:"displayOptions___NQVYA"},o=e(87615),V=e(87608),W=e.n(V),P=e(53357),i=e(76180),s=e(35667),p=function(y){var w=(0,P.bU)(),g=w.localeText,J=y.annotationTypes,B=y.disableChangeType,H=y.displayAnnotationType,f=y.displayOptions,$=y.displayOptionsValue,K=y.onDisplayAnnotationTypeChange,S=y.onDisplayOptionsChange;return(0,s.jsx)(o.Z,{className:u.dropBtn,customOverlay:(0,s.jsxs)("div",{className:W()(u.displayPanel),children:[J.length>0&&(0,s.jsxs)("div",{className:u.objectTypeOption,children:[(0,s.jsxs)("span",{className:u.typeTitle,children:[g("dataset.detail.displayType"),":"]}),(0,s.jsx)(j.ZP.Group,{disabled:B,onChange:function(Q){return K(Q.target.value)},value:H,children:J.map(function(D){return(0,s.jsx)(j.ZP,{value:D,children:D},D)})})]}),(0,s.jsx)(N.Z.Group,{className:u.displayOptions,onChange:S,value:$,children:(0,s.jsx)(A.Z,{direction:"vertical",children:f.map(function(D){return(0,s.jsx)(N.Z,{value:D,children:g(i.Ss[D])},D)})})})]}),children:g("dataset.detail.displayOptions")})},t=p},87615:function(se,Z,e){e.d(Z,{Z:function(){return p}});var R=e(58757),j=e(38904),N=e(10852),A=e(73267),u=e(57414),o=e(12562),V=e(10130),W=e(53357),P={dropdownSelector:"dropdownSelector___gvMFq",dropdownWrap:"dropdownWrap___WWYlz",dropdownBox:"dropdownBox___lpUVf"},i=e(35667),s=function(h){var y=h.data,w=h.multiple,g=h.type,J=g===void 0?"primary":g,B=h.ghost,H=B===void 0?!0:B,f=h.value,$=h.filterOptionValue,K=h.filterOptionName,S=h.onChange,D=h.className,Q=h.children,q=h.customOverlay,F=w?j.Z:N.ZP,a=function(b){S&&S(w?b:b.target.value)};return(0,i.jsx)(A.Z,{overlayClassName:P.dropdownSelector,trigger:["click"],dropdownRender:function(){return(0,i.jsx)("div",{className:P.dropdownWrap,children:q||(0,i.jsx)(F.Group,{className:P.dropdownBox,onChange:a,value:f,children:(0,i.jsx)(u.Z,{direction:"vertical",children:y==null?void 0:y.map(function(b,_){var oe=$?$(b):b,ne=K?K(b):b;return(0,i.jsx)(F,{value:oe,children:(0,W._w)(ne)},_)})})})})},children:(0,i.jsxs)(o.ZP,{className:D,type:J,ghost:H,children:[Q,(0,i.jsx)(V.Z,{})]})})},p=s},77589:function(se,Z,e){e.d(Z,{Z:function(){return y}});var R=e(58757),j=e(38904),N=e(57414),A=e(94706),u=e(10852),o={labelsPanel:"labelsPanel___nCoUr",labels:"labels___f2KO4",labelTitle:"labelTitle___C12Si",optionRow:"optionRow___X46cn",checkbox:"checkbox___Z6wLJ",slider:"slider___GUIhq",lineStyle:"lineStyle___Kmd9H",actionBtns:"actionBtns___JfDVN",modes:"modes___HaJVD"},V=e(87615),W=e(87608),P=e.n(W),i=e(76180),s=e(74595),p=e(53357),t=e(35667),h=function(g){var J=(0,p.bU)(),B=J.localeText,H=g.showMatting,f=g.showKeyPoints,$=g.isTiledDiff,K=g.labels,S=g.selectedLabelIds,D=g.diffMode,Q=g.disableChangeDiffMode,q=g.onLabelsChange,F=g.onLabelConfidenceChange,a=g.onLabelsDiffModeChange;return(0,t.jsx)(V.Z,{customOverlay:(0,t.jsxs)("div",{className:P()(o.labelsPanel),id:"labelsPanel",children:[(0,t.jsxs)("div",{className:o.labels,children:[(0,t.jsxs)("div",{className:o.labelTitle,children:[(0,t.jsx)("div",{style:{width:"240px",paddingLeft:"24px"},children:B("dataset.detail.labelSetsName")}),!H&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{width:"132px"},children:B("dataset.detail.confidence")}),(0,t.jsx)("div",{style:{width:"100px",marginLeft:"40px"},children:B("dataset.detail.style")})]})]}),(0,t.jsx)(j.Z.Group,{onChange:q,value:S,className:o.options,children:(0,t.jsx)(N.Z,{direction:"vertical",children:K.map(function(x,b){var _=(0,s.iE)(x.id,S,$),oe=_.strokeDash,ne=_.lineWidth,fe=_.colorAplha;return(0,t.jsxs)("div",{className:o.optionRow,children:[(0,t.jsx)(j.Z,{value:x.id,className:o.checkbox,disabled:!S.includes(x.id)&&S.length>=i.JQ.length,children:x.name}),!H&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(A.Z,{tooltip:{open:!0,prefixCls:"slider-tooltip",getPopupContainer:function(){return document.getElementById("labelsPanel")}},className:o.slider,range:!0,min:0,max:1,value:x.confidenceRange,step:.01,onChange:function(xe){return F(b,xe)},disabled:x.source!==i.$j.pred}),(0,t.jsx)("div",{style:{width:"100px",marginLeft:"40px"},children:S.includes(x.id)&&(0,t.jsxs)("svg",{className:o.lineStyle,children:[(0,t.jsx)("line",{x1:5,y1:5,x2:70,y2:5,strokeDasharray:oe.join(","),strokeWidth:"".concat(ne,"pt")}),f&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:5,cy:5,r:3,stroke:"black",strokeWidth:1,fill:"rgba(133, 208, 252, ".concat(fe,")")}),(0,t.jsx)("circle",{cx:70,cy:5,r:3,stroke:"black",strokeWidth:1,fill:"rgba(133, 208, 252, ".concat(fe,")")})]})]})})]})]},x.id)})})})]}),!H&&!Q&&(0,t.jsx)("div",{className:o.modes,children:(0,t.jsx)(u.ZP.Group,{onChange:function(b){return a(b.target.value)},value:D,children:i.Wp.map(function(x){return(0,t.jsx)(u.ZP,{value:x,children:B(x)},x)})})})]}),children:B("dataset.detail.labelSets")})},y=h},10666:function(se,Z,e){e.r(Z),e.d(Z,{default:function(){return Be}});var R=e(24454),j=e.n(R),N=e(56592),A=e.n(N),u=e(58757),o=e(97375),V=e(28506),W=e(61845),P=e(37617),i=e(79233),s=e(6233),p=e.n(s),t=e(12562),h=e(92183),y=e(60698),w={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M956 686.5l-.1-.1-.1-.1C911.7 593 843.4 545 752.5 545s-159.2 48.1-203.4 141.3v.1a42.92 42.92 0 000 36.4C593.3 816 661.6 864 752.5 864s159.2-48.1 203.4-141.3c5.4-11.5 5.4-24.8.1-36.2zM752.5 800c-62.1 0-107.4-30-141.1-95.5C645 639 690.4 609 752.5 609c62.1 0 107.4 30 141.1 95.5C860 770 814.6 800 752.5 800z"}},{tag:"path",attrs:{d:"M697 705a56 56 0 10112 0 56 56 0 10-112 0zM136 232h704v253h72V192c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32v520c0 17.7 14.3 32 32 32h352v-72H136V232z"}},{tag:"path",attrs:{d:"M724.9 338.1l-36.8-36.8a8.03 8.03 0 00-11.3 0L493 485.3l-86.1-86.2a8.03 8.03 0 00-11.3 0L251.3 543.4a8.03 8.03 0 000 11.3l36.8 36.8c3.1 3.1 8.2 3.1 11.3 0l101.8-101.8 86.1 86.2c3.1 3.1 8.2 3.1 11.3 0l226.3-226.5c3.2-3.1 3.2-8.2 0-11.3z"}}]},name:"fund-view",theme:"outlined"},g=w,J=e(17202),B=function(v,d){return u.createElement(J.Z,(0,y.Z)({},v,{ref:d,icon:g}))},H=u.forwardRef(B),f=e(76180),$=e(23707),K=e(51204),S=e(77589),D=e(85205),Q=e(51830),q=e(53357),F={fixMenu:"fixMenu___sFkoc",filter:"filter___YLCNA",rightFilters:"rightFilters___ciVMw",backBtn:"backBtn___czLrv",dropBtn:"dropBtn___dmpsD"},a=e(35667),x=function(){var v=(0,q.bU)(),d=v.localeText,T=(0,o.useModel)("dataset.common",function(n){return{isTiledDiff:n.isTiledDiff,cloumnCount:n.pageState.cloumnCount,filters:n.pageData.filters,filterValues:n.pageState.filterValues,comparisons:n.pageState.comparisons}}),r=T.filters,M=T.filterValues,c=T.comparisons,L=T.isTiledDiff,G=T.cloumnCount,O=(0,o.useModel)("dataset.filters"),C=O.onCategoryChange,k=O.onDisplayOptionsChange,z=O.onDisplayAnnotationTypeChange,E=O.onLabelsChange,te=O.onLabelConfidenceChange,re=O.onLabelsDiffModeChange,de=O.onColumnCountChange,U=(0,o.useModel)("dataset.comparisons"),ce=U.openAnalysisModal,ee=r.labels,ue=M.selectedLabelIds,le=M.displayAnnotationType===f.JJ.Matting,ve=M.displayAnnotationType===f.JJ.KeyPoints;return(0,a.jsxs)("div",{className:F.fixMenu,id:"filterWrap",children:[(0,a.jsxs)("div",{className:F.filter,children:[(0,a.jsx)(t.ZP,{icon:(0,a.jsx)(h.Z,{}),type:"text",className:F.backBtn,onClick:function(){return(0,$.yS)("/dataset")}}),(0,a.jsx)(K.Z,{categoryId:M.categoryId,categories:r.categories,onCategoryChange:C})]}),(0,a.jsxs)("div",{className:F.rightFilters,children:[c?null:(0,a.jsx)(S.Z,{showMatting:le,showKeyPoints:ve,isTiledDiff:L,labels:ee,selectedLabelIds:ue,diffMode:M.diffMode,onLabelsChange:E,onLabelConfidenceChange:te,onLabelsDiffModeChange:re}),(0,a.jsx)(D.Z,{annotationTypes:r.annotationTypes,disableChangeType:!!c,displayAnnotationType:M.displayAnnotationType,displayOptions:r.displayOptions,displayOptionsValue:M.displayOptions,onDisplayAnnotationTypeChange:z,onDisplayOptionsChange:k}),c?null:(0,a.jsxs)(t.ZP,{className:F.dropBtn,type:"primary",onClick:ce,children:[(0,a.jsx)(H,{}),d("dataset.detail.analysis")]}),!L&&(0,a.jsx)(Q.ii,{cloumnCount:G,onColumnCountChange:de})]})]})},b=x,_=e(88205),oe=e.n(_),ne=e(84045),fe=e(62109),ye=e(59504),xe=e(10852),ie=e(38904),De=e(94706),je=e(87615),m={tools:"tools___Ug3Ea",title:"title____AI54",optionsTitle:"optionsTitle___sroju",vsText:"vsText___dPKn_",vs:"vs___zpup3",splitLine:"splitLine___SWsIk",splitLineLeft:"splitLineLeft___gVvN2",toolsBar:"toolsBar___SS4ub",text:"text___TLeEl",selector:"selector___rNXkx",scoreSlider:"scoreSlider___Dmu_I",slider:"slider___TbBwi",displayBar:"displayBar___iGMj2",anlysisModal:"anlysisModal___IPNpO"},Me=e(41260),Ne=function(){var v,d,T=(0,q.bU)(),r=T.localeText,M=(0,o.useModel)("dataset.common",function(n){return{comparisons:n.pageState.comparisons,labels:n.pageData.filters.labels}}),c=M.comparisons,L=M.labels,G=(0,u.useState)(void 0),O=oe()(G,2),C=O[0],k=O[1],z=(0,o.useModel)("dataset.comparisons"),E=z.showAnalysisModal,te=z.closeAnalysisModal,re=z.compareLabelSet,de=z.exitComparisons,U=z.onFilterComparisonsPrecision,ce=L.length>0&&L.find(function(n){return n.source===f.$j.gt})&&L.find(function(n){var l;return((l=n.comparePrecisions)===null||l===void 0?void 0:l.length)>0}),ee=L.find(function(n){return n.source===f.$j.gt}),ue=L.filter(function(n){var l;return((l=n.comparePrecisions)===null||l===void 0?void 0:l.length)>0}).map(function(n){return{value:n.id,label:n.name}}),le=function(l){k(l)},ve=function(){if(!ce){ne.ZP.warning(r("dataset.toAnalysis.unSupportWarn"));return}var l=L.find(function(pe){return pe.id===C});if(!C||!l){ne.ZP.warning(r("dataset.toAnalysis.unSelectWarn"));return}te(),re(l)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(fe.Z,{title:r("dataset.detail.analModal.title"),footer:[(0,a.jsx)(t.ZP,{type:"primary",onClick:ve,children:r("dataset.detail.analModal.btn")},"analysis")],open:E,onCancel:te,children:(0,a.jsxs)("div",{className:m.anlysisModal,children:[(0,a.jsx)("div",{children:ee==null?void 0:ee.name}),(0,a.jsx)("div",{className:m.vs,children:"vs"}),(0,a.jsx)(ye.Z,{placeholder:r("dataset.detail.analModal.select"),style:{width:240},onChange:le,options:ue,value:C})]})}),c&&(0,a.jsxs)("div",{className:m.tools,children:[(0,a.jsxs)("div",{className:m.toolsBar,children:[(0,a.jsxs)("div",{className:m.selector,children:[(0,a.jsxs)("div",{className:m.title,children:[r("dataset.detail.analModal.sort")," :"]}),(0,a.jsx)(je.Z,{data:f.J1,value:c.orderBy,filterOptionName:function(l){return l.name},filterOptionValue:function(l){return l.value},onChange:function(l){return U("orderBy",l)},ghost:!1,type:"default",children:(v=f.J1.find(function(n){return n.value===c.orderBy}))===null||v===void 0?void 0:v.name}),(0,a.jsx)("span",{className:m.text,children:"with Confidence Precision"}),(0,a.jsxs)(je.Z,{data:c.label.comparePrecisions,value:c.precision,filterOptionName:function(l){return"".concat(l.precision," (Threshold: ").concat((0,Me.O)(l.threshold),")")},filterOptionValue:function(l){return l.precision},onChange:function(l){return U("precision",l)},ghost:!1,type:"default",children:[c.precision," (Threshold: ".concat((0,Me.O)(((d=c.label.comparePrecisions.find(function(n){return n.precision===c.precision}))===null||d===void 0?void 0:d.threshold)||0),")")]})]}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("span",{className:m.vsText,children:["GroundTruch ",(0,a.jsx)("span",{className:m.vs,children:"VS"})," ",c==null?void 0:c.label.name]}),(0,a.jsx)(t.ZP,{onClick:de,children:r("dataset.detail.analModal.exit")})]})]}),(0,a.jsxs)("div",{className:m.displayBar,children:[(0,a.jsxs)("div",{className:m.title,children:[r("dataset.detail.analModal.display")," :"]}),(0,a.jsx)(xe.ZP.Group,{options:f.Wp.map(function(n){return{label:"".concat(r(n)).concat(r("dataset.detail.analModal.diff")),value:n}}),onChange:function(l){return U("diffMode",l.target.value)},value:c.diffMode,optionType:"button"}),(0,a.jsx)("div",{className:m.splitLine}),(0,a.jsxs)(ie.Z.Group,{value:c.displays,onChange:function(l){return U("displays",l)},children:[(0,a.jsx)("span",{className:m.optionsTitle,children:"GroundTruth :"}),(0,a.jsx)(ie.Z,{value:f.$j.gt,children:"Matched"}),(0,a.jsx)(ie.Z,{value:f.BP.fn,children:"FN"}),(0,a.jsx)("div",{className:m.splitLineLeft}),(0,a.jsx)("span",{className:m.optionsTitle,children:"Prediction :"}),(0,a.jsx)(ie.Z,{value:f.$j.pred,children:"Matched"}),(0,a.jsx)(ie.Z,{value:f.BP.fp,children:"FP"})]}),(0,a.jsx)("div",{className:m.splitLineLeft}),(0,a.jsxs)("div",{className:m.scoreSlider,children:["Confidence threshold:",(0,a.jsx)(De.Z,{className:m.slider,min:0,max:1,value:c.score,step:.01,onChange:function(l){return U("score",l)}})]})]})]})]})},Se=Ne,Le=e(74595),Ce={toolsBar:"toolsBar___YbUXd",name:"name___QVqrS",vs:"vs___xuWpM"},be=function(v){var d=v.itemWidth,T=(0,o.useModel)("dataset.common",function(C){return{selectedLabelIds:C.pageState.filterValues.selectedLabelIds,displayAnnotationType:C.pageState.filterValues.displayAnnotationType,labels:C.pageData.filters.labels,comparisons:C.pageState.comparisons,isTiledDiff:C.isTiledDiff}}),r=T.comparisons,M=T.isTiledDiff,c=T.labels,L=T.selectedLabelIds,G=T.displayAnnotationType;if(r||L.length<=1)return null;var O=(0,Le.WR)(c,L,G);return(0,a.jsx)("div",{className:Ce.toolsBar,children:O.map(function(C,k){return(0,a.jsxs)(u.Fragment,{children:[!M&&k>0&&(0,a.jsx)("span",{className:Ce.vs,children:"VS"}),(0,a.jsx)("span",{className:Ce.name,style:{width:M&&k+1!==O.length?d:"auto"},children:C.name})]},C.id)})})},Ie=be,Te=e(65104),Ze=e(4394),X={page:"page___O9xsN",container:"container___rArHW",item:"item___aq9kP",itemImgWrap:"itemImgWrap___IaXgL",flagIcon:"flagIcon___Cm6rw",label:"label___spqGh",itemSelectedMask:"itemSelectedMask___CHtC_",pagination:"pagination___VE_pg",editor:"editor___Nl4nr",pageSpin:"pageSpin___zzy9v"},Ae=function(){var v=(0,o.useModel)("dataset.common"),d=v.pageState,T=v.onInitPageState,r=v.pageData,M=v.loading,c=v.displayLabelIds,L=v.isTiledDiff,G=v.displayOptionsResult,O=v.onPageContentLoaded,C=v.onPreviewIndexChange,k=v.exitPreview,z=v.displayObjectsFilter,E=(0,o.useModel)("Dataset.model"),te=E.onPageDidMount,re=E.onPageWillUnmount,de=E.clickItem,U=E.doubleClickItem,ce=E.onPageChange,ee=E.onPageSizeChange,ue=(0,o.useModel)("global"),le=ue.layoutInnerWidth,ve=d.cloumnCount,n=d.isSingleAnnotation,l=d.filterValues,pe=d.flagTools;(0,V._)({onPageDidMount:te,onPageWillUnmount:re,onInitPageState:T,pageState:d});var Oe=le?le-80:0,ge=(0,u.useMemo)(function(){return L?(0,Le.JC)(r.imgList,c,l.displayAnnotationType):r.imgList},[L,r.imgList,c]),Pe=L?ge.length/(r.imgList.length||1):ve,ae=Oe?(Oe-16*(Pe-1))/(Pe||1):0;return(0,a.jsxs)(W._z,{ghost:!0,className:X.page,pageHeaderRender:function(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b,{}),(0,a.jsx)(Se,{}),(0,a.jsx)(Ie,{itemWidth:ae+16})]})},fixedHeader:!0,children:[(0,a.jsx)("div",{className:X.container,children:(0,a.jsx)(P.Z,{loading:M,children:ge.length?(0,a.jsx)(p(),{options:{gutter:16,horizontalOrder:!0,transitionDuration:0},onImagesLoaded:function(){return O()},enableResizableChildren:!0,children:ge.map(function(I,he){return(0,a.jsxs)("div",{className:X.item,style:{width:ae},onClick:function(){return de(he)},onDoubleClick:function(){return U(he)},children:[(0,a.jsx)("div",{className:X.itemImgWrap,style:{width:ae,height:pe?ae*3/4:"auto"},children:(0,a.jsx)(Te.D5,{isOldMode:!0,categories:r.filters.categories,data:I,wrapWidth:ae,wrapHeight:pe?ae*3/4:void 0,minHeight:ae*3/4,objectsFilter:z,displayOptionsResult:G})}),I.flag>0&&(0,a.jsx)(Ze.r,{fill:f.a5[I.flag],className:X.flagIcon}),G.showImgDesc&&(0,a.jsxs)("div",{className:X.label,children:[" ",I.caption||I.desc," "]}),pe&&I.selected?(0,a.jsx)("div",{className:X.itemSelectedMask}):null]},"".concat(I.id,"_").concat(he))})}):null})}),!M&&(0,a.jsx)(Q.ZJ,{current:d.page,size:d.pageSize,total:r.total,onPageChange:ce,onPageSizeChange:ee}),(0,a.jsx)(Te.j5,{isOldMode:!0,visible:d.previewIndex>=0&&!n,categories:r.filters.categories,list:ge,current:d.previewIndex,onCancel:k,onNext:A()(j()().mark(function I(){return j()().wrap(function(Y){for(;;)switch(Y.prev=Y.next){case 0:d.previewIndex0&&C(d.previewIndex-1);case 1:case"end":return Y.stop()}},I)})),objectsFilter:z,displayOptionsResult:G}),r.screenLoading?(0,a.jsx)("div",{className:X.pageSpin,children:(0,a.jsx)(i.Z,{spinning:!0,tip:r.screenLoading})}):null]})},Be=Ae},4394:function(se,Z,e){e.d(Z,{r:function(){return W}});var R=e(58757),j=Object.defineProperty,N=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,o=(i,s,p)=>s in i?j(i,s,{enumerable:!0,configurable:!0,writable:!0,value:p}):i[s]=p,V=(i,s)=>{for(var p in s||(s={}))A.call(s,p)&&o(i,p,s[p]);if(N)for(var p of N(s))u.call(s,p)&&o(i,p,s[p]);return i};const W=i=>R.createElement("svg",V({viewBox:"0 0 16 16",fill:"#52C41A",xmlns:"http://www.w3.org/2000/svg"},i),R.createElement("path",{d:"M12.633 4.84 3.838 1.05A.599.599 0 0 0 3 1.602v12.793a.602.602 0 1 0 1.204 0v-4l8.475-4.47a.601.601 0 0 0-.046-1.086Z"}));var P="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9IiM1MkM0MUEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjYzMyA0Ljg0IDMuODM4IDEuMDVBLjU5OS41OTkgMCAwIDAgMyAxLjYwMnYxMi43OTNhLjYwMi42MDIgMCAxIDAgMS4yMDQgMHYtNGw4LjQ3NS00LjQ3YS42MDEuNjAxIDAgMCAwLS4wNDYtMS4wODZaIi8+PC9zdmc+"}}]); +"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[33],{51204:function(se,Z,e){e.d(Z,{Z:function(){return V}});var R=e(58757),j=e(59504),N=e(53357),A={wrapper:"wrapper___FtwXk"},u=e(35667),o=function(P){var i=(0,N.bU)(),s=i.localeText,p=P.categoryId,t=P.categories,h=P.onCategoryChange,y=(0,R.useMemo)(function(){return t.map(function(w){return{label:w.name,value:w.id}})},[t]);return(0,u.jsxs)("div",{className:A.wrapper,children:[s("dataset.detail.category"),":",(0,u.jsx)(j.Z,{showSearch:!0,style:{width:"160px",marginLeft:"10px"},placeholder:"Select a category",options:y,optionFilterProp:"label",value:p,onChange:h,getPopupContainer:function(){return document.getElementById("filterWrap")}})]})},V=o},85205:function(se,Z,e){e.d(Z,{Z:function(){return t}});var R=e(58757),j=e(10852),N=e(38904),A=e(57414),u={dropBtn:"dropBtn___SYvIY",displayPanel:"displayPanel___JkzSB",objectTypeOption:"objectTypeOption___O6sJL",typeTitle:"typeTitle___l97pr",displayOptions:"displayOptions___NQVYA"},o=e(87615),V=e(87608),W=e.n(V),P=e(53357),i=e(76180),s=e(35667),p=function(y){var w=(0,P.bU)(),g=w.localeText,J=y.annotationTypes,B=y.disableChangeType,H=y.displayAnnotationType,f=y.displayOptions,$=y.displayOptionsValue,K=y.onDisplayAnnotationTypeChange,S=y.onDisplayOptionsChange;return(0,s.jsx)(o.Z,{className:u.dropBtn,customOverlay:(0,s.jsxs)("div",{className:W()(u.displayPanel),children:[J.length>0&&(0,s.jsxs)("div",{className:u.objectTypeOption,children:[(0,s.jsxs)("span",{className:u.typeTitle,children:[g("dataset.detail.displayType"),":"]}),(0,s.jsx)(j.ZP.Group,{disabled:B,onChange:function(Q){return K(Q.target.value)},value:H,children:J.map(function(D){return(0,s.jsx)(j.ZP,{value:D,children:D},D)})})]}),(0,s.jsx)(N.Z.Group,{className:u.displayOptions,onChange:S,value:$,children:(0,s.jsx)(A.Z,{direction:"vertical",children:f.map(function(D){return(0,s.jsx)(N.Z,{value:D,children:g(i.Ss[D])},D)})})})]}),children:g("dataset.detail.displayOptions")})},t=p},87615:function(se,Z,e){e.d(Z,{Z:function(){return p}});var R=e(58757),j=e(38904),N=e(10852),A=e(73267),u=e(57414),o=e(12562),V=e(10130),W=e(53357),P={dropdownSelector:"dropdownSelector___gvMFq",dropdownWrap:"dropdownWrap___WWYlz",dropdownBox:"dropdownBox___lpUVf"},i=e(35667),s=function(h){var y=h.data,w=h.multiple,g=h.type,J=g===void 0?"primary":g,B=h.ghost,H=B===void 0?!0:B,f=h.value,$=h.filterOptionValue,K=h.filterOptionName,S=h.onChange,D=h.className,Q=h.children,q=h.customOverlay,F=w?j.Z:N.ZP,a=function(b){S&&S(w?b:b.target.value)};return(0,i.jsx)(A.Z,{overlayClassName:P.dropdownSelector,trigger:["click"],dropdownRender:function(){return(0,i.jsx)("div",{className:P.dropdownWrap,children:q||(0,i.jsx)(F.Group,{className:P.dropdownBox,onChange:a,value:f,children:(0,i.jsx)(u.Z,{direction:"vertical",children:y==null?void 0:y.map(function(b,_){var oe=$?$(b):b,ne=K?K(b):b;return(0,i.jsx)(F,{value:oe,children:(0,W._w)(ne)},_)})})})})},children:(0,i.jsxs)(o.ZP,{className:D,type:J,ghost:H,children:[Q,(0,i.jsx)(V.Z,{})]})})},p=s},77589:function(se,Z,e){e.d(Z,{Z:function(){return y}});var R=e(58757),j=e(38904),N=e(57414),A=e(94706),u=e(10852),o={labelsPanel:"labelsPanel___nCoUr",labels:"labels___f2KO4",labelTitle:"labelTitle___C12Si",optionRow:"optionRow___X46cn",checkbox:"checkbox___Z6wLJ",slider:"slider___GUIhq",lineStyle:"lineStyle___Kmd9H",actionBtns:"actionBtns___JfDVN",modes:"modes___HaJVD"},V=e(87615),W=e(87608),P=e.n(W),i=e(76180),s=e(74595),p=e(53357),t=e(35667),h=function(g){var J=(0,p.bU)(),B=J.localeText,H=g.showMatting,f=g.showKeyPoints,$=g.isTiledDiff,K=g.labels,S=g.selectedLabelIds,D=g.diffMode,Q=g.disableChangeDiffMode,q=g.onLabelsChange,F=g.onLabelConfidenceChange,a=g.onLabelsDiffModeChange;return(0,t.jsx)(V.Z,{customOverlay:(0,t.jsxs)("div",{className:P()(o.labelsPanel),id:"labelsPanel",children:[(0,t.jsxs)("div",{className:o.labels,children:[(0,t.jsxs)("div",{className:o.labelTitle,children:[(0,t.jsx)("div",{style:{width:"240px",paddingLeft:"24px"},children:B("dataset.detail.labelSetsName")}),!H&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{width:"132px"},children:B("dataset.detail.confidence")}),(0,t.jsx)("div",{style:{width:"100px",marginLeft:"40px"},children:B("dataset.detail.style")})]})]}),(0,t.jsx)(j.Z.Group,{onChange:q,value:S,className:o.options,children:(0,t.jsx)(N.Z,{direction:"vertical",children:K.map(function(x,b){var _=(0,s.iE)(x.id,S,$),oe=_.strokeDash,ne=_.lineWidth,fe=_.colorAplha;return(0,t.jsxs)("div",{className:o.optionRow,children:[(0,t.jsx)(j.Z,{value:x.id,className:o.checkbox,disabled:!S.includes(x.id)&&S.length>=i.JQ.length,children:x.name}),!H&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(A.Z,{tooltip:{open:!0,prefixCls:"slider-tooltip",getPopupContainer:function(){return document.getElementById("labelsPanel")}},className:o.slider,range:!0,min:0,max:1,value:x.confidenceRange,step:.01,onChange:function(xe){return F(b,xe)},disabled:x.source!==i.$j.pred}),(0,t.jsx)("div",{style:{width:"100px",marginLeft:"40px"},children:S.includes(x.id)&&(0,t.jsxs)("svg",{className:o.lineStyle,children:[(0,t.jsx)("line",{x1:5,y1:5,x2:70,y2:5,strokeDasharray:oe.join(","),strokeWidth:"".concat(ne,"pt")}),f&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:5,cy:5,r:3,stroke:"black",strokeWidth:1,fill:"rgba(133, 208, 252, ".concat(fe,")")}),(0,t.jsx)("circle",{cx:70,cy:5,r:3,stroke:"black",strokeWidth:1,fill:"rgba(133, 208, 252, ".concat(fe,")")})]})]})})]})]},x.id)})})})]}),!H&&!Q&&(0,t.jsx)("div",{className:o.modes,children:(0,t.jsx)(u.ZP.Group,{onChange:function(b){return a(b.target.value)},value:D,children:i.Wp.map(function(x){return(0,t.jsx)(u.ZP,{value:x,children:B(x)},x)})})})]}),children:B("dataset.detail.labelSets")})},y=h},10666:function(se,Z,e){e.r(Z),e.d(Z,{default:function(){return Be}});var R=e(24454),j=e.n(R),N=e(56592),A=e.n(N),u=e(58757),o=e(97375),V=e(28506),W=e(61845),P=e(37617),i=e(79233),s=e(6233),p=e.n(s),t=e(12562),h=e(92183),y=e(60698),w={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M956 686.5l-.1-.1-.1-.1C911.7 593 843.4 545 752.5 545s-159.2 48.1-203.4 141.3v.1a42.92 42.92 0 000 36.4C593.3 816 661.6 864 752.5 864s159.2-48.1 203.4-141.3c5.4-11.5 5.4-24.8.1-36.2zM752.5 800c-62.1 0-107.4-30-141.1-95.5C645 639 690.4 609 752.5 609c62.1 0 107.4 30 141.1 95.5C860 770 814.6 800 752.5 800z"}},{tag:"path",attrs:{d:"M697 705a56 56 0 10112 0 56 56 0 10-112 0zM136 232h704v253h72V192c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32v520c0 17.7 14.3 32 32 32h352v-72H136V232z"}},{tag:"path",attrs:{d:"M724.9 338.1l-36.8-36.8a8.03 8.03 0 00-11.3 0L493 485.3l-86.1-86.2a8.03 8.03 0 00-11.3 0L251.3 543.4a8.03 8.03 0 000 11.3l36.8 36.8c3.1 3.1 8.2 3.1 11.3 0l101.8-101.8 86.1 86.2c3.1 3.1 8.2 3.1 11.3 0l226.3-226.5c3.2-3.1 3.2-8.2 0-11.3z"}}]},name:"fund-view",theme:"outlined"},g=w,J=e(17202),B=function(v,d){return u.createElement(J.Z,(0,y.Z)({},v,{ref:d,icon:g}))},H=u.forwardRef(B),f=e(76180),$=e(23707),K=e(51204),S=e(77589),D=e(85205),Q=e(51830),q=e(53357),F={fixMenu:"fixMenu___sFkoc",filter:"filter___YLCNA",rightFilters:"rightFilters___ciVMw",backBtn:"backBtn___czLrv",dropBtn:"dropBtn___dmpsD"},a=e(35667),x=function(){var v=(0,q.bU)(),d=v.localeText,T=(0,o.useModel)("dataset.common",function(n){return{isTiledDiff:n.isTiledDiff,cloumnCount:n.pageState.cloumnCount,filters:n.pageData.filters,filterValues:n.pageState.filterValues,comparisons:n.pageState.comparisons}}),r=T.filters,M=T.filterValues,c=T.comparisons,L=T.isTiledDiff,G=T.cloumnCount,O=(0,o.useModel)("dataset.filters"),C=O.onCategoryChange,k=O.onDisplayOptionsChange,z=O.onDisplayAnnotationTypeChange,E=O.onLabelsChange,te=O.onLabelConfidenceChange,re=O.onLabelsDiffModeChange,de=O.onColumnCountChange,U=(0,o.useModel)("dataset.comparisons"),ce=U.openAnalysisModal,ee=r.labels,ue=M.selectedLabelIds,le=M.displayAnnotationType===f.JJ.Matting,ve=M.displayAnnotationType===f.JJ.KeyPoints;return(0,a.jsxs)("div",{className:F.fixMenu,id:"filterWrap",children:[(0,a.jsxs)("div",{className:F.filter,children:[(0,a.jsx)(t.ZP,{icon:(0,a.jsx)(h.Z,{}),type:"text",className:F.backBtn,onClick:function(){return(0,$.yS)("/dataset")}}),(0,a.jsx)(K.Z,{categoryId:M.categoryId,categories:r.categories,onCategoryChange:C})]}),(0,a.jsxs)("div",{className:F.rightFilters,children:[c?null:(0,a.jsx)(S.Z,{showMatting:le,showKeyPoints:ve,isTiledDiff:L,labels:ee,selectedLabelIds:ue,diffMode:M.diffMode,onLabelsChange:E,onLabelConfidenceChange:te,onLabelsDiffModeChange:re}),(0,a.jsx)(D.Z,{annotationTypes:r.annotationTypes,disableChangeType:!!c,displayAnnotationType:M.displayAnnotationType,displayOptions:r.displayOptions,displayOptionsValue:M.displayOptions,onDisplayAnnotationTypeChange:z,onDisplayOptionsChange:k}),c?null:(0,a.jsxs)(t.ZP,{className:F.dropBtn,type:"primary",onClick:ce,children:[(0,a.jsx)(H,{}),d("dataset.detail.analysis")]}),!L&&(0,a.jsx)(Q.ii,{cloumnCount:G,onColumnCountChange:de})]})]})},b=x,_=e(88205),oe=e.n(_),ne=e(84045),fe=e(62109),ye=e(59504),xe=e(10852),ie=e(38904),De=e(94706),je=e(87615),m={tools:"tools___Ug3Ea",title:"title____AI54",optionsTitle:"optionsTitle___sroju",vsText:"vsText___dPKn_",vs:"vs___zpup3",splitLine:"splitLine___SWsIk",splitLineLeft:"splitLineLeft___gVvN2",toolsBar:"toolsBar___SS4ub",text:"text___TLeEl",selector:"selector___rNXkx",scoreSlider:"scoreSlider___Dmu_I",slider:"slider___TbBwi",displayBar:"displayBar___iGMj2",anlysisModal:"anlysisModal___IPNpO"},Me=e(41260),Ne=function(){var v,d,T=(0,q.bU)(),r=T.localeText,M=(0,o.useModel)("dataset.common",function(n){return{comparisons:n.pageState.comparisons,labels:n.pageData.filters.labels}}),c=M.comparisons,L=M.labels,G=(0,u.useState)(void 0),O=oe()(G,2),C=O[0],k=O[1],z=(0,o.useModel)("dataset.comparisons"),E=z.showAnalysisModal,te=z.closeAnalysisModal,re=z.compareLabelSet,de=z.exitComparisons,U=z.onFilterComparisonsPrecision,ce=L.length>0&&L.find(function(n){return n.source===f.$j.gt})&&L.find(function(n){var l;return((l=n.comparePrecisions)===null||l===void 0?void 0:l.length)>0}),ee=L.find(function(n){return n.source===f.$j.gt}),ue=L.filter(function(n){var l;return((l=n.comparePrecisions)===null||l===void 0?void 0:l.length)>0}).map(function(n){return{value:n.id,label:n.name}}),le=function(l){k(l)},ve=function(){if(!ce){ne.ZP.warning(r("dataset.toAnalysis.unSupportWarn"));return}var l=L.find(function(pe){return pe.id===C});if(!C||!l){ne.ZP.warning(r("dataset.toAnalysis.unSelectWarn"));return}te(),re(l)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(fe.Z,{title:r("dataset.detail.analModal.title"),footer:[(0,a.jsx)(t.ZP,{type:"primary",onClick:ve,children:r("dataset.detail.analModal.btn")},"analysis")],open:E,onCancel:te,children:(0,a.jsxs)("div",{className:m.anlysisModal,children:[(0,a.jsx)("div",{children:ee==null?void 0:ee.name}),(0,a.jsx)("div",{className:m.vs,children:"vs"}),(0,a.jsx)(ye.Z,{placeholder:r("dataset.detail.analModal.select"),style:{width:240},onChange:le,options:ue,value:C})]})}),c&&(0,a.jsxs)("div",{className:m.tools,children:[(0,a.jsxs)("div",{className:m.toolsBar,children:[(0,a.jsxs)("div",{className:m.selector,children:[(0,a.jsxs)("div",{className:m.title,children:[r("dataset.detail.analModal.sort")," :"]}),(0,a.jsx)(je.Z,{data:f.J1,value:c.orderBy,filterOptionName:function(l){return l.name},filterOptionValue:function(l){return l.value},onChange:function(l){return U("orderBy",l)},ghost:!1,type:"default",children:(v=f.J1.find(function(n){return n.value===c.orderBy}))===null||v===void 0?void 0:v.name}),(0,a.jsx)("span",{className:m.text,children:"with Confidence Precision"}),(0,a.jsxs)(je.Z,{data:c.label.comparePrecisions,value:c.precision,filterOptionName:function(l){return"".concat(l.precision," (Threshold: ").concat((0,Me.O)(l.threshold),")")},filterOptionValue:function(l){return l.precision},onChange:function(l){return U("precision",l)},ghost:!1,type:"default",children:[c.precision," (Threshold: ".concat((0,Me.O)(((d=c.label.comparePrecisions.find(function(n){return n.precision===c.precision}))===null||d===void 0?void 0:d.threshold)||0),")")]})]}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("span",{className:m.vsText,children:["GroundTruch ",(0,a.jsx)("span",{className:m.vs,children:"VS"})," ",c==null?void 0:c.label.name]}),(0,a.jsx)(t.ZP,{onClick:de,children:r("dataset.detail.analModal.exit")})]})]}),(0,a.jsxs)("div",{className:m.displayBar,children:[(0,a.jsxs)("div",{className:m.title,children:[r("dataset.detail.analModal.display")," :"]}),(0,a.jsx)(xe.ZP.Group,{options:f.Wp.map(function(n){return{label:"".concat(r(n)).concat(r("dataset.detail.analModal.diff")),value:n}}),onChange:function(l){return U("diffMode",l.target.value)},value:c.diffMode,optionType:"button"}),(0,a.jsx)("div",{className:m.splitLine}),(0,a.jsxs)(ie.Z.Group,{value:c.displays,onChange:function(l){return U("displays",l)},children:[(0,a.jsx)("span",{className:m.optionsTitle,children:"GroundTruth :"}),(0,a.jsx)(ie.Z,{value:f.$j.gt,children:"Matched"}),(0,a.jsx)(ie.Z,{value:f.BP.fn,children:"FN"}),(0,a.jsx)("div",{className:m.splitLineLeft}),(0,a.jsx)("span",{className:m.optionsTitle,children:"Prediction :"}),(0,a.jsx)(ie.Z,{value:f.$j.pred,children:"Matched"}),(0,a.jsx)(ie.Z,{value:f.BP.fp,children:"FP"})]}),(0,a.jsx)("div",{className:m.splitLineLeft}),(0,a.jsxs)("div",{className:m.scoreSlider,children:["Confidence threshold:",(0,a.jsx)(De.Z,{className:m.slider,min:0,max:1,value:c.score,step:.01,onChange:function(l){return U("score",l)}})]})]})]})]})},Se=Ne,Le=e(74595),Ce={toolsBar:"toolsBar___YbUXd",name:"name___QVqrS",vs:"vs___xuWpM"},be=function(v){var d=v.itemWidth,T=(0,o.useModel)("dataset.common",function(C){return{selectedLabelIds:C.pageState.filterValues.selectedLabelIds,displayAnnotationType:C.pageState.filterValues.displayAnnotationType,labels:C.pageData.filters.labels,comparisons:C.pageState.comparisons,isTiledDiff:C.isTiledDiff}}),r=T.comparisons,M=T.isTiledDiff,c=T.labels,L=T.selectedLabelIds,G=T.displayAnnotationType;if(r||L.length<=1)return null;var O=(0,Le.WR)(c,L,G);return(0,a.jsx)("div",{className:Ce.toolsBar,children:O.map(function(C,k){return(0,a.jsxs)(u.Fragment,{children:[!M&&k>0&&(0,a.jsx)("span",{className:Ce.vs,children:"VS"}),(0,a.jsx)("span",{className:Ce.name,style:{width:M&&k+1!==O.length?d:"auto"},children:C.name})]},C.id)})})},Ie=be,Te=e(88662),Ze=e(4394),X={page:"page___O9xsN",container:"container___rArHW",item:"item___aq9kP",itemImgWrap:"itemImgWrap___IaXgL",flagIcon:"flagIcon___Cm6rw",label:"label___spqGh",itemSelectedMask:"itemSelectedMask___CHtC_",pagination:"pagination___VE_pg",editor:"editor___Nl4nr",pageSpin:"pageSpin___zzy9v"},Ae=function(){var v=(0,o.useModel)("dataset.common"),d=v.pageState,T=v.onInitPageState,r=v.pageData,M=v.loading,c=v.displayLabelIds,L=v.isTiledDiff,G=v.displayOptionsResult,O=v.onPageContentLoaded,C=v.onPreviewIndexChange,k=v.exitPreview,z=v.displayObjectsFilter,E=(0,o.useModel)("Dataset.model"),te=E.onPageDidMount,re=E.onPageWillUnmount,de=E.clickItem,U=E.doubleClickItem,ce=E.onPageChange,ee=E.onPageSizeChange,ue=(0,o.useModel)("global"),le=ue.layoutInnerWidth,ve=d.cloumnCount,n=d.isSingleAnnotation,l=d.filterValues,pe=d.flagTools;(0,V._)({onPageDidMount:te,onPageWillUnmount:re,onInitPageState:T,pageState:d});var Oe=le?le-80:0,ge=(0,u.useMemo)(function(){return L?(0,Le.JC)(r.imgList,c,l.displayAnnotationType):r.imgList},[L,r.imgList,c]),Pe=L?ge.length/(r.imgList.length||1):ve,ae=Oe?(Oe-16*(Pe-1))/(Pe||1):0;return(0,a.jsxs)(W._z,{ghost:!0,className:X.page,pageHeaderRender:function(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b,{}),(0,a.jsx)(Se,{}),(0,a.jsx)(Ie,{itemWidth:ae+16})]})},fixedHeader:!0,children:[(0,a.jsx)("div",{className:X.container,children:(0,a.jsx)(P.Z,{loading:M,children:ge.length?(0,a.jsx)(p(),{options:{gutter:16,horizontalOrder:!0,transitionDuration:0},onImagesLoaded:function(){return O()},enableResizableChildren:!0,children:ge.map(function(I,he){return(0,a.jsxs)("div",{className:X.item,style:{width:ae},onClick:function(){return de(he)},onDoubleClick:function(){return U(he)},children:[(0,a.jsx)("div",{className:X.itemImgWrap,style:{width:ae,height:pe?ae*3/4:"auto"},children:(0,a.jsx)(Te.D5,{isOldMode:!0,categories:r.filters.categories,data:I,wrapWidth:ae,wrapHeight:pe?ae*3/4:void 0,minHeight:ae*3/4,objectsFilter:z,displayOptionsResult:G})}),I.flag>0&&(0,a.jsx)(Ze.r,{fill:f.a5[I.flag],className:X.flagIcon}),G.showImgDesc&&(0,a.jsxs)("div",{className:X.label,children:[" ",I.caption||I.desc," "]}),pe&&I.selected?(0,a.jsx)("div",{className:X.itemSelectedMask}):null]},"".concat(I.id,"_").concat(he))})}):null})}),!M&&(0,a.jsx)(Q.ZJ,{current:d.page,size:d.pageSize,total:r.total,onPageChange:ce,onPageSizeChange:ee}),(0,a.jsx)(Te.j5,{isOldMode:!0,visible:d.previewIndex>=0&&!n,categories:r.filters.categories,list:ge,current:d.previewIndex,onCancel:k,onNext:A()(j()().mark(function I(){return j()().wrap(function(Y){for(;;)switch(Y.prev=Y.next){case 0:d.previewIndex0&&C(d.previewIndex-1);case 1:case"end":return Y.stop()}},I)})),objectsFilter:z,displayOptionsResult:G}),r.screenLoading?(0,a.jsx)("div",{className:X.pageSpin,children:(0,a.jsx)(i.Z,{spinning:!0,tip:r.screenLoading})}):null]})},Be=Ae},4394:function(se,Z,e){e.d(Z,{r:function(){return W}});var R=e(58757),j=Object.defineProperty,N=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,o=(i,s,p)=>s in i?j(i,s,{enumerable:!0,configurable:!0,writable:!0,value:p}):i[s]=p,V=(i,s)=>{for(var p in s||(s={}))A.call(s,p)&&o(i,p,s[p]);if(N)for(var p of N(s))u.call(s,p)&&o(i,p,s[p]);return i};const W=i=>R.createElement("svg",V({viewBox:"0 0 16 16",fill:"#52C41A",xmlns:"http://www.w3.org/2000/svg"},i),R.createElement("path",{d:"M12.633 4.84 3.838 1.05A.599.599 0 0 0 3 1.602v12.793a.602.602 0 1 0 1.204 0v-4l8.475-4.47a.601.601 0 0 0-.046-1.086Z"}));var P="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9IiM1MkM0MUEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjYzMyA0Ljg0IDMuODM4IDEuMDVBLjU5OS41OTkgMCAwIDAgMyAxLjYwMnYxMi43OTNhLjYwMi42MDIgMCAxIDAgMS4yMDQgMHYtNGw4LjQ3NS00LjQ3YS42MDEuNjAxIDAgMCAwLS4wNDYtMS4wODZaIi8+PC9zdmc+"}}]); diff --git a/deepdataspace/server/static/p__Lab__FlagTool__index.5a95f054.async.js b/deepdataspace/server/static/p__Lab__FlagTool__index.05b9bfe4.async.js similarity index 99% rename from deepdataspace/server/static/p__Lab__FlagTool__index.5a95f054.async.js rename to deepdataspace/server/static/p__Lab__FlagTool__index.05b9bfe4.async.js index c6bfa3c..d81c967 100644 --- a/deepdataspace/server/static/p__Lab__FlagTool__index.5a95f054.async.js +++ b/deepdataspace/server/static/p__Lab__FlagTool__index.05b9bfe4.async.js @@ -1 +1 @@ -"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[397],{51204:function(q,M,e){e.d(M,{Z:function(){return I}});var W=e(58757),m=e(59504),j=e(53357),P={wrapper:"wrapper___FtwXk"},g=e(35667),o=function(y){var l=(0,j.bU)(),t=l.localeText,c=y.categoryId,n=y.categories,h=y.onCategoryChange,s=(0,W.useMemo)(function(){return n.map(function(N){return{label:N.name,value:N.id}})},[n]);return(0,g.jsxs)("div",{className:P.wrapper,children:[t("dataset.detail.category"),":",(0,g.jsx)(m.Z,{showSearch:!0,style:{width:"160px",marginLeft:"10px"},placeholder:"Select a category",options:s,optionFilterProp:"label",value:c,onChange:h,getPopupContainer:function(){return document.getElementById("filterWrap")}})]})},I=o},85205:function(q,M,e){e.d(M,{Z:function(){return n}});var W=e(58757),m=e(10852),j=e(38904),P=e(57414),g={dropBtn:"dropBtn___SYvIY",displayPanel:"displayPanel___JkzSB",objectTypeOption:"objectTypeOption___O6sJL",typeTitle:"typeTitle___l97pr",displayOptions:"displayOptions___NQVYA"},o=e(87615),I=e(87608),Z=e.n(I),y=e(53357),l=e(76180),t=e(35667),c=function(s){var N=(0,y.bU)(),u=N.localeText,z=s.annotationTypes,L=s.disableChangeType,b=s.displayAnnotationType,A=s.displayOptions,a=s.displayOptionsValue,E=s.onDisplayAnnotationTypeChange,O=s.onDisplayOptionsChange;return(0,t.jsx)(o.Z,{className:g.dropBtn,customOverlay:(0,t.jsxs)("div",{className:Z()(g.displayPanel),children:[z.length>0&&(0,t.jsxs)("div",{className:g.objectTypeOption,children:[(0,t.jsxs)("span",{className:g.typeTitle,children:[u("dataset.detail.displayType"),":"]}),(0,t.jsx)(m.ZP.Group,{disabled:L,onChange:function(J){return E(J.target.value)},value:b,children:z.map(function(x){return(0,t.jsx)(m.ZP,{value:x,children:x},x)})})]}),(0,t.jsx)(j.Z.Group,{className:g.displayOptions,onChange:O,value:a,children:(0,t.jsx)(P.Z,{direction:"vertical",children:A.map(function(x){return(0,t.jsx)(j.Z,{value:x,children:u(l.Ss[x])},x)})})})]}),children:u("dataset.detail.displayOptions")})},n=c},87615:function(q,M,e){e.d(M,{Z:function(){return c}});var W=e(58757),m=e(38904),j=e(10852),P=e(73267),g=e(57414),o=e(12562),I=e(10130),Z=e(53357),y={dropdownSelector:"dropdownSelector___gvMFq",dropdownWrap:"dropdownWrap___WWYlz",dropdownBox:"dropdownBox___lpUVf"},l=e(35667),t=function(h){var s=h.data,N=h.multiple,u=h.type,z=u===void 0?"primary":u,L=h.ghost,b=L===void 0?!0:L,A=h.value,a=h.filterOptionValue,E=h.filterOptionName,O=h.onChange,x=h.className,J=h.children,K=h.customOverlay,Q=N?m.Z:j.ZP,_=function(S){O&&O(N?S:S.target.value)};return(0,l.jsx)(P.Z,{overlayClassName:y.dropdownSelector,trigger:["click"],dropdownRender:function(){return(0,l.jsx)("div",{className:y.dropdownWrap,children:K||(0,l.jsx)(Q.Group,{className:y.dropdownBox,onChange:_,value:A,children:(0,l.jsx)(g.Z,{direction:"vertical",children:s==null?void 0:s.map(function(S,U){var X=a?a(S):S,B=E?E(S):S;return(0,l.jsx)(Q,{value:X,children:(0,Z._w)(B)},U)})})})})},children:(0,l.jsxs)(o.ZP,{className:x,type:z,ghost:b,children:[J,(0,l.jsx)(I.Z,{})]})})},c=t},77589:function(q,M,e){e.d(M,{Z:function(){return s}});var W=e(58757),m=e(38904),j=e(57414),P=e(94706),g=e(10852),o={labelsPanel:"labelsPanel___nCoUr",labels:"labels___f2KO4",labelTitle:"labelTitle___C12Si",optionRow:"optionRow___X46cn",checkbox:"checkbox___Z6wLJ",slider:"slider___GUIhq",lineStyle:"lineStyle___Kmd9H",actionBtns:"actionBtns___JfDVN",modes:"modes___HaJVD"},I=e(87615),Z=e(87608),y=e.n(Z),l=e(76180),t=e(74595),c=e(53357),n=e(35667),h=function(u){var z=(0,c.bU)(),L=z.localeText,b=u.showMatting,A=u.showKeyPoints,a=u.isTiledDiff,E=u.labels,O=u.selectedLabelIds,x=u.diffMode,J=u.disableChangeDiffMode,K=u.onLabelsChange,Q=u.onLabelConfidenceChange,_=u.onLabelsDiffModeChange;return(0,n.jsx)(I.Z,{customOverlay:(0,n.jsxs)("div",{className:y()(o.labelsPanel),id:"labelsPanel",children:[(0,n.jsxs)("div",{className:o.labels,children:[(0,n.jsxs)("div",{className:o.labelTitle,children:[(0,n.jsx)("div",{style:{width:"240px",paddingLeft:"24px"},children:L("dataset.detail.labelSetsName")}),!b&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{width:"132px"},children:L("dataset.detail.confidence")}),(0,n.jsx)("div",{style:{width:"100px",marginLeft:"40px"},children:L("dataset.detail.style")})]})]}),(0,n.jsx)(m.Z.Group,{onChange:K,value:O,className:o.options,children:(0,n.jsx)(j.Z,{direction:"vertical",children:E.map(function(p,S){var U=(0,t.iE)(p.id,O,a),X=U.strokeDash,B=U.lineWidth,F=U.colorAplha;return(0,n.jsxs)("div",{className:o.optionRow,children:[(0,n.jsx)(m.Z,{value:p.id,className:o.checkbox,disabled:!O.includes(p.id)&&O.length>=l.JQ.length,children:p.name}),!b&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(P.Z,{tooltip:{open:!0,prefixCls:"slider-tooltip",getPopupContainer:function(){return document.getElementById("labelsPanel")}},className:o.slider,range:!0,min:0,max:1,value:p.confidenceRange,step:.01,onChange:function(se){return Q(S,se)},disabled:p.source!==l.$j.pred}),(0,n.jsx)("div",{style:{width:"100px",marginLeft:"40px"},children:O.includes(p.id)&&(0,n.jsxs)("svg",{className:o.lineStyle,children:[(0,n.jsx)("line",{x1:5,y1:5,x2:70,y2:5,strokeDasharray:X.join(","),strokeWidth:"".concat(B,"pt")}),A&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("circle",{cx:5,cy:5,r:3,stroke:"black",strokeWidth:1,fill:"rgba(133, 208, 252, ".concat(F,")")}),(0,n.jsx)("circle",{cx:70,cy:5,r:3,stroke:"black",strokeWidth:1,fill:"rgba(133, 208, 252, ".concat(F,")")})]})]})})]})]},p.id)})})})]}),!b&&!J&&(0,n.jsx)("div",{className:o.modes,children:(0,n.jsx)(g.ZP.Group,{onChange:function(S){return _(S.target.value)},value:x,children:l.Wp.map(function(p){return(0,n.jsx)(g.ZP,{value:p,children:L(p)},p)})})})]}),children:L("dataset.detail.labelSets")})},s=h},14481:function(q,M,e){e.r(M),e.d(M,{default:function(){return je}});var W=e(24454),m=e.n(W),j=e(56592),P=e.n(j),g=e(58757),o=e(97375),I=e(28506),Z=e(61845),y=e(37617),l=e(79233),t=e(6233),c=e.n(t),n=e(12562),h=e(92183),s=e(76180),N=e(23707),u=e(51204),z=e(77589),L=e(85205),b=e(51830),A={fixMenu:"fixMenu___3BTI4",filter:"filter___f53Ll",rightFilters:"rightFilters___PcqUj",backBtn:"backBtn___zqjXV",dropBtn:"dropBtn___f3XQO"},a=e(35667),E=function(){var r=(0,o.useModel)("dataset.common",function(H){return{isTiledDiff:H.isTiledDiff,cloumnCount:H.pageState.cloumnCount,filters:H.pageData.filters,filterValues:H.pageState.filterValues,comparisons:H.pageState.comparisons}}),i=r.filters,f=r.filterValues,C=r.comparisons,G=r.isTiledDiff,w=r.cloumnCount,T=(0,o.useModel)("dataset.filters"),Y=T.onCategoryChange,ee=T.onDisplayOptionsChange,$=T.onDisplayAnnotationTypeChange,ae=T.onLabelsChange,d=T.onLabelConfidenceChange,v=T.onLabelsDiffModeChange,re=T.onColumnCountChange,de=i.labels,ce=f.selectedLabelIds,ge=f.displayAnnotationType===s.JJ.Matting,ue=f.displayAnnotationType===s.JJ.KeyPoints;return(0,a.jsxs)("div",{className:A.fixMenu,id:"filterWrap",children:[(0,a.jsxs)("div",{className:A.filter,children:[(0,a.jsx)(n.ZP,{icon:(0,a.jsx)(h.Z,{}),type:"text",className:A.backBtn,onClick:function(){return(0,N.yS)("/dataset")}}),(0,a.jsx)(u.Z,{categoryId:f.categoryId,categories:i.categories,onCategoryChange:Y})]}),(0,a.jsxs)("div",{className:A.rightFilters,children:[(0,a.jsx)(z.Z,{showMatting:ge,showKeyPoints:ue,isTiledDiff:G,labels:de,selectedLabelIds:ce,diffMode:s.uP.Overlay,disableChangeDiffMode:!0,onLabelsChange:ae,onLabelConfidenceChange:d,onLabelsDiffModeChange:v}),(0,a.jsx)(L.Z,{annotationTypes:i.annotationTypes,disableChangeType:!!C,displayAnnotationType:f.displayAnnotationType,displayOptions:i.displayOptions,displayOptionsValue:f.displayOptions,onDisplayAnnotationTypeChange:$,onDisplayOptionsChange:ee}),!G&&(0,a.jsx)(b.ii,{cloumnCount:w,onColumnCountChange:re})]})]})},O=E,x=e(38904),J=e(74820),K=e(60698),Q={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 01755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 01512.1 856a342.24 342.24 0 01-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 00-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 00-8-8.2z"}}]},name:"sync",theme:"outlined"},_=Q,p=e(17202),S=function(r,i){return g.createElement(p.Z,(0,K.Z)({},r,{ref:i,icon:_}))},U=g.forwardRef(S),X=e(4394),B=e(53357),F={toolsBar:"toolsBar___BaJ18",selector:"selector___oykI4",antiBtn:"antiBtn___BMNv_",flagTip:"flagTip___jQeUr",flag:"flag___AuDg7",flagBtn:"flagBtn___kI5rw",rightContent:"rightContent___J7I4T",lineSplit:"lineSplit___cRXnA"},oe=e(87615),se=function(){var r,i=(0,o.useModel)("dataset.common",function(d){var v;return{pageSize:d.pageState.pageSize,flagStatus:(v=d.pageState.flagTools)===null||v===void 0?void 0:v.flagStatus,flagTools:d.pageState.flagTools&&d.pageData.flagTools}}),f=i.flagTools,C=i.flagStatus,G=i.pageSize,w=(0,o.useModel)("dataset.flag"),T=w.onChangeFlagStatus,Y=w.changeSelectAll,ee=w.antiSelect,$=w.saveFlag,ae=w.updateOrder;return f?(0,a.jsxs)("div",{className:F.toolsBar,children:[(0,a.jsxs)("div",{className:F.selector,children:[(0,a.jsx)(x.Z,{indeterminate:f.count>0&&f.count!==G,checked:(f==null?void 0:f.count)===G,onChange:Y,children:f.count===0?(0,a.jsx)(B.Og,{id:"lab.toolsBar.selectAll"}):(0,a.jsx)(B.Og,{id:"lab.toolsBar.selectSome",values:{num:f.count}})}),(0,a.jsx)(n.ZP,{onClick:function(){return ee()},className:F.antiBtn,children:(0,a.jsx)(B.Og,{id:"lab.toolsBar.selectInvert"})}),(0,a.jsxs)(oe.Z,{data:s.j3,value:C,filterOptionName:function(v){return v.name},filterOptionValue:function(v){return v.value},onChange:function(v){return T(v)},ghost:!1,type:"default",className:F.antiBtn,children:[(0,a.jsx)(B.Og,{id:"lab.toolsBar.filter"})," :"," ",(r=s.j3.find(function(d){return d.value===C}))===null||r===void 0?void 0:r.name]}),(0,a.jsxs)("div",{className:F.flagTip,children:[(0,a.jsx)(B.Og,{id:"lab.toolsBar.saveAs"}),"\uFF1A"]}),s.YC.map(function(d){return(0,a.jsx)(J.Z,{placement:"bottom",title:d.tip,children:(0,a.jsx)(n.ZP,{ghost:!0,onClick:function(){return $(d.value)},className:F.flagBtn,style:{borderColor:s.a5[d.value],opacity:f.count<=0?.5:1},icon:(0,a.jsx)(X.r,{fill:s.a5[d.value]})})},d.value)})]}),(0,a.jsx)("div",{className:F.rightContent,children:(0,a.jsxs)(n.ZP,{onClick:ae,children:[(0,a.jsx)(U,{}),(0,a.jsx)(B.Og,{id:"lab.toolsBar.updateOrder"})]})})]}):null},me=se,he=e(65104),ye=e(74595),R={page:"page___gO_hp",container:"container___ZoYU1",item:"item___gLaMX",itemImgWrap:"itemImgWrap___I92CG",flagIcon:"flagIcon___snhaL",label:"label___m8WJS",itemSelectedMask:"itemSelectedMask___oYwMk",pagination:"pagination___Z13Xp",editor:"editor___ZxT8b",pageSpin:"pageSpin___kIm_a"},xe=e(95073),Ce=function(){var r=(0,o.useModel)("dataset.common"),i=r.pageState,f=r.onInitPageState,C=r.pageData,G=r.loading,w=r.displayLabelIds,T=r.isTiledDiff,Y=r.displayOptionsResult,ee=r.onPageContentLoaded,$=r.onPreviewIndexChange,ae=r.exitPreview,d=r.displayObjectsFilter,v=(0,o.useModel)("Lab.FlagTool.model"),re=v.onPageDidMount,de=v.onPageWillUnmount,ce=v.clickItem,ge=v.doubleClickItem,ue=v.onPageChange,H=v.onPageSizeChange,Oe=i.cloumnCount,Se=i.isSingleAnnotation,Te=i.filterValues,ve=i.flagTools;(0,I._)({onPageDidMount:re,onPageWillUnmount:de,onInitPageState:f,pageState:i});var le=(0,xe.Z)(function(){return document.querySelector(".ant-pro-page-container")}),fe=le!=null&&le.width?le.width-80:0,ne=(0,g.useMemo)(function(){return T?(0,ye.JC)(C.imgList,w,Te.displayAnnotationType):C.imgList},[T,C.imgList,w]),pe=T?ne.length/(C.imgList.length||1):Oe,k=fe?(fe-16*(pe-1))/(pe||1):0;return(0,a.jsxs)(Z._z,{ghost:!0,className:R.page,pageHeaderRender:function(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(O,{}),(0,a.jsx)(me,{})]})},fixedHeader:!0,children:[(0,a.jsx)("div",{className:R.container,children:(0,a.jsx)(y.Z,{loading:G,children:ne.length?(0,a.jsx)(c(),{options:{gutter:16,horizontalOrder:!0,transitionDuration:0},onImagesLoaded:function(){return ee()},children:ne.map(function(D,te){return(0,a.jsxs)("div",{className:R.item,style:{width:k},onClick:function(){return ce(te)},onDoubleClick:function(){return ge(te)},children:[(0,a.jsx)("div",{className:R.itemImgWrap,style:{width:k,height:ve?k*3/4:"auto"},children:(0,a.jsx)(he.D5,{isOldMode:!0,categories:C.filters.categories,data:D,wrapWidth:k,wrapHeight:ve?k*3/4:void 0,minHeight:k*3/4,objectsFilter:d,displayOptionsResult:Y})}),D.flag>0&&(0,a.jsx)(X.r,{fill:s.a5[D.flag],className:R.flagIcon}),Y.showImgDesc&&(0,a.jsxs)("div",{className:R.label,children:[" ",D.caption||D.desc," "]}),ve&&D.selected?(0,a.jsx)("div",{className:R.itemSelectedMask}):null]},"".concat(D.id,"_").concat(te))})}):null})}),!G&&(0,a.jsx)(b.ZJ,{current:i.page,size:i.pageSize,total:C.total,onPageChange:ue,onPageSizeChange:H}),(0,a.jsx)(he.j5,{isOldMode:!0,visible:i.previewIndex>=0&&!Se,categories:C.filters.categories,list:ne,current:i.previewIndex,onCancel:ae,onNext:P()(m()().mark(function D(){return m()().wrap(function(V){for(;;)switch(V.prev=V.next){case 0:i.previewIndex0&&$(i.previewIndex-1);case 1:case"end":return V.stop()}},D)})),objectsFilter:d,displayOptionsResult:Y}),C.screenLoading?(0,a.jsx)("div",{className:R.pageSpin,children:(0,a.jsx)(l.Z,{spinning:!0,tip:C.screenLoading})}):null]})},je=Ce},4394:function(q,M,e){e.d(M,{r:function(){return Z}});var W=e(58757),m=Object.defineProperty,j=Object.getOwnPropertySymbols,P=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable,o=(l,t,c)=>t in l?m(l,t,{enumerable:!0,configurable:!0,writable:!0,value:c}):l[t]=c,I=(l,t)=>{for(var c in t||(t={}))P.call(t,c)&&o(l,c,t[c]);if(j)for(var c of j(t))g.call(t,c)&&o(l,c,t[c]);return l};const Z=l=>W.createElement("svg",I({viewBox:"0 0 16 16",fill:"#52C41A",xmlns:"http://www.w3.org/2000/svg"},l),W.createElement("path",{d:"M12.633 4.84 3.838 1.05A.599.599 0 0 0 3 1.602v12.793a.602.602 0 1 0 1.204 0v-4l8.475-4.47a.601.601 0 0 0-.046-1.086Z"}));var y="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9IiM1MkM0MUEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjYzMyA0Ljg0IDMuODM4IDEuMDVBLjU5OS41OTkgMCAwIDAgMyAxLjYwMnYxMi43OTNhLjYwMi42MDIgMCAxIDAgMS4yMDQgMHYtNGw4LjQ3NS00LjQ3YS42MDEuNjAxIDAgMCAwLS4wNDYtMS4wODZaIi8+PC9zdmc+"}}]); +"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[397],{51204:function(q,M,e){e.d(M,{Z:function(){return I}});var W=e(58757),m=e(59504),j=e(53357),P={wrapper:"wrapper___FtwXk"},g=e(35667),o=function(y){var l=(0,j.bU)(),t=l.localeText,c=y.categoryId,n=y.categories,h=y.onCategoryChange,s=(0,W.useMemo)(function(){return n.map(function(N){return{label:N.name,value:N.id}})},[n]);return(0,g.jsxs)("div",{className:P.wrapper,children:[t("dataset.detail.category"),":",(0,g.jsx)(m.Z,{showSearch:!0,style:{width:"160px",marginLeft:"10px"},placeholder:"Select a category",options:s,optionFilterProp:"label",value:c,onChange:h,getPopupContainer:function(){return document.getElementById("filterWrap")}})]})},I=o},85205:function(q,M,e){e.d(M,{Z:function(){return n}});var W=e(58757),m=e(10852),j=e(38904),P=e(57414),g={dropBtn:"dropBtn___SYvIY",displayPanel:"displayPanel___JkzSB",objectTypeOption:"objectTypeOption___O6sJL",typeTitle:"typeTitle___l97pr",displayOptions:"displayOptions___NQVYA"},o=e(87615),I=e(87608),Z=e.n(I),y=e(53357),l=e(76180),t=e(35667),c=function(s){var N=(0,y.bU)(),u=N.localeText,z=s.annotationTypes,L=s.disableChangeType,b=s.displayAnnotationType,A=s.displayOptions,a=s.displayOptionsValue,E=s.onDisplayAnnotationTypeChange,O=s.onDisplayOptionsChange;return(0,t.jsx)(o.Z,{className:g.dropBtn,customOverlay:(0,t.jsxs)("div",{className:Z()(g.displayPanel),children:[z.length>0&&(0,t.jsxs)("div",{className:g.objectTypeOption,children:[(0,t.jsxs)("span",{className:g.typeTitle,children:[u("dataset.detail.displayType"),":"]}),(0,t.jsx)(m.ZP.Group,{disabled:L,onChange:function(J){return E(J.target.value)},value:b,children:z.map(function(x){return(0,t.jsx)(m.ZP,{value:x,children:x},x)})})]}),(0,t.jsx)(j.Z.Group,{className:g.displayOptions,onChange:O,value:a,children:(0,t.jsx)(P.Z,{direction:"vertical",children:A.map(function(x){return(0,t.jsx)(j.Z,{value:x,children:u(l.Ss[x])},x)})})})]}),children:u("dataset.detail.displayOptions")})},n=c},87615:function(q,M,e){e.d(M,{Z:function(){return c}});var W=e(58757),m=e(38904),j=e(10852),P=e(73267),g=e(57414),o=e(12562),I=e(10130),Z=e(53357),y={dropdownSelector:"dropdownSelector___gvMFq",dropdownWrap:"dropdownWrap___WWYlz",dropdownBox:"dropdownBox___lpUVf"},l=e(35667),t=function(h){var s=h.data,N=h.multiple,u=h.type,z=u===void 0?"primary":u,L=h.ghost,b=L===void 0?!0:L,A=h.value,a=h.filterOptionValue,E=h.filterOptionName,O=h.onChange,x=h.className,J=h.children,K=h.customOverlay,Q=N?m.Z:j.ZP,_=function(S){O&&O(N?S:S.target.value)};return(0,l.jsx)(P.Z,{overlayClassName:y.dropdownSelector,trigger:["click"],dropdownRender:function(){return(0,l.jsx)("div",{className:y.dropdownWrap,children:K||(0,l.jsx)(Q.Group,{className:y.dropdownBox,onChange:_,value:A,children:(0,l.jsx)(g.Z,{direction:"vertical",children:s==null?void 0:s.map(function(S,U){var X=a?a(S):S,B=E?E(S):S;return(0,l.jsx)(Q,{value:X,children:(0,Z._w)(B)},U)})})})})},children:(0,l.jsxs)(o.ZP,{className:x,type:z,ghost:b,children:[J,(0,l.jsx)(I.Z,{})]})})},c=t},77589:function(q,M,e){e.d(M,{Z:function(){return s}});var W=e(58757),m=e(38904),j=e(57414),P=e(94706),g=e(10852),o={labelsPanel:"labelsPanel___nCoUr",labels:"labels___f2KO4",labelTitle:"labelTitle___C12Si",optionRow:"optionRow___X46cn",checkbox:"checkbox___Z6wLJ",slider:"slider___GUIhq",lineStyle:"lineStyle___Kmd9H",actionBtns:"actionBtns___JfDVN",modes:"modes___HaJVD"},I=e(87615),Z=e(87608),y=e.n(Z),l=e(76180),t=e(74595),c=e(53357),n=e(35667),h=function(u){var z=(0,c.bU)(),L=z.localeText,b=u.showMatting,A=u.showKeyPoints,a=u.isTiledDiff,E=u.labels,O=u.selectedLabelIds,x=u.diffMode,J=u.disableChangeDiffMode,K=u.onLabelsChange,Q=u.onLabelConfidenceChange,_=u.onLabelsDiffModeChange;return(0,n.jsx)(I.Z,{customOverlay:(0,n.jsxs)("div",{className:y()(o.labelsPanel),id:"labelsPanel",children:[(0,n.jsxs)("div",{className:o.labels,children:[(0,n.jsxs)("div",{className:o.labelTitle,children:[(0,n.jsx)("div",{style:{width:"240px",paddingLeft:"24px"},children:L("dataset.detail.labelSetsName")}),!b&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{width:"132px"},children:L("dataset.detail.confidence")}),(0,n.jsx)("div",{style:{width:"100px",marginLeft:"40px"},children:L("dataset.detail.style")})]})]}),(0,n.jsx)(m.Z.Group,{onChange:K,value:O,className:o.options,children:(0,n.jsx)(j.Z,{direction:"vertical",children:E.map(function(p,S){var U=(0,t.iE)(p.id,O,a),X=U.strokeDash,B=U.lineWidth,F=U.colorAplha;return(0,n.jsxs)("div",{className:o.optionRow,children:[(0,n.jsx)(m.Z,{value:p.id,className:o.checkbox,disabled:!O.includes(p.id)&&O.length>=l.JQ.length,children:p.name}),!b&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(P.Z,{tooltip:{open:!0,prefixCls:"slider-tooltip",getPopupContainer:function(){return document.getElementById("labelsPanel")}},className:o.slider,range:!0,min:0,max:1,value:p.confidenceRange,step:.01,onChange:function(se){return Q(S,se)},disabled:p.source!==l.$j.pred}),(0,n.jsx)("div",{style:{width:"100px",marginLeft:"40px"},children:O.includes(p.id)&&(0,n.jsxs)("svg",{className:o.lineStyle,children:[(0,n.jsx)("line",{x1:5,y1:5,x2:70,y2:5,strokeDasharray:X.join(","),strokeWidth:"".concat(B,"pt")}),A&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("circle",{cx:5,cy:5,r:3,stroke:"black",strokeWidth:1,fill:"rgba(133, 208, 252, ".concat(F,")")}),(0,n.jsx)("circle",{cx:70,cy:5,r:3,stroke:"black",strokeWidth:1,fill:"rgba(133, 208, 252, ".concat(F,")")})]})]})})]})]},p.id)})})})]}),!b&&!J&&(0,n.jsx)("div",{className:o.modes,children:(0,n.jsx)(g.ZP.Group,{onChange:function(S){return _(S.target.value)},value:x,children:l.Wp.map(function(p){return(0,n.jsx)(g.ZP,{value:p,children:L(p)},p)})})})]}),children:L("dataset.detail.labelSets")})},s=h},14481:function(q,M,e){e.r(M),e.d(M,{default:function(){return je}});var W=e(24454),m=e.n(W),j=e(56592),P=e.n(j),g=e(58757),o=e(97375),I=e(28506),Z=e(61845),y=e(37617),l=e(79233),t=e(6233),c=e.n(t),n=e(12562),h=e(92183),s=e(76180),N=e(23707),u=e(51204),z=e(77589),L=e(85205),b=e(51830),A={fixMenu:"fixMenu___3BTI4",filter:"filter___f53Ll",rightFilters:"rightFilters___PcqUj",backBtn:"backBtn___zqjXV",dropBtn:"dropBtn___f3XQO"},a=e(35667),E=function(){var r=(0,o.useModel)("dataset.common",function(H){return{isTiledDiff:H.isTiledDiff,cloumnCount:H.pageState.cloumnCount,filters:H.pageData.filters,filterValues:H.pageState.filterValues,comparisons:H.pageState.comparisons}}),i=r.filters,f=r.filterValues,C=r.comparisons,G=r.isTiledDiff,w=r.cloumnCount,T=(0,o.useModel)("dataset.filters"),Y=T.onCategoryChange,ee=T.onDisplayOptionsChange,$=T.onDisplayAnnotationTypeChange,ae=T.onLabelsChange,d=T.onLabelConfidenceChange,v=T.onLabelsDiffModeChange,re=T.onColumnCountChange,de=i.labels,ce=f.selectedLabelIds,ge=f.displayAnnotationType===s.JJ.Matting,ue=f.displayAnnotationType===s.JJ.KeyPoints;return(0,a.jsxs)("div",{className:A.fixMenu,id:"filterWrap",children:[(0,a.jsxs)("div",{className:A.filter,children:[(0,a.jsx)(n.ZP,{icon:(0,a.jsx)(h.Z,{}),type:"text",className:A.backBtn,onClick:function(){return(0,N.yS)("/dataset")}}),(0,a.jsx)(u.Z,{categoryId:f.categoryId,categories:i.categories,onCategoryChange:Y})]}),(0,a.jsxs)("div",{className:A.rightFilters,children:[(0,a.jsx)(z.Z,{showMatting:ge,showKeyPoints:ue,isTiledDiff:G,labels:de,selectedLabelIds:ce,diffMode:s.uP.Overlay,disableChangeDiffMode:!0,onLabelsChange:ae,onLabelConfidenceChange:d,onLabelsDiffModeChange:v}),(0,a.jsx)(L.Z,{annotationTypes:i.annotationTypes,disableChangeType:!!C,displayAnnotationType:f.displayAnnotationType,displayOptions:i.displayOptions,displayOptionsValue:f.displayOptions,onDisplayAnnotationTypeChange:$,onDisplayOptionsChange:ee}),!G&&(0,a.jsx)(b.ii,{cloumnCount:w,onColumnCountChange:re})]})]})},O=E,x=e(38904),J=e(74820),K=e(60698),Q={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 01755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 01512.1 856a342.24 342.24 0 01-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 00-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 00-8-8.2z"}}]},name:"sync",theme:"outlined"},_=Q,p=e(17202),S=function(r,i){return g.createElement(p.Z,(0,K.Z)({},r,{ref:i,icon:_}))},U=g.forwardRef(S),X=e(4394),B=e(53357),F={toolsBar:"toolsBar___BaJ18",selector:"selector___oykI4",antiBtn:"antiBtn___BMNv_",flagTip:"flagTip___jQeUr",flag:"flag___AuDg7",flagBtn:"flagBtn___kI5rw",rightContent:"rightContent___J7I4T",lineSplit:"lineSplit___cRXnA"},oe=e(87615),se=function(){var r,i=(0,o.useModel)("dataset.common",function(d){var v;return{pageSize:d.pageState.pageSize,flagStatus:(v=d.pageState.flagTools)===null||v===void 0?void 0:v.flagStatus,flagTools:d.pageState.flagTools&&d.pageData.flagTools}}),f=i.flagTools,C=i.flagStatus,G=i.pageSize,w=(0,o.useModel)("dataset.flag"),T=w.onChangeFlagStatus,Y=w.changeSelectAll,ee=w.antiSelect,$=w.saveFlag,ae=w.updateOrder;return f?(0,a.jsxs)("div",{className:F.toolsBar,children:[(0,a.jsxs)("div",{className:F.selector,children:[(0,a.jsx)(x.Z,{indeterminate:f.count>0&&f.count!==G,checked:(f==null?void 0:f.count)===G,onChange:Y,children:f.count===0?(0,a.jsx)(B.Og,{id:"lab.toolsBar.selectAll"}):(0,a.jsx)(B.Og,{id:"lab.toolsBar.selectSome",values:{num:f.count}})}),(0,a.jsx)(n.ZP,{onClick:function(){return ee()},className:F.antiBtn,children:(0,a.jsx)(B.Og,{id:"lab.toolsBar.selectInvert"})}),(0,a.jsxs)(oe.Z,{data:s.j3,value:C,filterOptionName:function(v){return v.name},filterOptionValue:function(v){return v.value},onChange:function(v){return T(v)},ghost:!1,type:"default",className:F.antiBtn,children:[(0,a.jsx)(B.Og,{id:"lab.toolsBar.filter"})," :"," ",(r=s.j3.find(function(d){return d.value===C}))===null||r===void 0?void 0:r.name]}),(0,a.jsxs)("div",{className:F.flagTip,children:[(0,a.jsx)(B.Og,{id:"lab.toolsBar.saveAs"}),"\uFF1A"]}),s.YC.map(function(d){return(0,a.jsx)(J.Z,{placement:"bottom",title:d.tip,children:(0,a.jsx)(n.ZP,{ghost:!0,onClick:function(){return $(d.value)},className:F.flagBtn,style:{borderColor:s.a5[d.value],opacity:f.count<=0?.5:1},icon:(0,a.jsx)(X.r,{fill:s.a5[d.value]})})},d.value)})]}),(0,a.jsx)("div",{className:F.rightContent,children:(0,a.jsxs)(n.ZP,{onClick:ae,children:[(0,a.jsx)(U,{}),(0,a.jsx)(B.Og,{id:"lab.toolsBar.updateOrder"})]})})]}):null},me=se,he=e(88662),ye=e(74595),R={page:"page___gO_hp",container:"container___ZoYU1",item:"item___gLaMX",itemImgWrap:"itemImgWrap___I92CG",flagIcon:"flagIcon___snhaL",label:"label___m8WJS",itemSelectedMask:"itemSelectedMask___oYwMk",pagination:"pagination___Z13Xp",editor:"editor___ZxT8b",pageSpin:"pageSpin___kIm_a"},xe=e(95073),Ce=function(){var r=(0,o.useModel)("dataset.common"),i=r.pageState,f=r.onInitPageState,C=r.pageData,G=r.loading,w=r.displayLabelIds,T=r.isTiledDiff,Y=r.displayOptionsResult,ee=r.onPageContentLoaded,$=r.onPreviewIndexChange,ae=r.exitPreview,d=r.displayObjectsFilter,v=(0,o.useModel)("Lab.FlagTool.model"),re=v.onPageDidMount,de=v.onPageWillUnmount,ce=v.clickItem,ge=v.doubleClickItem,ue=v.onPageChange,H=v.onPageSizeChange,Oe=i.cloumnCount,Se=i.isSingleAnnotation,Te=i.filterValues,ve=i.flagTools;(0,I._)({onPageDidMount:re,onPageWillUnmount:de,onInitPageState:f,pageState:i});var le=(0,xe.Z)(function(){return document.querySelector(".ant-pro-page-container")}),fe=le!=null&&le.width?le.width-80:0,ne=(0,g.useMemo)(function(){return T?(0,ye.JC)(C.imgList,w,Te.displayAnnotationType):C.imgList},[T,C.imgList,w]),pe=T?ne.length/(C.imgList.length||1):Oe,k=fe?(fe-16*(pe-1))/(pe||1):0;return(0,a.jsxs)(Z._z,{ghost:!0,className:R.page,pageHeaderRender:function(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(O,{}),(0,a.jsx)(me,{})]})},fixedHeader:!0,children:[(0,a.jsx)("div",{className:R.container,children:(0,a.jsx)(y.Z,{loading:G,children:ne.length?(0,a.jsx)(c(),{options:{gutter:16,horizontalOrder:!0,transitionDuration:0},onImagesLoaded:function(){return ee()},children:ne.map(function(D,te){return(0,a.jsxs)("div",{className:R.item,style:{width:k},onClick:function(){return ce(te)},onDoubleClick:function(){return ge(te)},children:[(0,a.jsx)("div",{className:R.itemImgWrap,style:{width:k,height:ve?k*3/4:"auto"},children:(0,a.jsx)(he.D5,{isOldMode:!0,categories:C.filters.categories,data:D,wrapWidth:k,wrapHeight:ve?k*3/4:void 0,minHeight:k*3/4,objectsFilter:d,displayOptionsResult:Y})}),D.flag>0&&(0,a.jsx)(X.r,{fill:s.a5[D.flag],className:R.flagIcon}),Y.showImgDesc&&(0,a.jsxs)("div",{className:R.label,children:[" ",D.caption||D.desc," "]}),ve&&D.selected?(0,a.jsx)("div",{className:R.itemSelectedMask}):null]},"".concat(D.id,"_").concat(te))})}):null})}),!G&&(0,a.jsx)(b.ZJ,{current:i.page,size:i.pageSize,total:C.total,onPageChange:ue,onPageSizeChange:H}),(0,a.jsx)(he.j5,{isOldMode:!0,visible:i.previewIndex>=0&&!Se,categories:C.filters.categories,list:ne,current:i.previewIndex,onCancel:ae,onNext:P()(m()().mark(function D(){return m()().wrap(function(V){for(;;)switch(V.prev=V.next){case 0:i.previewIndex0&&$(i.previewIndex-1);case 1:case"end":return V.stop()}},D)})),objectsFilter:d,displayOptionsResult:Y}),C.screenLoading?(0,a.jsx)("div",{className:R.pageSpin,children:(0,a.jsx)(l.Z,{spinning:!0,tip:C.screenLoading})}):null]})},je=Ce},4394:function(q,M,e){e.d(M,{r:function(){return Z}});var W=e(58757),m=Object.defineProperty,j=Object.getOwnPropertySymbols,P=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable,o=(l,t,c)=>t in l?m(l,t,{enumerable:!0,configurable:!0,writable:!0,value:c}):l[t]=c,I=(l,t)=>{for(var c in t||(t={}))P.call(t,c)&&o(l,c,t[c]);if(j)for(var c of j(t))g.call(t,c)&&o(l,c,t[c]);return l};const Z=l=>W.createElement("svg",I({viewBox:"0 0 16 16",fill:"#52C41A",xmlns:"http://www.w3.org/2000/svg"},l),W.createElement("path",{d:"M12.633 4.84 3.838 1.05A.599.599 0 0 0 3 1.602v12.793a.602.602 0 1 0 1.204 0v-4l8.475-4.47a.601.601 0 0 0-.046-1.086Z"}));var y="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9IiM1MkM0MUEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjYzMyA0Ljg0IDMuODM4IDEuMDVBLjU5OS41OTkgMCAwIDAgMyAxLjYwMnYxMi43OTNhLjYwMi42MDIgMCAxIDAgMS4yMDQgMHYtNGw4LjQ3NS00LjQ3YS42MDEuNjAxIDAgMCAwLS4wNDYtMS4wODZaIi8+PC9zdmc+"}}]); diff --git a/deepdataspace/server/static/p__Project__Workspace__index.065c0c78.async.js b/deepdataspace/server/static/p__Project__Workspace__index.afc69f7b.async.js similarity index 98% rename from deepdataspace/server/static/p__Project__Workspace__index.065c0c78.async.js rename to deepdataspace/server/static/p__Project__Workspace__index.afc69f7b.async.js index e49d370..dede10f 100644 --- a/deepdataspace/server/static/p__Project__Workspace__index.065c0c78.async.js +++ b/deepdataspace/server/static/p__Project__Workspace__index.afc69f7b.async.js @@ -1 +1 @@ -"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[914],{87615:function(ae,S,e){e.d(S,{Z:function(){return T}});var h=e(58757),R=e(38904),w=e(10852),b=e(73267),d=e(57414),E=e(12562),O=e(10130),L=e(53357),j={dropdownSelector:"dropdownSelector___gvMFq",dropdownWrap:"dropdownWrap___WWYlz",dropdownBox:"dropdownBox___lpUVf"},o=e(35667),D=function(i){var s=i.data,y=i.multiple,N=i.type,m=N===void 0?"primary":N,C=i.ghost,V=C===void 0?!0:C,$=i.value,t=i.filterOptionValue,k=i.filterOptionName,f=i.onChange,G=i.className,x=i.children,P=i.customOverlay,u=y?R.Z:w.ZP,a=function(n){f&&f(y?n:n.target.value)};return(0,o.jsx)(b.Z,{overlayClassName:j.dropdownSelector,trigger:["click"],dropdownRender:function(){return(0,o.jsx)("div",{className:j.dropdownWrap,children:P||(0,o.jsx)(u.Group,{className:j.dropdownBox,onChange:a,value:$,children:(0,o.jsx)(d.Z,{direction:"vertical",children:s==null?void 0:s.map(function(n,B){var H=t?t(n):n,z=k?k(n):n;return(0,o.jsx)(u,{value:H,children:(0,L._w)(z)},B)})})})})},children:(0,o.jsxs)(E.ZP,{className:G,type:m,ghost:V,children:[x,(0,o.jsx)(O.Z,{})]})})},T=D},61470:function(ae,S,e){e.r(S),e.d(S,{default:function(){return f}});var h=e(58757),R=e(97375),w=e(28506),b=e(61845),d=e(12562),E=e(16951),O=e(37617),L=e(79233),j=e(18695),o={page:"page___DZyiW",header:"header___bRKb4",backBtn:"backBtn___yET2T",tabs:"tabs___weXzX",btn:"btn____fESN",line:"line___k1GQQ",item:"item___Jv55m",itemImgWrap:"itemImgWrap___bWdL3",flagIcon:"flagIcon___PULYz",label:"label___LGG_W",itemSelectedMask:"itemSelectedMask___mU2PX",topSpin:"topSpin___eLVKZ",bottomSpin:"bottomSpin___MuKRE",pagination:"pagination___WlY5J",pageSpin:"pageSpin___BAc4e",editor:"editor___YUj9q"},D=e(39378),T=e(87615),U=e(93059),i=e(65104),s=e(35459),y=e(92183),N=e(22283),m=e(1239),C=e(95073),V=e(23707),$=e(53357),t=e(35667),k=function(){var x,P=(0,R.useModel)("Project.auth"),u=P.checkPermission,a=(0,R.useModel)("Project.workspace"),r=a.pageData,n=a.pageState,B=a.loading,H=a.loadPageData,z=a.onInitPageState,oe=a.projectId,l=a.curRole,p=a.userRoles,ne=a.tabItems,Y=a.labelImages,F=a.isEditorVisible,re=a.onStatusTabChange,ie=a.onRoleChange,le=a.clickItem,se=a.loadMore,de=a.onExitEditor,ce=a.onNextImage,ue=a.onPrevImage,ve=a.onLabelSave,ge=a.onReviewAccept,me=a.onReviewReject,pe=a.onEnterEdit,X=a.onStartLabel,J=a.onStartRework,Q=a.onStartReview;(0,w._)({onInitPageState:z,pageState:n});var he=(0,$.bU)(),v=he.localeText,je=(0,w.w)(),fe=je.height,Z=(0,C.Z)(function(){return document.querySelector(".ant-pro-page-container")}),q=Z!=null&&Z.width?Z.width-80:0,xe=h.useRef(null),I=5,M=q?(q-16*(I-1))/(I||1):0,A=M*3/4,_=fe-46,Se=function(c){Math.floor(c.currentTarget.scrollHeight-c.currentTarget.scrollTop)===Math.floor(_)&&se()},K=(0,h.useMemo)(function(){return(0,D.chunk)(Y,I).map(function(W,c){return{index:c,lineImgs:W}})},[r.list]),Re=(0,h.useMemo)(function(){return r.editorMode!==i.je.View||n.taskStatus!==s.gZ.Working?[]:u(p,m.Oc.StartLabel)?n.status===s.j$.Labeling?[(0,t.jsx)(d.ZP,{type:"primary",onClick:X,children:v("proj.workspace.eTask.startLabel")},"label")]:n.status===s.j$.Reviewing?[(0,t.jsx)(d.ZP,{type:"primary",onClick:pe,children:v("proj.workspace.eTask.edit")},"edit")]:n.status===s.j$.Rejected?[(0,t.jsx)(d.ZP,{type:"primary",onClick:J,children:v("proj.workspace.eTask.startRework")},"rework")]:[]:u(p,m.Oc.StartReview)&&n.status===s.j$.Reviewing?[(0,t.jsx)(d.ZP,{type:"primary",onClick:Q,children:v("proj.workspace.eTask.startReview")},"review")]:[]},[n.status,n.taskStatus,r.editorMode,p]);return(0,t.jsxs)(b._z,{ghost:!0,className:o.page,fixedHeader:!0,pageHeaderRender:function(){return(0,t.jsxs)("div",{className:o.header,children:[(0,t.jsx)(d.ZP,{icon:(0,t.jsx)(y.Z,{}),type:"text",className:o.backBtn,onClick:function(){return(0,V.yS)("/project/".concat(oe))}}),(0,t.jsx)(E.Z,{className:o.tabs,activeKey:n.status,onChange:re,items:ne,tabBarExtraContent:(0,t.jsxs)("div",{children:[(0,t.jsx)(d.ZP,{type:"text",className:o.btn,icon:(0,t.jsx)(N.Z,{}),onClick:function(){return H()}}),l&&(l==null?void 0:l.labelNumWaiting)>0&&n.taskStatus===s.gZ.Working&&u(p,m.Oc.StartLabel)&&(0,t.jsx)(d.ZP,{type:"primary",className:o.btn,onClick:X,children:v("proj.workspace.eProj.startLabeling")}),l&&(l==null?void 0:l.reviewNumRejected)>0&&n.taskStatus===s.gZ.Working&&u(p,m.Oc.StartLabel)&&(0,t.jsx)(d.ZP,{type:"primary",className:o.btn,onClick:J,children:v("proj.workspace.eProj.startRework")}),l&&(l==null?void 0:l.reviewNumWaiting)>0&&n.taskStatus===s.gZ.Working&&u(p,m.Oc.StartReview)&&(0,t.jsx)(d.ZP,{type:"primary",className:o.btn,onClick:Q,children:v("proj.workspace.eProj.startReview")}),(0,t.jsxs)(T.Z,{data:r.taskRoles,value:n.roleId||"",filterOptionName:function(g){return"".concat(g.userName," (").concat(g.role,")")},filterOptionValue:function(g){return g.id},onChange:ie,ghost:!1,type:"default",children:[v("proj.workspace.eProj.role"),": ",l==null?void 0:l.userName,"(",l==null?void 0:l.role,")"]})]})})]})},children:[(0,t.jsx)(O.Z,{loading:B,className:o.list,children:K.length>0&&(0,t.jsx)(j.Z,{ref:xe,data:K,height:_,itemHeight:A+16,itemKey:"index",onScroll:Se,children:function(c,g){return(0,t.jsxs)(h.Fragment,{children:[(0,t.jsx)("div",{className:o.line,children:c.lineImgs.map(function(ee,te){return(0,t.jsx)("div",{className:o.item,style:{width:M},onClick:function(){return le(g*I+te)},children:(0,t.jsx)("div",{className:o.itemImgWrap,style:{width:M,height:A},children:(0,t.jsx)(i.D5,{isOldMode:!0,categories:r.categoryList,data:ee,wrapWidth:M,wrapHeight:A})})},"".concat(ee.id,"_").concat(te))})}),g===K.length-1&&r.loadingImagesType===U.D.More&&(0,t.jsx)(L.Z,{className:o.bottomSpin})]},g)}})}),F&&(0,t.jsx)("div",{className:o.editor,children:(0,t.jsx)(i.kl,{isOldMode:!0,isSeperate:!1,mode:r.editorMode,visible:F,categories:r.categoryList,list:Y,current:r.curIndex,pagination:{show:r.editorMode!==i.je.Review&&!(r.editorMode===i.je.Edit&&n.status===s.j$.Reviewing),total:r.total,customText:r.editorMode===i.je.Edit?(0,t.jsx)(t.Fragment,{}):void 0,customDisableNext:r.editorMode===i.je.Edit?!((x=r.list[r.curIndex])!==null&&x!==void 0&&x.labeled)||r.curIndex>=r.total-1:void 0},actionElements:Re,onCancel:de,onSave:ve,onReviewAccept:ge,onReviewReject:me,onNext:ce,onPrev:ue})})]})},f=k}}]); +"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[914],{87615:function(ae,S,e){e.d(S,{Z:function(){return T}});var h=e(58757),R=e(38904),w=e(10852),b=e(73267),d=e(57414),E=e(12562),O=e(10130),L=e(53357),j={dropdownSelector:"dropdownSelector___gvMFq",dropdownWrap:"dropdownWrap___WWYlz",dropdownBox:"dropdownBox___lpUVf"},o=e(35667),D=function(i){var s=i.data,y=i.multiple,N=i.type,m=N===void 0?"primary":N,C=i.ghost,V=C===void 0?!0:C,$=i.value,t=i.filterOptionValue,k=i.filterOptionName,f=i.onChange,G=i.className,x=i.children,P=i.customOverlay,u=y?R.Z:w.ZP,a=function(n){f&&f(y?n:n.target.value)};return(0,o.jsx)(b.Z,{overlayClassName:j.dropdownSelector,trigger:["click"],dropdownRender:function(){return(0,o.jsx)("div",{className:j.dropdownWrap,children:P||(0,o.jsx)(u.Group,{className:j.dropdownBox,onChange:a,value:$,children:(0,o.jsx)(d.Z,{direction:"vertical",children:s==null?void 0:s.map(function(n,B){var H=t?t(n):n,z=k?k(n):n;return(0,o.jsx)(u,{value:H,children:(0,L._w)(z)},B)})})})})},children:(0,o.jsxs)(E.ZP,{className:G,type:m,ghost:V,children:[x,(0,o.jsx)(O.Z,{})]})})},T=D},61470:function(ae,S,e){e.r(S),e.d(S,{default:function(){return f}});var h=e(58757),R=e(97375),w=e(28506),b=e(61845),d=e(12562),E=e(16951),O=e(37617),L=e(79233),j=e(18695),o={page:"page___DZyiW",header:"header___bRKb4",backBtn:"backBtn___yET2T",tabs:"tabs___weXzX",btn:"btn____fESN",line:"line___k1GQQ",item:"item___Jv55m",itemImgWrap:"itemImgWrap___bWdL3",flagIcon:"flagIcon___PULYz",label:"label___LGG_W",itemSelectedMask:"itemSelectedMask___mU2PX",topSpin:"topSpin___eLVKZ",bottomSpin:"bottomSpin___MuKRE",pagination:"pagination___WlY5J",pageSpin:"pageSpin___BAc4e",editor:"editor___YUj9q"},D=e(39378),T=e(87615),U=e(93059),i=e(88662),s=e(35459),y=e(92183),N=e(22283),m=e(1239),C=e(95073),V=e(23707),$=e(53357),t=e(35667),k=function(){var x,P=(0,R.useModel)("Project.auth"),u=P.checkPermission,a=(0,R.useModel)("Project.workspace"),r=a.pageData,n=a.pageState,B=a.loading,H=a.loadPageData,z=a.onInitPageState,oe=a.projectId,l=a.curRole,p=a.userRoles,ne=a.tabItems,Y=a.labelImages,F=a.isEditorVisible,re=a.onStatusTabChange,ie=a.onRoleChange,le=a.clickItem,se=a.loadMore,de=a.onExitEditor,ce=a.onNextImage,ue=a.onPrevImage,ve=a.onLabelSave,ge=a.onReviewAccept,me=a.onReviewReject,pe=a.onEnterEdit,X=a.onStartLabel,J=a.onStartRework,Q=a.onStartReview;(0,w._)({onInitPageState:z,pageState:n});var he=(0,$.bU)(),v=he.localeText,je=(0,w.w)(),fe=je.height,Z=(0,C.Z)(function(){return document.querySelector(".ant-pro-page-container")}),q=Z!=null&&Z.width?Z.width-80:0,xe=h.useRef(null),I=5,M=q?(q-16*(I-1))/(I||1):0,A=M*3/4,_=fe-46,Se=function(c){Math.floor(c.currentTarget.scrollHeight-c.currentTarget.scrollTop)===Math.floor(_)&&se()},K=(0,h.useMemo)(function(){return(0,D.chunk)(Y,I).map(function(W,c){return{index:c,lineImgs:W}})},[r.list]),Re=(0,h.useMemo)(function(){return r.editorMode!==i.je.View||n.taskStatus!==s.gZ.Working?[]:u(p,m.Oc.StartLabel)?n.status===s.j$.Labeling?[(0,t.jsx)(d.ZP,{type:"primary",onClick:X,children:v("proj.workspace.eTask.startLabel")},"label")]:n.status===s.j$.Reviewing?[(0,t.jsx)(d.ZP,{type:"primary",onClick:pe,children:v("proj.workspace.eTask.edit")},"edit")]:n.status===s.j$.Rejected?[(0,t.jsx)(d.ZP,{type:"primary",onClick:J,children:v("proj.workspace.eTask.startRework")},"rework")]:[]:u(p,m.Oc.StartReview)&&n.status===s.j$.Reviewing?[(0,t.jsx)(d.ZP,{type:"primary",onClick:Q,children:v("proj.workspace.eTask.startReview")},"review")]:[]},[n.status,n.taskStatus,r.editorMode,p]);return(0,t.jsxs)(b._z,{ghost:!0,className:o.page,fixedHeader:!0,pageHeaderRender:function(){return(0,t.jsxs)("div",{className:o.header,children:[(0,t.jsx)(d.ZP,{icon:(0,t.jsx)(y.Z,{}),type:"text",className:o.backBtn,onClick:function(){return(0,V.yS)("/project/".concat(oe))}}),(0,t.jsx)(E.Z,{className:o.tabs,activeKey:n.status,onChange:re,items:ne,tabBarExtraContent:(0,t.jsxs)("div",{children:[(0,t.jsx)(d.ZP,{type:"text",className:o.btn,icon:(0,t.jsx)(N.Z,{}),onClick:function(){return H()}}),l&&(l==null?void 0:l.labelNumWaiting)>0&&n.taskStatus===s.gZ.Working&&u(p,m.Oc.StartLabel)&&(0,t.jsx)(d.ZP,{type:"primary",className:o.btn,onClick:X,children:v("proj.workspace.eProj.startLabeling")}),l&&(l==null?void 0:l.reviewNumRejected)>0&&n.taskStatus===s.gZ.Working&&u(p,m.Oc.StartLabel)&&(0,t.jsx)(d.ZP,{type:"primary",className:o.btn,onClick:J,children:v("proj.workspace.eProj.startRework")}),l&&(l==null?void 0:l.reviewNumWaiting)>0&&n.taskStatus===s.gZ.Working&&u(p,m.Oc.StartReview)&&(0,t.jsx)(d.ZP,{type:"primary",className:o.btn,onClick:Q,children:v("proj.workspace.eProj.startReview")}),(0,t.jsxs)(T.Z,{data:r.taskRoles,value:n.roleId||"",filterOptionName:function(g){return"".concat(g.userName," (").concat(g.role,")")},filterOptionValue:function(g){return g.id},onChange:ie,ghost:!1,type:"default",children:[v("proj.workspace.eProj.role"),": ",l==null?void 0:l.userName,"(",l==null?void 0:l.role,")"]})]})})]})},children:[(0,t.jsx)(O.Z,{loading:B,className:o.list,children:K.length>0&&(0,t.jsx)(j.Z,{ref:xe,data:K,height:_,itemHeight:A+16,itemKey:"index",onScroll:Se,children:function(c,g){return(0,t.jsxs)(h.Fragment,{children:[(0,t.jsx)("div",{className:o.line,children:c.lineImgs.map(function(ee,te){return(0,t.jsx)("div",{className:o.item,style:{width:M},onClick:function(){return le(g*I+te)},children:(0,t.jsx)("div",{className:o.itemImgWrap,style:{width:M,height:A},children:(0,t.jsx)(i.D5,{isOldMode:!0,categories:r.categoryList,data:ee,wrapWidth:M,wrapHeight:A})})},"".concat(ee.id,"_").concat(te))})}),g===K.length-1&&r.loadingImagesType===U.D.More&&(0,t.jsx)(L.Z,{className:o.bottomSpin})]},g)}})}),F&&(0,t.jsx)("div",{className:o.editor,children:(0,t.jsx)(i.kl,{isOldMode:!0,isSeperate:!1,mode:r.editorMode,visible:F,categories:r.categoryList,list:Y,current:r.curIndex,pagination:{show:r.editorMode!==i.je.Review&&!(r.editorMode===i.je.Edit&&n.status===s.j$.Reviewing),total:r.total,customText:r.editorMode===i.je.Edit?(0,t.jsx)(t.Fragment,{}):void 0,customDisableNext:r.editorMode===i.je.Edit?!((x=r.list[r.curIndex])!==null&&x!==void 0&&x.labeled)||r.curIndex>=r.total-1:void 0},actionElements:Re,onCancel:de,onSave:ve,onReviewAccept:ge,onReviewReject:me,onNext:ce,onPrev:ue})})]})},f=k}}]); diff --git a/deepdataspace/server/static/umi.0e5412b2.js b/deepdataspace/server/static/umi.0e5412b2.js new file mode 100644 index 0000000..068719d --- /dev/null +++ b/deepdataspace/server/static/umi.0e5412b2.js @@ -0,0 +1,518 @@ +!(function(){var mg=Object.defineProperty,pg=Object.defineProperties;var hg=Object.getOwnPropertyDescriptors;var Hf=Object.getOwnPropertySymbols;var yg=Object.prototype.hasOwnProperty,bg=Object.prototype.propertyIsEnumerable;var _f=(Iu,Hl,Tt)=>Hl in Iu?mg(Iu,Hl,{enumerable:!0,configurable:!0,writable:!0,value:Tt}):Iu[Hl]=Tt,Ha=(Iu,Hl)=>{for(var Tt in Hl||(Hl={}))yg.call(Hl,Tt)&&_f(Iu,Tt,Hl[Tt]);if(Hf)for(var Tt of Hf(Hl))bg.call(Hl,Tt)&&_f(Iu,Tt,Hl[Tt]);return Iu},Ks=(Iu,Hl)=>pg(Iu,hg(Hl));var xf=(Iu,Hl,Tt)=>new Promise((If,b)=>{var y=t=>{try{a(Tt.next(t))}catch(o){b(o)}},e=t=>{try{a(Tt.throw(t))}catch(o){b(o)}},a=t=>t.done?If(t.value):Promise.resolve(t.value).then(y,e);a((Tt=Tt.apply(Iu,Hl)).next())});(function(){var Iu={26134:function(b,y,e){"use strict";e.r(y),e.d(y,{blue:function(){return le},cyan:function(){return q},geekblue:function(){return X},generate:function(){return Z},gold:function(){return j},gray:function(){return _},green:function(){return Y},grey:function(){return O},lime:function(){return te},magenta:function(){return x},orange:function(){return G},presetDarkPalettes:function(){return $},presetPalettes:function(){return L},presetPrimaryColors:function(){return N},purple:function(){return W},red:function(){return D},volcano:function(){return T},yellow:function(){return k}});var a=e(20117),t=e(76981),o=2,s=.16,n=.05,d=.05,l=.15,c=5,m=4,g=[{index:7,opacity:.15},{index:6,opacity:.25},{index:5,opacity:.3},{index:5,opacity:.45},{index:5,opacity:.65},{index:5,opacity:.85},{index:4,opacity:.9},{index:3,opacity:.95},{index:2,opacity:.97},{index:1,opacity:.98}];function M(U){var A=U.r,V=U.g,fe=U.b,pe=(0,a.py)(A,V,fe);return{h:pe.h*360,s:pe.s,v:pe.v}}function h(U){var A=U.r,V=U.g,fe=U.b;return"#".concat((0,a.vq)(A,V,fe,!1))}function S(U,A,V){var fe=V/100,pe={r:(A.r-U.r)*fe+U.r,g:(A.g-U.g)*fe+U.g,b:(A.b-U.b)*fe+U.b};return pe}function w(U,A,V){var fe;return Math.round(U.h)>=60&&Math.round(U.h)<=240?fe=V?Math.round(U.h)-o*A:Math.round(U.h)+o*A:fe=V?Math.round(U.h)+o*A:Math.round(U.h)-o*A,fe<0?fe+=360:fe>=360&&(fe-=360),fe}function C(U,A,V){if(U.h===0&&U.s===0)return U.s;var fe;return V?fe=U.s-s*A:A===m?fe=U.s+s:fe=U.s+n*A,fe>1&&(fe=1),V&&A===c&&fe>.1&&(fe=.1),fe<.06&&(fe=.06),Number(fe.toFixed(2))}function z(U,A,V){var fe;return V?fe=U.v+d*A:fe=U.v-l*A,fe>1&&(fe=1),Number(fe.toFixed(2))}function Z(U){for(var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},V=[],fe=(0,t.uA)(U),pe=c;pe>0;pe-=1){var ge=M(fe),be=h((0,t.uA)({h:w(ge,pe,!0),s:C(ge,pe,!0),v:z(ge,pe,!0)}));V.push(be)}V.push(h(fe));for(var Te=1;Te<=m;Te+=1){var Ge=M(fe),qe=h((0,t.uA)({h:w(Ge,Te),s:C(Ge,Te),v:z(Ge,Te)}));V.push(qe)}return A.theme==="dark"?g.map(function(Qe){var ht=Qe.index,Et=Qe.opacity,gt=h(S((0,t.uA)(A.backgroundColor||"#141414"),(0,t.uA)(V[ht]),Et*100));return gt}):V}var N={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1677FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},L={},$={};Object.keys(N).forEach(function(U){L[U]=Z(N[U]),L[U].primary=L[U][5],$[U]=Z(N[U],{theme:"dark",backgroundColor:"#141414"}),$[U].primary=$[U][5]});var D=L.red,T=L.volcano,j=L.gold,G=L.orange,k=L.yellow,te=L.lime,Y=L.green,q=L.cyan,le=L.blue,X=L.geekblue,W=L.purple,x=L.magenta,O=L.grey,_=L.grey},57793:function(b,y,e){"use strict";e.d(y,{E4:function(){return nr},jG:function(){return _},t2:function(){return Ne},fp:function(){return Oe},xy:function(){return An}});var a=e(29140),t=e(57370);function o(Qt){for(var Sn=0,Dn,Jn=0,fr=Qt.length;fr>=4;++Jn,fr-=4)Dn=Qt.charCodeAt(Jn)&255|(Qt.charCodeAt(++Jn)&255)<<8|(Qt.charCodeAt(++Jn)&255)<<16|(Qt.charCodeAt(++Jn)&255)<<24,Dn=(Dn&65535)*1540483477+((Dn>>>16)*59797<<16),Dn^=Dn>>>24,Sn=(Dn&65535)*1540483477+((Dn>>>16)*59797<<16)^(Sn&65535)*1540483477+((Sn>>>16)*59797<<16);switch(fr){case 3:Sn^=(Qt.charCodeAt(Jn+2)&255)<<16;case 2:Sn^=(Qt.charCodeAt(Jn+1)&255)<<8;case 1:Sn^=Qt.charCodeAt(Jn)&255,Sn=(Sn&65535)*1540483477+((Sn>>>16)*59797<<16)}return Sn^=Sn>>>13,Sn=(Sn&65535)*1540483477+((Sn>>>16)*59797<<16),((Sn^Sn>>>15)>>>0).toString(36)}var s=o,n=e(58757),d=e.t(n,2),l=e(27903),c=e(7637),m=e(60412),g=e(14346),M=e(37734),h="%",S=function(){function Qt(Sn){(0,m.Z)(this,Qt),(0,M.Z)(this,"instanceId",void 0),(0,M.Z)(this,"cache",new Map),this.instanceId=Sn}return(0,g.Z)(Qt,[{key:"get",value:function(Dn){return this.cache.get(Dn.join(h))||null}},{key:"update",value:function(Dn,Jn){var fr=Dn.join(h),kr=this.cache.get(fr),Jr=Jn(kr);Jr===null?this.cache.delete(fr):this.cache.set(fr,Jr)}}]),Qt}(),w=S,C=null,z="data-token-hash",Z="data-css-hash",N="data-cache-path",L="__cssinjs_instance__";function $(){var Qt=Math.random().toString(12).slice(2);if(typeof document!="undefined"&&document.head&&document.body){var Sn=document.body.querySelectorAll("style[".concat(Z,"]"))||[],Dn=document.head.firstChild;Array.from(Sn).forEach(function(fr){fr[L]=fr[L]||Qt,fr[L]===Qt&&document.head.insertBefore(fr,Dn)});var Jn={};Array.from(document.querySelectorAll("style[".concat(Z,"]"))).forEach(function(fr){var kr=fr.getAttribute(Z);if(Jn[kr]){if(fr[L]===Qt){var Jr;(Jr=fr.parentNode)===null||Jr===void 0||Jr.removeChild(fr)}}else Jn[kr]=!0})}return new w(Qt)}var D=n.createContext({hashPriority:"low",cache:$(),defaultCache:!0}),T=function(Sn){var Dn=Sn.children,Jn=_objectWithoutProperties(Sn,C),fr=React.useContext(D),kr=useMemo(function(){var Jr=_objectSpread({},fr);Object.keys(Jn).forEach(function(Hr){var ca=Jn[Hr];Jn[Hr]!==void 0&&(Jr[Hr]=ca)});var or=Jn.cache;return Jr.cache=Jr.cache||$(),Jr.defaultCache=!or&&fr.defaultCache,Jr},[fr,Jn],function(Jr,or){return!isEqual(Jr[0],or[0],!0)||!isEqual(Jr[1],or[1],!0)});return React.createElement(D.Provider,{value:kr},Dn)},j=D,G=e(38790),k=e(19075),te=e(39678),Y=e(28314);function q(Qt,Sn){if(Qt.length!==Sn.length)return!1;for(var Dn=0;Dn1&&arguments[1]!==void 0?arguments[1]:!1,Jr={map:this.cache};return Dn.forEach(function(or){if(!Jr)Jr=void 0;else{var Hr,ca;Jr=(Hr=Jr)===null||Hr===void 0||(ca=Hr.map)===null||ca===void 0?void 0:ca.get(or)}}),(Jn=Jr)!==null&&Jn!==void 0&&Jn.value&&kr&&(Jr.value[1]=this.cacheCallTimes++),(fr=Jr)===null||fr===void 0?void 0:fr.value}},{key:"get",value:function(Dn){var Jn;return(Jn=this.internalGet(Dn,!0))===null||Jn===void 0?void 0:Jn[0]}},{key:"has",value:function(Dn){return!!this.internalGet(Dn)}},{key:"set",value:function(Dn,Jn){var fr=this;if(!this.has(Dn)){if(this.size()+1>Qt.MAX_CACHE_SIZE+Qt.MAX_CACHE_OFFSET){var kr=this.keys.reduce(function(ca,Oa){var Ia=(0,Y.Z)(ca,2),Xr=Ia[1];return fr.internalGet(Oa)[1]0,"[Ant Design CSS-in-JS] Theme should have at least one derivative function."),W+=1}return(0,g.Z)(Qt,[{key:"getDerivativeToken",value:function(Dn){return this.derivatives.reduce(function(Jn,fr){return fr(Dn,Jn)},void 0)}}]),Qt}(),O=new le;function _(Qt){var Sn=Array.isArray(Qt)?Qt:[Qt];return O.has(Sn)||O.set(Sn,new x(Sn)),O.get(Sn)}var U=new WeakMap;function A(Qt){var Sn=U.get(Qt)||"";return Sn||(Object.keys(Qt).forEach(function(Dn){var Jn=Qt[Dn];Sn+=Dn,Jn instanceof x?Sn+=Jn.id:Jn&&(0,G.Z)(Jn)==="object"?Sn+=A(Jn):Sn+=Jn}),U.set(Qt,Sn)),Sn}function V(Qt,Sn){return s("".concat(Sn,"_").concat(A(Qt)))}var fe="random-".concat(Date.now(),"-").concat(Math.random()).replace(/\./g,""),pe="_bAmBoO_";function ge(Qt,Sn,Dn){if((0,k.Z)()){var Jn,fr;(0,te.hq)(Qt,fe);var kr=document.createElement("div");kr.style.position="fixed",kr.style.left="0",kr.style.top="0",Sn==null||Sn(kr),document.body.appendChild(kr);var Jr=Dn?Dn(kr):(Jn=getComputedStyle(kr).content)===null||Jn===void 0?void 0:Jn.includes(pe);return(fr=kr.parentNode)===null||fr===void 0||fr.removeChild(kr),(0,te.jL)(fe),Jr}return!1}var be=void 0;function Te(){return be===void 0&&(be=ge("@layer ".concat(fe," { .").concat(fe,' { content: "').concat(pe,'"!important; } }'),function(Qt){Qt.className=fe})),be}var Ge=void 0;function qe(){return Ge===void 0&&(Ge=ge(":where(.".concat(fe,') { content: "').concat(pe,'"!important; }'),function(Qt){Qt.className=fe})),Ge}var Qe=void 0;function ht(){return Qe===void 0&&(Qe=ge(".".concat(fe," { inset-block: 93px !important; }"),function(Qt){Qt.className=fe},function(Qt){return getComputedStyle(Qt).bottom==="93px"})),Qe}var Et=e(81334),gt=(0,t.Z)({},d),Ht=gt.useInsertionEffect,$e=function(Sn,Dn,Jn){n.useMemo(Sn,Jn),(0,Et.Z)(function(){return Dn(!0)},Jn)},Xe=Ht?function(Qt,Sn,Dn){return Ht(function(){return Qt(),Sn()},Dn)}:$e,rt=Xe,Ke=(0,t.Z)({},d),ye=Ke.useInsertionEffect,ne=function(Sn){var Dn=[],Jn=!1;function fr(kr){Jn||Dn.push(kr)}return n.useEffect(function(){return Jn=!1,function(){Jn=!0,Dn.length&&Dn.forEach(function(kr){return kr()})}},Sn),fr},H=function(){return function(Sn){Sn()}},R=typeof ye!="undefined"?ne:H,P=R;function ae(){return!1}var Q=!1;function ie(){return Q}var me=ae;if(!1)var je,Ce;function Se(Qt,Sn,Dn,Jn,fr){var kr=n.useContext(j),Jr=kr.cache,or=[Qt].concat((0,a.Z)(Sn)),Hr=or.join("_"),ca=P([Hr]),Oa=me(),Ia=function(Ya){Jr.update(or,function(Co){var co=Co||[],Ca=(0,Y.Z)(co,2),Za=Ca[0],xo=Za===void 0?0:Za,ei=Ca[1],ri=ei,ao=ri||Dn(),Mi=[xo,ao];return Ya?Ya(Mi):Mi})};n.useMemo(function(){Ia()},[Hr]);var Xr=Jr.get(or),po=Xr[1];return rt(function(){fr==null||fr(po)},function(wo){return Ia(function(Ya){var Co=(0,Y.Z)(Ya,2),co=Co[0],Ca=Co[1];return wo&&co===0&&(fr==null||fr(po)),[co+1,Ca]}),function(){Jr.update(or,function(Ya){var Co=Ya||[],co=(0,Y.Z)(Co,2),Ca=co[0],Za=Ca===void 0?0:Ca,xo=co[1],ei=Za-1;return ei===0?(ca(function(){return Jn==null?void 0:Jn(xo,!1)}),null):[Za-1,xo]})}},[Hr]),po}var We={},re="css",se=new Map;function J(Qt){se.set(Qt,(se.get(Qt)||0)+1)}function de(Qt,Sn){if(typeof document!="undefined"){var Dn=document.querySelectorAll("style[".concat(z,'="').concat(Qt,'"]'));Dn.forEach(function(Jn){if(Jn[L]===Sn){var fr;(fr=Jn.parentNode)===null||fr===void 0||fr.removeChild(Jn)}})}}var xe=0;function ce(Qt,Sn){se.set(Qt,(se.get(Qt)||0)-1);var Dn=Array.from(se.keys()),Jn=Dn.filter(function(fr){var kr=se.get(fr)||0;return kr<=0});Dn.length-Jn.length>xe&&Jn.forEach(function(fr){de(fr,Sn),se.delete(fr)})}var Ne=function(Sn,Dn,Jn,fr){var kr=Jn.getDerivativeToken(Sn),Jr=(0,t.Z)((0,t.Z)({},kr),Dn);return fr&&(Jr=fr(Jr)),Jr};function Oe(Qt,Sn){var Dn=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Jn=(0,n.useContext)(j),fr=Jn.cache.instanceId,kr=Dn.salt,Jr=kr===void 0?"":kr,or=Dn.override,Hr=or===void 0?We:or,ca=Dn.formatToken,Oa=Dn.getComputedToken,Ia=n.useMemo(function(){return Object.assign.apply(Object,[{}].concat((0,a.Z)(Sn)))},[Sn]),Xr=n.useMemo(function(){return A(Ia)},[Ia]),po=n.useMemo(function(){return A(Hr)},[Hr]),wo=Se("token",[Jr,Qt.id,Xr,po],function(){var Ya=Oa?Oa(Ia,Hr,Qt):Ne(Ia,Hr,Qt,ca),Co=V(Ya,Jr);Ya._tokenKey=Co,J(Co);var co="".concat(re,"-").concat(s(Co));return Ya._hashId=co,[Ya,co]},function(Ya){ce(Ya[0]._tokenKey,fr)});return wo}var we=e(60698),Re={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},st=Re,tt="-ms-",Ye="-moz-",ke="-webkit-",Be="comm",it="rule",Ve="decl",xt="@page",_t="@media",Ot="@import",wt="@charset",Yt="@viewport",bt="@supports",ze="@document",nt="@namespace",St="@keyframes",ut="@font-face",Vt="@counter-style",Nt="@font-feature-values",At="@layer",Ie=Math.abs,Ee=String.fromCharCode,Mt=Object.assign;function jt(Qt,Sn){return Jt(Qt,0)^45?(((Sn<<2^Jt(Qt,0))<<2^Jt(Qt,1))<<2^Jt(Qt,2))<<2^Jt(Qt,3):0}function He(Qt){return Qt.trim()}function et(Qt,Sn){return(Qt=Sn.exec(Qt))?Qt[0]:Qt}function Zt(Qt,Sn,Dn){return Qt.replace(Sn,Dn)}function Ut(Qt,Sn){return Qt.indexOf(Sn)}function Jt(Qt,Sn){return Qt.charCodeAt(Sn)|0}function ln(Qt,Sn,Dn){return Qt.slice(Sn,Dn)}function Mn(Qt){return Qt.length}function gn(Qt){return Qt.length}function Yn(Qt,Sn){return Sn.push(Qt),Qt}function Gn(Qt,Sn){return Qt.map(Sn).join("")}function ar(Qt,Sn){return Qt.filter(function(Dn){return!et(Dn,Sn)})}function gr(Qt,Sn){for(var Dn="",Jn=0;Jn0?Jt(pt,--Cn):0,rn--,on===10&&(rn=1,qt--),on}function fn(){return on=Cn2||dt(on)>3?"":" "}function xn(Qt){for(;fn();)switch(dt(on)){case 0:append(zn(Cn-1),Qt);break;case 2:append(kt(on),Qt);break;default:append(from(on),Qt)}return Qt}function Rn(Qt,Sn){for(;--Sn&&fn()&&!(on<48||on>102||on>57&&on<65||on>70&&on<97););return ct(Qt,qn()+(Sn<6&&kn()==32&&fn()==32))}function Mr(Qt){for(;fn();)switch(on){case Qt:return Cn;case 34:case 39:Qt!==34&&Qt!==39&&Mr(on);break;case 40:Qt===41&&Mr(Qt);break;case 92:fn();break}return Cn}function er(Qt,Sn){for(;fn()&&Qt+on!==57;)if(Qt+on===84&&kn()===47)break;return"/*"+ct(Sn,Cn-1)+"*"+Ee(Qt===47?Qt:fn())}function zn(Qt){for(;!dt(kn());)fn();return ct(Qt,Cn)}function Ur(Qt){return Ct(pr("",null,null,null,[""],Qt=It(Qt),0,[0],Qt))}function pr(Qt,Sn,Dn,Jn,fr,kr,Jr,or,Hr){for(var ca=0,Oa=0,Ia=Jr,Xr=0,po=0,wo=0,Ya=1,Co=1,co=1,Ca=0,Za="",xo=fr,ei=kr,ri=Jn,ao=Za;Co;)switch(wo=Ca,Ca=fn()){case 40:if(wo!=108&&Jt(ao,Ia-1)==58){Ut(ao+=Zt(kt(Ca),"&","&\f"),"&\f")!=-1&&(co=-1);break}case 34:case 39:case 91:ao+=kt(Ca);break;case 9:case 10:case 13:case 32:ao+=nn(wo);break;case 92:ao+=Rn(qn()-1,7);continue;case 47:switch(kn()){case 42:case 47:Yn(Nr(er(fn(),qn()),Sn,Dn,Hr),Hr);break;default:ao+="/"}break;case 123*Ya:or[ca++]=Mn(ao)*co;case 125*Ya:case 59:case 0:switch(Ca){case 0:case 125:Co=0;case 59+Oa:co==-1&&(ao=Zt(ao,/\f/g,"")),po>0&&Mn(ao)-Ia&&Yn(po>32?Zn(ao+";",Jn,Dn,Ia-1,Hr):Zn(Zt(ao," ","")+";",Jn,Dn,Ia-2,Hr),Hr);break;case 59:ao+=";";default:if(Yn(ri=sa(ao,Sn,Dn,ca,Oa,fr,or,Za,xo=[],ei=[],Ia,kr),kr),Ca===123)if(Oa===0)pr(ao,Sn,ri,ri,xo,kr,Ia,or,ei);else switch(Xr===99&&Jt(ao,3)===110?100:Xr){case 100:case 108:case 109:case 115:pr(Qt,ri,ri,Jn&&Yn(sa(Qt,ri,ri,0,0,fr,or,Za,fr,xo=[],Ia,ei),ei),fr,ei,Ia,or,Jn?xo:ei);break;default:pr(ao,ri,ri,ri,[""],ei,0,or,ei)}}ca=Oa=po=0,Ya=co=1,Za=ao="",Ia=Jr;break;case 58:Ia=1+Mn(ao),po=wo;default:if(Ya<1){if(Ca==123)--Ya;else if(Ca==125&&Ya++==0&&mn()==125)continue}switch(ao+=Ee(Ca),Ca*Ya){case 38:co=Oa>0?1:(ao+="\f",-1);break;case 44:or[ca++]=(Mn(ao)-1)*co,co=1;break;case 64:kn()===45&&(ao+=kt(fn())),Xr=kn(),Oa=Ia=Mn(Za=ao+=zn(qn())),Ca++;break;case 45:wo===45&&Mn(ao)==2&&(Ya=0)}}return kr}function sa(Qt,Sn,Dn,Jn,fr,kr,Jr,or,Hr,ca,Oa,Ia){for(var Xr=fr-1,po=fr===0?kr:[""],wo=gn(po),Ya=0,Co=0,co=0;Ya0?po[Ca]+" "+Za:Zt(Za,/&\f/g,po[Ca])))&&(Hr[co++]=xo);return mt(Qt,Sn,Dn,fr===0?it:or,Hr,ca,Oa,Ia)}function Nr(Qt,Sn,Dn,Jn){return mt(Qt,Sn,Dn,Be,Ee(tn()),ln(Qt,2,-2),0,Jn)}function Zn(Qt,Sn,Dn,Jn,fr){return mt(Qt,Sn,Dn,Ve,ln(Qt,0,Jn),ln(Qt,Jn+1,-1),Jn,fr)}function In(Qt,Sn){var Dn=Sn.path,Jn=Sn.parentSelectors;devWarning(!1,"[Ant Design CSS-in-JS] ".concat(Dn?"Error in ".concat(Dn,": "):"").concat(Qt).concat(Jn.length?" Selector: ".concat(Jn.join(" | ")):""))}var Pn=function(Sn,Dn,Jn){if(Sn==="content"){var fr=/(attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\(|(no-)?(open|close)-quote/,kr=["normal","none","initial","inherit","unset"];(typeof Dn!="string"||kr.indexOf(Dn)===-1&&!fr.test(Dn)&&(Dn.charAt(0)!==Dn.charAt(Dn.length-1)||Dn.charAt(0)!=='"'&&Dn.charAt(0)!=="'"))&&lintWarning("You seem to be using a value for 'content' without quotes, try replacing it with `content: '\"".concat(Dn,"\"'`."),Jn)}},rr=null,br=function(Sn,Dn,Jn){Sn==="animation"&&Jn.hashId&&Dn!=="none"&&lintWarning("You seem to be using hashed animation '".concat(Dn,"', in which case 'animationName' with Keyframe as value is recommended."),Jn)},Gr=null;function na(Qt){var Sn,Dn=((Sn=Qt.match(/:not\(([^)]*)\)/))===null||Sn===void 0?void 0:Sn[1])||"",Jn=Dn.split(/(\[[^[]*])|(?=[.#])/).filter(function(fr){return fr});return Jn.length>1}function pa(Qt){return Qt.parentSelectors.reduce(function(Sn,Dn){return Sn?Dn.includes("&")?Dn.replace(/&/g,Sn):"".concat(Sn," ").concat(Dn):Dn},"")}var cr=function(Sn,Dn,Jn){var fr=pa(Jn),kr=fr.match(/:not\([^)]*\)/g)||[];kr.length>0&&kr.some(na)&&lintWarning("Concat ':not' selector not support in legacy browsers.",Jn)},Zr=null,Ea=function(Sn,Dn,Jn){switch(Sn){case"marginLeft":case"marginRight":case"paddingLeft":case"paddingRight":case"left":case"right":case"borderLeft":case"borderLeftWidth":case"borderLeftStyle":case"borderLeftColor":case"borderRight":case"borderRightWidth":case"borderRightStyle":case"borderRightColor":case"borderTopLeftRadius":case"borderTopRightRadius":case"borderBottomLeftRadius":case"borderBottomRightRadius":lintWarning("You seem to be using non-logical property '".concat(Sn,"' which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties."),Jn);return;case"margin":case"padding":case"borderWidth":case"borderStyle":if(typeof Dn=="string"){var fr=Dn.split(" ").map(function(or){return or.trim()});fr.length===4&&fr[1]!==fr[3]&&lintWarning("You seem to be using '".concat(Sn,"' property with different left ").concat(Sn," and right ").concat(Sn,", which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties."),Jn)}return;case"clear":case"textAlign":(Dn==="left"||Dn==="right")&&lintWarning("You seem to be using non-logical value '".concat(Dn,"' of ").concat(Sn,", which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties."),Jn);return;case"borderRadius":if(typeof Dn=="string"){var kr=Dn.split("/").map(function(or){return or.trim()}),Jr=kr.reduce(function(or,Hr){if(or)return or;var ca=Hr.split(" ").map(function(Oa){return Oa.trim()});return ca.length>=2&&ca[0]!==ca[1]||ca.length===3&&ca[1]!==ca[2]||ca.length===4&&ca[2]!==ca[3]?!0:or},!1);Jr&&lintWarning("You seem to be using non-logical value '".concat(Dn,"' of ").concat(Sn,", which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties."),Jn)}return;default:}},ha=null,Wn=function(Sn,Dn,Jn){Jn.parentSelectors.some(function(fr){var kr=fr.split(",");return kr.some(function(Jr){return Jr.split("&").length>2})})&&lintWarning("Should not use more than one `&` in a selector.",Jn)},Fn=null,hr="data-ant-cssinjs-cache-path",Kr="_FILE_STYLE__";function Ar(Qt){return Object.keys(Qt).map(function(Sn){var Dn=Qt[Sn];return"".concat(Sn,":").concat(Dn)}).join(";")}var Pt,an=!0;function pn(Qt){var Sn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;Pt=Qt,an=Sn}function qa(){if(!Pt&&(Pt={},(0,k.Z)())){var Qt=document.createElement("div");Qt.className=hr,Qt.style.position="fixed",Qt.style.visibility="hidden",Qt.style.top="-9999px",document.body.appendChild(Qt);var Sn=getComputedStyle(Qt).content||"";Sn=Sn.replace(/^"/,"").replace(/"$/,""),Sn.split(";").forEach(function(fr){var kr=fr.split(":"),Jr=(0,Y.Z)(kr,2),or=Jr[0],Hr=Jr[1];Pt[or]=Hr});var Dn=document.querySelector("style[".concat(hr,"]"));if(Dn){var Jn;an=!1,(Jn=Dn.parentNode)===null||Jn===void 0||Jn.removeChild(Dn)}document.body.removeChild(Qt)}}function Mo(Qt){return qa(),!!Pt[Qt]}function Ua(Qt){var Sn=Pt[Qt],Dn=null;if(Sn&&(0,k.Z)())if(an)Dn=Kr;else{var Jn=document.querySelector("style[".concat(Z,'="').concat(Pt[Qt],'"]'));Jn?Dn=Jn.innerHTML:delete Pt[Qt]}return[Dn,Sn]}var Wa=(0,k.Z)(),Xa="_skip_check_",No="_multi_value_";function $o(Qt){var Sn=gr(Ur(Qt),zt);return Sn.replace(/\{%%%\:[^;];}/g,";")}function So(Qt){return(0,G.Z)(Qt)==="object"&&Qt&&(Xa in Qt||No in Qt)}function ft(Qt,Sn,Dn){if(!Sn)return Qt;var Jn=".".concat(Sn),fr=Dn==="low"?":where(".concat(Jn,")"):Jn,kr=Qt.split(",").map(function(Jr){var or,Hr=Jr.trim().split(/\s+/),ca=Hr[0]||"",Oa=((or=ca.match(/^\w+/))===null||or===void 0?void 0:or[0])||"";return ca="".concat(Oa).concat(fr).concat(ca.slice(Oa.length)),[ca].concat((0,a.Z)(Hr.slice(1))).join(" ")});return kr.join(",")}var Rt=function Qt(Sn){var Dn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Jn=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{root:!0,parentSelectors:[]},fr=Jn.root,kr=Jn.injectHash,Jr=Jn.parentSelectors,or=Dn.hashId,Hr=Dn.layer,ca=Dn.path,Oa=Dn.hashPriority,Ia=Dn.transformers,Xr=Ia===void 0?[]:Ia,po=Dn.linters,wo=po===void 0?[]:po,Ya="",Co={};function co(ri){var ao=ri.getName(or);if(!Co[ao]){var Mi=Qt(ri.style,Dn,{root:!1,parentSelectors:Jr}),ji=(0,Y.Z)(Mi,1),Xo=ji[0];Co[ao]="@keyframes ".concat(ri.getName(or)).concat(Xo)}}function Ca(ri){var ao=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return ri.forEach(function(Mi){Array.isArray(Mi)?Ca(Mi,ao):Mi&&ao.push(Mi)}),ao}var Za=Ca(Array.isArray(Sn)?Sn:[Sn]);if(Za.forEach(function(ri){var ao=typeof ri=="string"&&!fr?{}:ri;if(typeof ao=="string")Ya+="".concat(ao,` +`);else if(ao._keyframe)co(ao);else{var Mi=Xr.reduce(function(ji,Xo){var Ho;return(Xo==null||(Ho=Xo.visit)===null||Ho===void 0?void 0:Ho.call(Xo,ji))||ji},ao);Object.keys(Mi).forEach(function(ji){var Xo=Mi[ji];if((0,G.Z)(Xo)==="object"&&Xo&&(ji!=="animationName"||!Xo._keyframe)&&!So(Xo)){var Ho=!1,ui=ji.trim(),li=!1;(fr||kr)&&or?ui.startsWith("@")?Ho=!0:ui=ft(ji,or,Oa):fr&&!or&&(ui==="&"||ui==="")&&(ui="",li=!0);var Ci=Qt(Xo,Dn,{root:li,injectHash:Ho,parentSelectors:[].concat((0,a.Z)(Jr),[ui])}),Ni=(0,Y.Z)(Ci,2),xi=Ni[0],no=Ni[1];Co=(0,t.Z)((0,t.Z)({},Co),no),Ya+="".concat(ui).concat(xi)}else{let ai=function(jo,Zo){var Ii=jo.replace(/[A-Z]/g,function(ki){return"-".concat(ki.toLowerCase())}),Ri=Zo;!st[jo]&&typeof Ri=="number"&&Ri!==0&&(Ri="".concat(Ri,"px")),jo==="animationName"&&Zo!==null&&Zo!==void 0&&Zo._keyframe&&(co(Zo),Ri=Zo.getName(or)),Ya+="".concat(Ii,":").concat(Ri,";")};var Qa,ti=(Qa=Xo==null?void 0:Xo.value)!==null&&Qa!==void 0?Qa:Xo;(0,G.Z)(Xo)==="object"&&Xo!==null&&Xo!==void 0&&Xo[No]&&Array.isArray(ti)?ti.forEach(function(jo){ai(ji,jo)}):ai(ji,ti)}})}}),!fr)Ya="{".concat(Ya,"}");else if(Hr&&Te()){var xo=Hr.split(","),ei=xo[xo.length-1].trim();Ya="@layer ".concat(ei," {").concat(Ya,"}"),xo.length>1&&(Ya="@layer ".concat(Hr,"{%%%:%}").concat(Ya))}return[Ya,Co]};function Ae(Qt,Sn){return s("".concat(Qt.join("%")).concat(Sn))}function cn(){return null}function An(Qt,Sn){var Dn=Qt.token,Jn=Qt.path,fr=Qt.hashId,kr=Qt.layer,Jr=Qt.nonce,or=Qt.clientOnly,Hr=Qt.order,ca=Hr===void 0?0:Hr,Oa=n.useContext(j),Ia=Oa.autoClear,Xr=Oa.mock,po=Oa.defaultCache,wo=Oa.hashPriority,Ya=Oa.container,Co=Oa.ssrInline,co=Oa.transformers,Ca=Oa.linters,Za=Oa.cache,xo=Dn._tokenKey,ei=[xo].concat((0,a.Z)(Jn)),ri=Wa,ao=Se("style",ei,function(){var ui=ei.join("|");if(Mo(ui)){var li=Ua(ui),Ci=(0,Y.Z)(li,2),Ni=Ci[0],xi=Ci[1];if(Ni)return[Ni,xo,xi,{},or,ca]}var no=Sn(),Qa=Rt(no,{hashId:fr,hashPriority:wo,layer:kr,path:Jn.join("-"),transformers:co,linters:Ca}),ti=(0,Y.Z)(Qa,2),ai=ti[0],jo=ti[1],Zo=$o(ai),Ii=Ae(ei,Zo);return[Zo,xo,Ii,jo,or,ca]},function(ui,li){var Ci=(0,Y.Z)(ui,3),Ni=Ci[2];(li||Ia)&&Wa&&(0,te.jL)(Ni,{mark:Z})},function(ui){var li=(0,Y.Z)(ui,4),Ci=li[0],Ni=li[1],xi=li[2],no=li[3];if(ri&&Ci!==Kr){var Qa={mark:Z,prepend:"queue",attachTo:Ya,priority:ca},ti=typeof Jr=="function"?Jr():Jr;ti&&(Qa.csp={nonce:ti});var ai=(0,te.hq)(Ci,xi,Qa);ai[L]=Za.instanceId,ai.setAttribute(z,xo),Object.keys(no).forEach(function(jo){(0,te.hq)($o(no[jo]),"_effect-".concat(jo),Qa)})}}),Mi=(0,Y.Z)(ao,3),ji=Mi[0],Xo=Mi[1],Ho=Mi[2];return function(ui){var li;if(!Co||ri||!po)li=n.createElement(cn,null);else{var Ci;li=n.createElement("style",(0,we.Z)({},(Ci={},(0,M.Z)(Ci,z,Xo),(0,M.Z)(Ci,Z,Ho),Ci),{dangerouslySetInnerHTML:{__html:ji}}))}return n.createElement(n.Fragment,null,li,ui)}}function hn(Qt){var Sn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,Dn="style%",Jn=Array.from(Qt.cache.keys()).filter(function(ca){return ca.startsWith(Dn)}),fr={},kr={},Jr="";function or(ca,Oa,Ia){var Xr,po=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},wo=_objectSpread(_objectSpread({},po),{},(Xr={},_defineProperty(Xr,ATTR_TOKEN,Oa),_defineProperty(Xr,ATTR_MARK,Ia),Xr)),Ya=Object.keys(wo).map(function(Co){var co=wo[Co];return co?"".concat(Co,'="').concat(co,'"'):null}).filter(function(Co){return Co}).join(" ");return Sn?ca:"")}var Hr=Jn.map(function(ca){var Oa=ca.slice(Dn.length).replace(/%/g,"|"),Ia=_slicedToArray(Qt.cache.get(ca)[1],6),Xr=Ia[0],po=Ia[1],wo=Ia[2],Ya=Ia[3],Co=Ia[4],co=Ia[5];if(Co)return null;var Ca={"data-rc-order":"prependQueue","data-rc-priority":"".concat(co)},Za=or(Xr,po,wo,Ca);kr[Oa]=wo,Ya&&Object.keys(Ya).forEach(function(ei){fr[ei]||(fr[ei]=!0,Za+=or($o(Ya[ei]),po,"_effect-".concat(ei),Ca))});var xo=[co,Za];return xo}).filter(function(ca){return ca});return Hr.sort(function(ca,Oa){return ca[0]-Oa[0]}).forEach(function(ca){var Oa=_slicedToArray(ca,2),Ia=Oa[1];Jr+=Ia}),Jr+=or(".".concat(ATTR_CACHE_MAP,'{content:"').concat(serializeCacheMap(kr),'";}'),void 0,void 0,_defineProperty({},ATTR_CACHE_MAP,ATTR_CACHE_MAP)),Jr}var Xn=function(){function Qt(Sn,Dn){(0,m.Z)(this,Qt),(0,M.Z)(this,"name",void 0),(0,M.Z)(this,"style",void 0),(0,M.Z)(this,"_keyframe",!0),this.name=Sn,this.style=Dn}return(0,g.Z)(Qt,[{key:"getName",value:function(){var Dn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return Dn?"".concat(Dn,"-").concat(this.name):this.name}}]),Qt}(),nr=Xn;function Wr(Qt){if(typeof Qt=="number")return[[Qt],!1];var Sn=String(Qt).trim(),Dn=Sn.match(/(.*)(!important)/),Jn=(Dn?Dn[1]:Sn).trim().split(/\s+/),fr="",kr=0;return[Jn.reduce(function(Jr,or){return or.includes("(")?(fr+=or,kr+=or.split("(").length-1):or.includes(")")?(fr+=or,kr-=or.split(")").length-1,kr===0&&(Jr.push(fr),fr="")):kr>0?fr+=or:Jr.push(or),Jr},[]),!!Dn]}function Da(Qt){return Qt.notSplit=!0,Qt}var oa={inset:["top","right","bottom","left"],insetBlock:["top","bottom"],insetBlockStart:["top"],insetBlockEnd:["bottom"],insetInline:["left","right"],insetInlineStart:["left"],insetInlineEnd:["right"],marginBlock:["marginTop","marginBottom"],marginBlockStart:["marginTop"],marginBlockEnd:["marginBottom"],marginInline:["marginLeft","marginRight"],marginInlineStart:["marginLeft"],marginInlineEnd:["marginRight"],paddingBlock:["paddingTop","paddingBottom"],paddingBlockStart:["paddingTop"],paddingBlockEnd:["paddingBottom"],paddingInline:["paddingLeft","paddingRight"],paddingInlineStart:["paddingLeft"],paddingInlineEnd:["paddingRight"],borderBlock:Da(["borderTop","borderBottom"]),borderBlockStart:Da(["borderTop"]),borderBlockEnd:Da(["borderBottom"]),borderInline:Da(["borderLeft","borderRight"]),borderInlineStart:Da(["borderLeft"]),borderInlineEnd:Da(["borderRight"]),borderBlockWidth:["borderTopWidth","borderBottomWidth"],borderBlockStartWidth:["borderTopWidth"],borderBlockEndWidth:["borderBottomWidth"],borderInlineWidth:["borderLeftWidth","borderRightWidth"],borderInlineStartWidth:["borderLeftWidth"],borderInlineEndWidth:["borderRightWidth"],borderBlockStyle:["borderTopStyle","borderBottomStyle"],borderBlockStartStyle:["borderTopStyle"],borderBlockEndStyle:["borderBottomStyle"],borderInlineStyle:["borderLeftStyle","borderRightStyle"],borderInlineStartStyle:["borderLeftStyle"],borderInlineEndStyle:["borderRightStyle"],borderBlockColor:["borderTopColor","borderBottomColor"],borderBlockStartColor:["borderTopColor"],borderBlockEndColor:["borderBottomColor"],borderInlineColor:["borderLeftColor","borderRightColor"],borderInlineStartColor:["borderLeftColor"],borderInlineEndColor:["borderRightColor"],borderStartStartRadius:["borderTopLeftRadius"],borderStartEndRadius:["borderTopRightRadius"],borderEndStartRadius:["borderBottomLeftRadius"],borderEndEndRadius:["borderBottomRightRadius"]};function Qr(Qt,Sn){var Dn=Qt;return Sn&&(Dn="".concat(Dn," !important")),{_skip_check_:!0,value:Dn}}var ra={visit:function(Sn){var Dn={};return Object.keys(Sn).forEach(function(Jn){var fr=Sn[Jn],kr=oa[Jn];if(kr&&(typeof fr=="number"||typeof fr=="string")){var Jr=Wr(fr),or=(0,Y.Z)(Jr,2),Hr=or[0],ca=or[1];kr.length&&kr.notSplit?kr.forEach(function(Oa){Dn[Oa]=Qr(fr,ca)}):kr.length===1?Dn[kr[0]]=Qr(fr,ca):kr.length===2?kr.forEach(function(Oa,Ia){var Xr;Dn[Oa]=Qr((Xr=Hr[Ia])!==null&&Xr!==void 0?Xr:Hr[0],ca)}):kr.length===4?kr.forEach(function(Oa,Ia){var Xr,po;Dn[Oa]=Qr((Xr=(po=Hr[Ia])!==null&&po!==void 0?po:Hr[Ia-2])!==null&&Xr!==void 0?Xr:Hr[0],ca)}):Dn[Jn]=fr}else Dn[Jn]=fr}),Dn}},jr=null,$r=/url\([^)]+\)|var\([^)]+\)|(\d*\.?\d+)px/g;function fa(Qt,Sn){var Dn=Math.pow(10,Sn+1),Jn=Math.floor(Qt*Dn);return Math.round(Jn/10)*10/Dn}var Na=function(){var Sn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Dn=Sn.rootValue,Jn=Dn===void 0?16:Dn,fr=Sn.precision,kr=fr===void 0?5:fr,Jr=Sn.mediaQuery,or=Jr===void 0?!1:Jr,Hr=function(Ia,Xr){if(!Xr)return Ia;var po=parseFloat(Xr);if(po<=1)return Ia;var wo=fa(po/Jn,kr);return"".concat(wo,"rem")},ca=function(Ia){var Xr=_objectSpread({},Ia);return Object.entries(Ia).forEach(function(po){var wo=_slicedToArray(po,2),Ya=wo[0],Co=wo[1];if(typeof Co=="string"&&Co.includes("px")){var co=Co.replace($r,Hr);Xr[Ya]=co}!unitless[Ya]&&typeof Co=="number"&&Co!==0&&(Xr[Ya]="".concat(Co,"px").replace($r,Hr));var Ca=Ya.trim();if(Ca.startsWith("@")&&Ca.includes("px")&&or){var Za=Ya.replace($r,Hr);Xr[Za]=Xr[Ya],delete Xr[Ya]}}),Xr};return{visit:ca}},to=null,Ka={supportModernCSS:function(){return qe()&&ht()}}},17202:function(b,y,e){"use strict";e.d(y,{Z:function(){return T}});var a=e(60698),t=e(28314),o=e(37734),s=e(47075),n=e(58757),d=e(87608),l=e.n(d),c=e(26134),m=e(71048),g=e(57370),M=e(17332),h=["icon","className","onClick","style","primaryColor","secondaryColor"],S={primaryColor:"#333",secondaryColor:"#E6E6E6",calculated:!1};function w(j){var G=j.primaryColor,k=j.secondaryColor;S.primaryColor=G,S.secondaryColor=k||(0,M.pw)(G),S.calculated=!!k}function C(){return(0,g.Z)({},S)}var z=function(G){var k=G.icon,te=G.className,Y=G.onClick,q=G.style,le=G.primaryColor,X=G.secondaryColor,W=(0,s.Z)(G,h),x=n.useRef(),O=S;if(le&&(O={primaryColor:le,secondaryColor:X||(0,M.pw)(le)}),(0,M.C3)(x),(0,M.Kp)((0,M.r)(k),"icon should be icon definiton, but got ".concat(k)),!(0,M.r)(k))return null;var _=k;return _&&typeof _.icon=="function"&&(_=(0,g.Z)((0,g.Z)({},_),{},{icon:_.icon(O.primaryColor,O.secondaryColor)})),(0,M.R_)(_.icon,"svg-".concat(_.name),(0,g.Z)((0,g.Z)({className:te,onClick:Y,style:q,"data-icon":_.name,width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"},W),{},{ref:x}))};z.displayName="IconReact",z.getTwoToneColors=C,z.setTwoToneColors=w;var Z=z;function N(j){var G=(0,M.H9)(j),k=(0,t.Z)(G,2),te=k[0],Y=k[1];return Z.setTwoToneColors({primaryColor:te,secondaryColor:Y})}function L(){var j=Z.getTwoToneColors();return j.calculated?[j.primaryColor,j.secondaryColor]:j.primaryColor}var $=["className","icon","spin","rotate","tabIndex","onClick","twoToneColor"];N(c.blue.primary);var D=n.forwardRef(function(j,G){var k,te=j.className,Y=j.icon,q=j.spin,le=j.rotate,X=j.tabIndex,W=j.onClick,x=j.twoToneColor,O=(0,s.Z)(j,$),_=n.useContext(m.Z),U=_.prefixCls,A=U===void 0?"anticon":U,V=_.rootClassName,fe=l()(V,A,(k={},(0,o.Z)(k,"".concat(A,"-").concat(Y.name),!!Y.name),(0,o.Z)(k,"".concat(A,"-spin"),!!q||Y.name==="loading"),k),te),pe=X;pe===void 0&&W&&(pe=-1);var ge=le?{msTransform:"rotate(".concat(le,"deg)"),transform:"rotate(".concat(le,"deg)")}:void 0,be=(0,M.H9)(x),Te=(0,t.Z)(be,2),Ge=Te[0],qe=Te[1];return n.createElement("span",(0,a.Z)({role:"img","aria-label":Y.name},O,{ref:G,tabIndex:pe,onClick:W,className:fe}),n.createElement(Z,{icon:Y,primaryColor:Ge,secondaryColor:qe,style:ge}))});D.displayName="AntdIcon",D.getTwoToneColor=L,D.setTwoToneColor=N;var T=D},71048:function(b,y,e){"use strict";var a=e(58757),t=(0,a.createContext)({});y.Z=t},39875:function(b,y,e){"use strict";var a=e(60698),t=e(57370),o=e(37734),s=e(47075),n=e(58757),d=e(87608),l=e.n(d),c=e(21319),m=e(71048),g=e(17332),M=["className","component","viewBox","spin","rotate","tabIndex","onClick","children"],h=n.forwardRef(function(S,w){var C=S.className,z=S.component,Z=S.viewBox,N=S.spin,L=S.rotate,$=S.tabIndex,D=S.onClick,T=S.children,j=(0,s.Z)(S,M),G=n.useRef(),k=(0,c.x1)(G,w);(0,g.Kp)(!!(z||T),"Should have `component` prop or `children`."),(0,g.C3)(G);var te=n.useContext(m.Z),Y=te.prefixCls,q=Y===void 0?"anticon":Y,le=te.rootClassName,X=l()(le,q,C),W=l()((0,o.Z)({},"".concat(q,"-spin"),!!N)),x=L?{msTransform:"rotate(".concat(L,"deg)"),transform:"rotate(".concat(L,"deg)")}:void 0,O=(0,t.Z)((0,t.Z)({},g.vD),{},{className:W,style:x,viewBox:Z});Z||delete O.viewBox;var _=function(){return z?n.createElement(z,O,T):T?((0,g.Kp)(!!Z||n.Children.count(T)===1&&n.isValidElement(T)&&n.Children.only(T).type==="use","Make sure that you provide correct `viewBox` prop (default `0 0 1024 1024`) to the icon."),n.createElement("svg",(0,a.Z)({},O,{viewBox:Z}),T)):null},U=$;return U===void 0&&D&&(U=-1),n.createElement("span",(0,a.Z)({role:"img"},j,{ref:k,tabIndex:U,onClick:D,className:X}),_())});h.displayName="AntdIcon",y.Z=h},92183:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},85678:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),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 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"}}]},name:"check-circle",theme:"filled"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},35725:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={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"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},79999:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z"}}]},name:"close-circle",theme:"filled"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},52495:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z"}}]},name:"close",theme:"outlined"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},23605:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},10130:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={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"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},18974:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={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"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},69831:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),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"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},83720:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={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"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},56019:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={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"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},33064:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),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 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"info-circle",theme:"filled"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},99142:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={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"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},25755:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),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"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},12673:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},22283:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},91169:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={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"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},99534:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"}}]},name:"search",theme:"outlined"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},39800:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"}}]},name:"setting",theme:"outlined"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},23926:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z"}}]},name:"up",theme:"outlined"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},98030:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z"}}]},name:"zoom-in",theme:"outlined"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},2528:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z"}}]},name:"zoom-out",theme:"outlined"},s=o,n=e(17202),d=function(m,g){return t.createElement(n.Z,(0,a.Z)({},m,{ref:g,icon:s}))},l=t.forwardRef(d)},17332:function(b,y,e){"use strict";e.d(y,{C3:function(){return L},H9:function(){return z},Kp:function(){return M},R_:function(){return w},pw:function(){return C},r:function(){return h},vD:function(){return Z}});var a=e(57370),t=e(38790),o=e(26134),s=e(61012),n=e.n(s),d=e(39678),l=e(4171),c=e(75556),m=e(58757),g=e(71048);function M($,D){(0,c.ZP)($,"[@ant-design/icons] ".concat(D))}function h($){return(0,t.Z)($)==="object"&&typeof $.name=="string"&&typeof $.theme=="string"&&((0,t.Z)($.icon)==="object"||typeof $.icon=="function")}function S(){var $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.keys($).reduce(function(D,T){var j=$[T];switch(T){case"class":D.className=j,delete D.class;break;default:delete D[T],D[n()(T)]=j}return D},{})}function w($,D,T){return T?m.createElement($.tag,(0,a.Z)((0,a.Z)({key:D},S($.attrs)),T),($.children||[]).map(function(j,G){return w(j,"".concat(D,"-").concat($.tag,"-").concat(G))})):m.createElement($.tag,(0,a.Z)({key:D},S($.attrs)),($.children||[]).map(function(j,G){return w(j,"".concat(D,"-").concat($.tag,"-").concat(G))}))}function C($){return(0,o.generate)($)[0]}function z($){return $?Array.isArray($)?$:[$]:[]}var Z={width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",focusable:"false"},N=` +.anticon { + display: inline-block; + color: inherit; + font-style: normal; + line-height: 0; + text-align: center; + text-transform: none; + vertical-align: -0.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[tabindex] { + cursor: pointer; +} + +.anticon-spin::before, +.anticon-spin { + display: inline-block; + -webkit-animation: loadingCircle 1s infinite linear; + animation: loadingCircle 1s infinite linear; +} + +@-webkit-keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +`,L=function(D){var T=(0,m.useContext)(g.Z),j=T.csp,G=T.prefixCls,k=N;G&&(k=k.replace(/anticon/g,G)),(0,m.useEffect)(function(){var te=D.current,Y=(0,l.A)(te);(0,d.hq)(k,"@ant-design-icons",{prepend:!0,csp:j,attachTo:Y})},[])}},8295:function(b,y,e){"use strict";Object.defineProperty(y,"__esModule",{value:!0}),Object.defineProperty(y,"default",{enumerable:!0,get:function(){return o}});var a=e(58757),t=(0,a.createContext)({}),o=t},38875:function(b,y,e){"use strict";var a;a={value:!0},Object.defineProperty(y,"Z",{enumerable:!0,get:function(){return Z}});var t=g(e(58757)),o=c(e(87608)),s=e(25697),n=c(e(8295)),d=e(96757);function l(N,L,$){return L in N?Object.defineProperty(N,L,{value:$,enumerable:!0,configurable:!0,writable:!0}):N[L]=$,N}function c(N){return N&&N.__esModule?N:{default:N}}function m(N){if(typeof WeakMap!="function")return null;var L=new WeakMap,$=new WeakMap;return(m=function(D){return D?$:L})(N)}function g(N,L){if(!L&&N&&N.__esModule)return N;if(N===null||typeof N!="object"&&typeof N!="function")return{default:N};var $=m(L);if($&&$.has(N))return $.get(N);var D={},T=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var j in N)if(j!=="default"&&Object.prototype.hasOwnProperty.call(N,j)){var G=T?Object.getOwnPropertyDescriptor(N,j):null;G&&(G.get||G.set)?Object.defineProperty(D,j,G):D[j]=N[j]}return D.default=N,$&&$.set(N,D),D}function M(N){for(var L=1;L=0)&&Object.prototype.propertyIsEnumerable.call(N,D)&&($[D]=N[D])}return $}function C(N,L){if(N==null)return{};var $={},D=Object.keys(N),T,j;for(j=0;j=0)&&($[T]=N[T]);return $}var z=t.forwardRef(function(N,L){var $=N.className,D=N.component,T=N.viewBox,j=N.spin,G=N.rotate,k=N.tabIndex,te=N.onClick,Y=N.children,q=w(N,["className","component","viewBox","spin","rotate","tabIndex","onClick","children"]),le=t.useRef(),X=(0,s.useComposeRef)(le,L);(0,d.warning)(!!(D||Y),"Should have `component` prop or `children`."),(0,d.useInsertStyles)(le);var W=t.useContext(n.default),x=W.prefixCls,O=x===void 0?"anticon":x,_=W.rootClassName,U=(0,o.default)(_,O,$),A=(0,o.default)(l({},"".concat(O,"-spin"),!!j)),V=G?{msTransform:"rotate(".concat(G,"deg)"),transform:"rotate(".concat(G,"deg)")}:void 0,fe=S(M({},d.svgBaseProps),{className:A,style:V,viewBox:T});T||delete fe.viewBox;var pe=function(){return D?t.createElement(D,fe,Y):Y?((0,d.warning)(!!T||t.Children.count(Y)===1&&t.isValidElement(Y)&&t.Children.only(Y).type==="use","Make sure that you provide correct `viewBox` prop (default `0 0 1024 1024`) to the icon."),t.createElement("svg",S(M({},fe),{viewBox:T}),Y)):null},ge=k;return ge===void 0&&te&&(ge=-1),t.createElement("span",S(M({role:"img"},q),{ref:X,tabIndex:ge,onClick:te,className:U}),pe())});z.displayName="AntdIcon";var Z=z},96757:function(b,y,e){"use strict";Object.defineProperty(y,"__esModule",{value:!0});function a(j,G){for(var k in G)Object.defineProperty(j,k,{enumerable:!0,get:G[k]})}a(y,{warning:function(){return w},isIconDefinition:function(){return C},normalizeAttrs:function(){return z},generate:function(){return Z},getSecondaryColor:function(){return N},normalizeTwoToneColors:function(){return L},svgBaseProps:function(){return $},iconStyles:function(){return D},useInsertStyles:function(){return T}});var t=e(26134),o=g(e(61012)),s=e(82912),n=e(13393),d=g(e(66780)),l=h(e(58757)),c=g(e(8295));function m(j,G,k){return G in j?Object.defineProperty(j,G,{value:k,enumerable:!0,configurable:!0,writable:!0}):j[G]=k,j}function g(j){return j&&j.__esModule?j:{default:j}}function M(j){if(typeof WeakMap!="function")return null;var G=new WeakMap,k=new WeakMap;return(M=function(te){return te?k:G})(j)}function h(j,G){if(!G&&j&&j.__esModule)return j;if(j===null||typeof j!="object"&&typeof j!="function")return{default:j};var k=M(G);if(k&&k.has(j))return k.get(j);var te={},Y=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var q in j)if(q!=="default"&&Object.prototype.hasOwnProperty.call(j,q)){var le=Y?Object.getOwnPropertyDescriptor(j,q):null;le&&(le.get||le.set)?Object.defineProperty(te,q,le):te[q]=j[q]}return te.default=j,k&&k.set(j,te),te}function S(j){for(var G=1;G0&&arguments[0]!==void 0?arguments[0]:{};return Object.keys(j).reduce(function(G,k){var te=j[k];switch(k){case"class":G.className=te,delete G.class;break;default:delete G[k],G[(0,o.default)(k)]=te}return G},{})}function Z(j,G,k){return k?l.default.createElement(j.tag,S({key:G},z(j.attrs),k),(j.children||[]).map(function(te,Y){return Z(te,"".concat(G,"-").concat(j.tag,"-").concat(Y))})):l.default.createElement(j.tag,S({key:G},z(j.attrs)),(j.children||[]).map(function(te,Y){return Z(te,"".concat(G,"-").concat(j.tag,"-").concat(Y))}))}function N(j){return(0,t.generate)(j)[0]}function L(j){return j?Array.isArray(j)?j:[j]:[]}var $={width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",focusable:"false"},D=` +.anticon { + display: inline-block; + color: inherit; + font-style: normal; + line-height: 0; + text-align: center; + text-transform: none; + vertical-align: -0.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[tabindex] { + cursor: pointer; +} + +.anticon-spin::before, +.anticon-spin { + display: inline-block; + -webkit-animation: loadingCircle 1s infinite linear; + animation: loadingCircle 1s infinite linear; +} + +@-webkit-keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +`,T=function(j){var G=(0,l.useContext)(c.default),k=G.csp,te=G.prefixCls,Y=D;te&&(Y=Y.replace(/anticon/g,te)),(0,l.useEffect)(function(){var q=j.current,le=(0,n.getShadowRoot)(q);(0,s.updateCSS)(Y,"@ant-design-icons",{prepend:!0,csp:k,attachTo:le})},[])}},20117:function(b,y,e){"use strict";e.d(y,{T6:function(){return h},VD:function(){return S},WE:function(){return l},Yt:function(){return w},lC:function(){return o},py:function(){return d},rW:function(){return t},s:function(){return m},ve:function(){return n},vq:function(){return c}});var a=e(33146);function t(C,z,Z){return{r:(0,a.sh)(C,255)*255,g:(0,a.sh)(z,255)*255,b:(0,a.sh)(Z,255)*255}}function o(C,z,Z){C=(0,a.sh)(C,255),z=(0,a.sh)(z,255),Z=(0,a.sh)(Z,255);var N=Math.max(C,z,Z),L=Math.min(C,z,Z),$=0,D=0,T=(N+L)/2;if(N===L)D=0,$=0;else{var j=N-L;switch(D=T>.5?j/(2-N-L):j/(N+L),N){case C:$=(z-Z)/j+(z1&&(Z-=1),Z<.16666666666666666?C+(z-C)*(6*Z):Z<.5?z:Z<.6666666666666666?C+(z-C)*(.6666666666666666-Z)*6:C}function n(C,z,Z){var N,L,$;if(C=(0,a.sh)(C,360),z=(0,a.sh)(z,100),Z=(0,a.sh)(Z,100),z===0)L=Z,$=Z,N=Z;else{var D=Z<.5?Z*(1+z):Z+z-Z*z,T=2*Z-D;N=s(T,D,C+.3333333333333333),L=s(T,D,C),$=s(T,D,C-.3333333333333333)}return{r:N*255,g:L*255,b:$*255}}function d(C,z,Z){C=(0,a.sh)(C,255),z=(0,a.sh)(z,255),Z=(0,a.sh)(Z,255);var N=Math.max(C,z,Z),L=Math.min(C,z,Z),$=0,D=N,T=N-L,j=N===0?0:T/N;if(N===L)$=0;else{switch(N){case C:$=(z-Z)/T+(z>16,g:(C&65280)>>8,b:C&255}}},53099:function(b,y,e){"use strict";e.d(y,{R:function(){return a}});var a={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"}},76981:function(b,y,e){"use strict";e.d(y,{uA:function(){return s}});var a=e(20117),t=e(53099),o=e(33146);function s(S){var w={r:0,g:0,b:0},C=1,z=null,Z=null,N=null,L=!1,$=!1;return typeof S=="string"&&(S=M(S)),typeof S=="object"&&(h(S.r)&&h(S.g)&&h(S.b)?(w=(0,a.rW)(S.r,S.g,S.b),L=!0,$=String(S.r).substr(-1)==="%"?"prgb":"rgb"):h(S.h)&&h(S.s)&&h(S.v)?(z=(0,o.JX)(S.s),Z=(0,o.JX)(S.v),w=(0,a.WE)(S.h,z,Z),L=!0,$="hsv"):h(S.h)&&h(S.s)&&h(S.l)&&(z=(0,o.JX)(S.s),N=(0,o.JX)(S.l),w=(0,a.ve)(S.h,z,N),L=!0,$="hsl"),Object.prototype.hasOwnProperty.call(S,"a")&&(C=S.a)),C=(0,o.Yq)(C),{ok:L,format:S.format||$,r:Math.min(255,Math.max(w.r,0)),g:Math.min(255,Math.max(w.g,0)),b:Math.min(255,Math.max(w.b,0)),a:C}}var n="[-\\+]?\\d+%?",d="[-\\+]?\\d*\\.\\d+%?",l="(?:".concat(d,")|(?:").concat(n,")"),c="[\\s|\\(]+(".concat(l,")[,|\\s]+(").concat(l,")[,|\\s]+(").concat(l,")\\s*\\)?"),m="[\\s|\\(]+(".concat(l,")[,|\\s]+(").concat(l,")[,|\\s]+(").concat(l,")[,|\\s]+(").concat(l,")\\s*\\)?"),g={CSS_UNIT:new RegExp(l),rgb:new RegExp("rgb"+c),rgba:new RegExp("rgba"+m),hsl:new RegExp("hsl"+c),hsla:new RegExp("hsla"+m),hsv:new RegExp("hsv"+c),hsva:new RegExp("hsva"+m),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function M(S){if(S=S.trim().toLowerCase(),S.length===0)return!1;var w=!1;if(t.R[S])S=t.R[S],w=!0;else if(S==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var C=g.rgb.exec(S);return C?{r:C[1],g:C[2],b:C[3]}:(C=g.rgba.exec(S),C?{r:C[1],g:C[2],b:C[3],a:C[4]}:(C=g.hsl.exec(S),C?{h:C[1],s:C[2],l:C[3]}:(C=g.hsla.exec(S),C?{h:C[1],s:C[2],l:C[3],a:C[4]}:(C=g.hsv.exec(S),C?{h:C[1],s:C[2],v:C[3]}:(C=g.hsva.exec(S),C?{h:C[1],s:C[2],v:C[3],a:C[4]}:(C=g.hex8.exec(S),C?{r:(0,a.VD)(C[1]),g:(0,a.VD)(C[2]),b:(0,a.VD)(C[3]),a:(0,a.T6)(C[4]),format:w?"name":"hex8"}:(C=g.hex6.exec(S),C?{r:(0,a.VD)(C[1]),g:(0,a.VD)(C[2]),b:(0,a.VD)(C[3]),format:w?"name":"hex"}:(C=g.hex4.exec(S),C?{r:(0,a.VD)(C[1]+C[1]),g:(0,a.VD)(C[2]+C[2]),b:(0,a.VD)(C[3]+C[3]),a:(0,a.T6)(C[4]+C[4]),format:w?"name":"hex8"}:(C=g.hex3.exec(S),C?{r:(0,a.VD)(C[1]+C[1]),g:(0,a.VD)(C[2]+C[2]),b:(0,a.VD)(C[3]+C[3]),format:w?"name":"hex"}:!1)))))))))}function h(S){return!!g.CSS_UNIT.exec(String(S))}},66671:function(b,y,e){"use strict";e.d(y,{C:function(){return n}});var a=e(20117),t=e(53099),o=e(76981),s=e(33146),n=function(){function l(c,m){c===void 0&&(c=""),m===void 0&&(m={});var g;if(c instanceof l)return c;typeof c=="number"&&(c=(0,a.Yt)(c)),this.originalInput=c;var M=(0,o.uA)(c);this.originalInput=c,this.r=M.r,this.g=M.g,this.b=M.b,this.a=M.a,this.roundA=Math.round(100*this.a)/100,this.format=(g=m.format)!==null&&g!==void 0?g:M.format,this.gradientType=m.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=M.ok}return l.prototype.isDark=function(){return this.getBrightness()<128},l.prototype.isLight=function(){return!this.isDark()},l.prototype.getBrightness=function(){var c=this.toRgb();return(c.r*299+c.g*587+c.b*114)/1e3},l.prototype.getLuminance=function(){var c=this.toRgb(),m,g,M,h=c.r/255,S=c.g/255,w=c.b/255;return h<=.03928?m=h/12.92:m=Math.pow((h+.055)/1.055,2.4),S<=.03928?g=S/12.92:g=Math.pow((S+.055)/1.055,2.4),w<=.03928?M=w/12.92:M=Math.pow((w+.055)/1.055,2.4),.2126*m+.7152*g+.0722*M},l.prototype.getAlpha=function(){return this.a},l.prototype.setAlpha=function(c){return this.a=(0,s.Yq)(c),this.roundA=Math.round(100*this.a)/100,this},l.prototype.isMonochrome=function(){var c=this.toHsl().s;return c===0},l.prototype.toHsv=function(){var c=(0,a.py)(this.r,this.g,this.b);return{h:c.h*360,s:c.s,v:c.v,a:this.a}},l.prototype.toHsvString=function(){var c=(0,a.py)(this.r,this.g,this.b),m=Math.round(c.h*360),g=Math.round(c.s*100),M=Math.round(c.v*100);return this.a===1?"hsv(".concat(m,", ").concat(g,"%, ").concat(M,"%)"):"hsva(".concat(m,", ").concat(g,"%, ").concat(M,"%, ").concat(this.roundA,")")},l.prototype.toHsl=function(){var c=(0,a.lC)(this.r,this.g,this.b);return{h:c.h*360,s:c.s,l:c.l,a:this.a}},l.prototype.toHslString=function(){var c=(0,a.lC)(this.r,this.g,this.b),m=Math.round(c.h*360),g=Math.round(c.s*100),M=Math.round(c.l*100);return this.a===1?"hsl(".concat(m,", ").concat(g,"%, ").concat(M,"%)"):"hsla(".concat(m,", ").concat(g,"%, ").concat(M,"%, ").concat(this.roundA,")")},l.prototype.toHex=function(c){return c===void 0&&(c=!1),(0,a.vq)(this.r,this.g,this.b,c)},l.prototype.toHexString=function(c){return c===void 0&&(c=!1),"#"+this.toHex(c)},l.prototype.toHex8=function(c){return c===void 0&&(c=!1),(0,a.s)(this.r,this.g,this.b,this.a,c)},l.prototype.toHex8String=function(c){return c===void 0&&(c=!1),"#"+this.toHex8(c)},l.prototype.toHexShortString=function(c){return c===void 0&&(c=!1),this.a===1?this.toHexString(c):this.toHex8String(c)},l.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},l.prototype.toRgbString=function(){var c=Math.round(this.r),m=Math.round(this.g),g=Math.round(this.b);return this.a===1?"rgb(".concat(c,", ").concat(m,", ").concat(g,")"):"rgba(".concat(c,", ").concat(m,", ").concat(g,", ").concat(this.roundA,")")},l.prototype.toPercentageRgb=function(){var c=function(m){return"".concat(Math.round((0,s.sh)(m,255)*100),"%")};return{r:c(this.r),g:c(this.g),b:c(this.b),a:this.a}},l.prototype.toPercentageRgbString=function(){var c=function(m){return Math.round((0,s.sh)(m,255)*100)};return this.a===1?"rgb(".concat(c(this.r),"%, ").concat(c(this.g),"%, ").concat(c(this.b),"%)"):"rgba(".concat(c(this.r),"%, ").concat(c(this.g),"%, ").concat(c(this.b),"%, ").concat(this.roundA,")")},l.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var c="#"+(0,a.vq)(this.r,this.g,this.b,!1),m=0,g=Object.entries(t.R);m=0,h=!m&&M&&(c.startsWith("hex")||c==="name");return h?c==="name"&&this.a===0?this.toName():this.toRgbString():(c==="rgb"&&(g=this.toRgbString()),c==="prgb"&&(g=this.toPercentageRgbString()),(c==="hex"||c==="hex6")&&(g=this.toHexString()),c==="hex3"&&(g=this.toHexString(!0)),c==="hex4"&&(g=this.toHex8String(!0)),c==="hex8"&&(g=this.toHex8String()),c==="name"&&(g=this.toName()),c==="hsl"&&(g=this.toHslString()),c==="hsv"&&(g=this.toHsvString()),g||this.toHexString())},l.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},l.prototype.clone=function(){return new l(this.toString())},l.prototype.lighten=function(c){c===void 0&&(c=10);var m=this.toHsl();return m.l+=c/100,m.l=(0,s.V2)(m.l),new l(m)},l.prototype.brighten=function(c){c===void 0&&(c=10);var m=this.toRgb();return m.r=Math.max(0,Math.min(255,m.r-Math.round(255*-(c/100)))),m.g=Math.max(0,Math.min(255,m.g-Math.round(255*-(c/100)))),m.b=Math.max(0,Math.min(255,m.b-Math.round(255*-(c/100)))),new l(m)},l.prototype.darken=function(c){c===void 0&&(c=10);var m=this.toHsl();return m.l-=c/100,m.l=(0,s.V2)(m.l),new l(m)},l.prototype.tint=function(c){return c===void 0&&(c=10),this.mix("white",c)},l.prototype.shade=function(c){return c===void 0&&(c=10),this.mix("black",c)},l.prototype.desaturate=function(c){c===void 0&&(c=10);var m=this.toHsl();return m.s-=c/100,m.s=(0,s.V2)(m.s),new l(m)},l.prototype.saturate=function(c){c===void 0&&(c=10);var m=this.toHsl();return m.s+=c/100,m.s=(0,s.V2)(m.s),new l(m)},l.prototype.greyscale=function(){return this.desaturate(100)},l.prototype.spin=function(c){var m=this.toHsl(),g=(m.h+c)%360;return m.h=g<0?360+g:g,new l(m)},l.prototype.mix=function(c,m){m===void 0&&(m=50);var g=this.toRgb(),M=new l(c).toRgb(),h=m/100,S={r:(M.r-g.r)*h+g.r,g:(M.g-g.g)*h+g.g,b:(M.b-g.b)*h+g.b,a:(M.a-g.a)*h+g.a};return new l(S)},l.prototype.analogous=function(c,m){c===void 0&&(c=6),m===void 0&&(m=30);var g=this.toHsl(),M=360/m,h=[this];for(g.h=(g.h-(M*c>>1)+720)%360;--c;)g.h=(g.h+M)%360,h.push(new l(g));return h},l.prototype.complement=function(){var c=this.toHsl();return c.h=(c.h+180)%360,new l(c)},l.prototype.monochromatic=function(c){c===void 0&&(c=6);for(var m=this.toHsv(),g=m.h,M=m.s,h=m.v,S=[],w=1/c;c--;)S.push(new l({h:g,s:M,v:h})),h=(h+w)%1;return S},l.prototype.splitcomplement=function(){var c=this.toHsl(),m=c.h;return[this,new l({h:(m+72)%360,s:c.s,l:c.l}),new l({h:(m+216)%360,s:c.s,l:c.l})]},l.prototype.onBackground=function(c){var m=this.toRgb(),g=new l(c).toRgb(),M=m.a+g.a*(1-m.a);return new l({r:(m.r*m.a+g.r*g.a*(1-m.a))/M,g:(m.g*m.a+g.g*g.a*(1-m.a))/M,b:(m.b*m.a+g.b*g.a*(1-m.a))/M,a:M})},l.prototype.triad=function(){return this.polyad(3)},l.prototype.tetrad=function(){return this.polyad(4)},l.prototype.polyad=function(c){for(var m=this.toHsl(),g=m.h,M=[this],h=360/c,S=1;S1)&&(c=1),c}function d(c){return c<=1?"".concat(Number(c)*100,"%"):c}function l(c){return c.length===1?"0"+c:String(c)}},57127:function(b,y,e){"use strict";e.d(y,{Z:function(){return G}});var a=e(28314),t=e(58757),o=e(26736),s=e(19075),n=e(75556),d=e(21319),l=t.createContext(null),c=l,m=e(29140),g=e(81334),M=[];function h(k,te){var Y=t.useState(function(){if(!(0,s.Z)())return null;var pe=document.createElement("div");return pe}),q=(0,a.Z)(Y,1),le=q[0],X=t.useRef(!1),W=t.useContext(c),x=t.useState(M),O=(0,a.Z)(x,2),_=O[0],U=O[1],A=W||(X.current?void 0:function(pe){U(function(ge){var be=[pe].concat((0,m.Z)(ge));return be})});function V(){le.parentElement||document.body.appendChild(le),X.current=!0}function fe(){var pe;(pe=le.parentElement)===null||pe===void 0||pe.removeChild(le),X.current=!1}return(0,g.Z)(function(){return k?W?W(V):V():fe(),fe},[k]),(0,g.Z)(function(){_.length&&(_.forEach(function(pe){return pe()}),U(M))},[_]),[le,A]}var S=e(39678),w=e(17502);function C(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}var z="rc-util-locker-".concat(Date.now()),Z=0;function N(k){var te=!!k,Y=t.useState(function(){return Z+=1,"".concat(z,"_").concat(Z)}),q=(0,a.Z)(Y,1),le=q[0];(0,g.Z)(function(){if(te){var X=(0,w.o)(document.body).width,W=C();(0,S.hq)(` +html body { + overflow-y: hidden; + `.concat(W?"width: calc(100% - ".concat(X,"px);"):"",` +}`),le)}else(0,S.jL)(le);return function(){(0,S.jL)(le)}},[te,le])}var L=!1;function $(k){return typeof k=="boolean"&&(L=k),L}var D=function(te){return te===!1?!1:!(0,s.Z)()||!te?null:typeof te=="string"?document.querySelector(te):typeof te=="function"?te():te},T=t.forwardRef(function(k,te){var Y=k.open,q=k.autoLock,le=k.getContainer,X=k.debug,W=k.autoDestroy,x=W===void 0?!0:W,O=k.children,_=t.useState(Y),U=(0,a.Z)(_,2),A=U[0],V=U[1],fe=A||Y;t.useEffect(function(){(x||Y)&&V(Y)},[Y,x]);var pe=t.useState(function(){return D(le)}),ge=(0,a.Z)(pe,2),be=ge[0],Te=ge[1];t.useEffect(function(){var Ke=D(le);Te(Ke!=null?Ke:null)});var Ge=h(fe&&!be,X),qe=(0,a.Z)(Ge,2),Qe=qe[0],ht=qe[1],Et=be!=null?be:Qe;N(q&&Y&&(0,s.Z)()&&(Et===Qe||Et===document.body));var gt=null;if(O&&(0,d.Yr)(O)&&te){var Ht=O;gt=Ht.ref}var $e=(0,d.x1)(gt,te);if(!fe||!(0,s.Z)()||be===void 0)return null;var Xe=Et===!1||$(),rt=O;return te&&(rt=t.cloneElement(O,{ref:$e})),t.createElement(c.Provider,{value:ht},Xe?rt:(0,o.createPortal)(rt,Et))}),j=T,G=j},99863:function(b,y,e){"use strict";e.d(y,{Z:function(){return Ke}});var a=e(57370),t=e(28314),o=e(47075),s=e(57127),n=e(87608),d=e.n(n),l=e(19425),c=e(69188),m=e(4171),g=e(51729),M=e(97071),h=e(81334),S=e(21618),w=e(58757),C=e(26736),z=w.createContext(null),Z=z;function N(ye){return ye?Array.isArray(ye)?ye:[ye]:[]}function L(ye,ne,H,R){return w.useMemo(function(){var P=N(H!=null?H:ne),ae=N(R!=null?R:ne),Q=new Set(P),ie=new Set(ae);return ye&&(Q.has("hover")&&(Q.delete("hover"),Q.add("click")),ie.has("hover")&&(ie.delete("hover"),ie.add("click"))),[Q,ie]},[ye,ne,H,R])}var $=e(46499);function D(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],ne=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],H=arguments.length>2?arguments[2]:void 0;return H?ye[0]===ne[0]:ye[0]===ne[0]&&ye[1]===ne[1]}function T(ye,ne,H,R){for(var P=H.points,ae=Object.keys(ye),Q=0;Q1&&arguments[1]!==void 0?arguments[1]:1;return Number.isNaN(ye)?ne:ye}function Y(ye){return te(parseFloat(ye),0)}function q(ye,ne){var H=(0,a.Z)({},ye);return(ne||[]).forEach(function(R){if(!(R instanceof HTMLBodyElement||R instanceof HTMLHtmlElement)){var P=G(R).getComputedStyle(R),ae=P.overflow,Q=P.overflowClipMargin,ie=P.borderTopWidth,me=P.borderBottomWidth,je=P.borderLeftWidth,Ce=P.borderRightWidth,Se=R.getBoundingClientRect(),We=R.offsetHeight,re=R.clientHeight,se=R.offsetWidth,J=R.clientWidth,de=Y(ie),xe=Y(me),ce=Y(je),Ne=Y(Ce),Oe=te(Math.round(Se.width/se*1e3)/1e3),we=te(Math.round(Se.height/We*1e3)/1e3),Re=(se-J-ce-Ne)*Oe,st=(We-re-de-xe)*we,tt=de*we,Ye=xe*we,ke=ce*Oe,Be=Ne*Oe,it=0,Ve=0;if(ae==="clip"){var xt=Y(Q);it=xt*Oe,Ve=xt*we}var _t=Se.x+ke-it,Ot=Se.y+tt-Ve,wt=_t+Se.width+2*it-ke-Be-Re,Yt=Ot+Se.height+2*Ve-tt-Ye-st;H.left=Math.max(H.left,_t),H.top=Math.max(H.top,Ot),H.right=Math.min(H.right,wt),H.bottom=Math.min(H.bottom,Yt)}}),H}function le(ye){var ne=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,H="".concat(ne),R=H.match(/^(.*)\%$/);return R?ye*(parseFloat(R[1])/100):parseFloat(H)}function X(ye,ne){var H=ne||[],R=(0,t.Z)(H,2),P=R[0],ae=R[1];return[le(ye.width,P),le(ye.height,ae)]}function W(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return[ye[0],ye[1]]}function x(ye,ne){var H=ne[0],R=ne[1],P,ae;return H==="t"?ae=ye.y:H==="b"?ae=ye.y+ye.height:ae=ye.y+ye.height/2,R==="l"?P=ye.x:R==="r"?P=ye.x+ye.width:P=ye.x+ye.width/2,{x:P,y:ae}}function O(ye,ne){var H={t:"b",b:"t",l:"r",r:"l"};return ye.map(function(R,P){return P===ne?H[R]||"c":R}).join("")}function _(ye,ne,H,R,P,ae,Q){var ie=w.useState({ready:!1,offsetX:0,offsetY:0,offsetR:0,offsetB:0,arrowX:0,arrowY:0,scaleX:1,scaleY:1,align:P[R]||{}}),me=(0,t.Z)(ie,2),je=me[0],Ce=me[1],Se=w.useRef(0),We=w.useMemo(function(){return ne?k(ne):[]},[ne]),re=w.useRef({}),se=function(){re.current={}};ye||se();var J=(0,g.Z)(function(){if(ne&&H&&ye){let fa=function(to,Ka){var Qt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Yn,Sn=bt.x+to,Dn=bt.y+Ka,Jn=Sn+Ee,fr=Dn+Ie,kr=Math.max(Sn,Qt.left),Jr=Math.max(Dn,Qt.top),or=Math.min(Jn,Qt.right),Hr=Math.min(fr,Qt.bottom);return Math.max(0,(or-kr)*(Hr-Jr))},Na=function(){rr=bt.y+nn,br=rr+Ie,Gr=bt.x+un,na=Gr+Ee};var ce,Ne,Oe=ne,we=Oe.ownerDocument,Re=G(Oe),st=Re.getComputedStyle(Oe),tt=st.width,Ye=st.height,ke=st.position,Be=Oe.style.left,it=Oe.style.top,Ve=Oe.style.right,xt=Oe.style.bottom,_t=(0,a.Z)((0,a.Z)({},P[R]),ae),Ot=we.createElement("div");(ce=Oe.parentElement)===null||ce===void 0||ce.appendChild(Ot),Ot.style.left="".concat(Oe.offsetLeft,"px"),Ot.style.top="".concat(Oe.offsetTop,"px"),Ot.style.position=ke,Ot.style.height="".concat(Oe.offsetHeight,"px"),Ot.style.width="".concat(Oe.offsetWidth,"px"),Oe.style.left="0",Oe.style.top="0",Oe.style.right="auto",Oe.style.bottom="auto";var wt;if(Array.isArray(H))wt={x:H[0],y:H[1],width:0,height:0};else{var Yt=H.getBoundingClientRect();wt={x:Yt.x,y:Yt.y,width:Yt.width,height:Yt.height}}var bt=Oe.getBoundingClientRect(),ze=we.documentElement,nt=ze.clientWidth,St=ze.clientHeight,ut=ze.scrollWidth,Vt=ze.scrollHeight,Nt=ze.scrollTop,At=ze.scrollLeft,Ie=bt.height,Ee=bt.width,Mt=wt.height,jt=wt.width,He={left:0,top:0,right:nt,bottom:St},et={left:-At,top:-Nt,right:ut-At,bottom:Vt-Nt},Zt=_t.htmlRegion,Ut="visible",Jt="visibleFirst";Zt!=="scroll"&&Zt!==Jt&&(Zt=Ut);var ln=Zt===Jt,Mn=q(et,We),gn=q(He,We),Yn=Zt===Ut?gn:Mn,Gn=ln?gn:Yn;Oe.style.left="auto",Oe.style.top="auto",Oe.style.right="0",Oe.style.bottom="0";var ar=Oe.getBoundingClientRect();Oe.style.left=Be,Oe.style.top=it,Oe.style.right=Ve,Oe.style.bottom=xt,(Ne=Oe.parentElement)===null||Ne===void 0||Ne.removeChild(Ot);var gr=te(Math.round(Ee/parseFloat(tt)*1e3)/1e3),zt=te(Math.round(Ie/parseFloat(Ye)*1e3)/1e3);if(gr===0||zt===0||(0,c.S)(H)&&!(0,$.Z)(H))return;var qt=_t.offset,rn=_t.targetOffset,dn=X(bt,qt),Cn=(0,t.Z)(dn,2),on=Cn[0],pt=Cn[1],mt=X(wt,rn),sn=(0,t.Z)(mt,2),Kt=sn[0],tn=sn[1];wt.x-=Kt,wt.y-=tn;var mn=_t.points||[],fn=(0,t.Z)(mn,2),kn=fn[0],qn=fn[1],ct=W(qn),dt=W(kn),It=x(wt,ct),Ct=x(bt,dt),kt=(0,a.Z)({},_t),un=It.x-Ct.x+on,nn=It.y-Ct.y+pt,xn=fa(un,nn),Rn=fa(un,nn,gn),Mr=x(wt,["t","l"]),er=x(bt,["t","l"]),zn=x(wt,["b","r"]),Ur=x(bt,["b","r"]),pr=_t.overflow||{},sa=pr.adjustX,Nr=pr.adjustY,Zn=pr.shiftX,In=pr.shiftY,Pn=function(Ka){return typeof Ka=="boolean"?Ka:Ka>=0},rr,br,Gr,na;Na();var pa=Pn(Nr),cr=dt[0]===ct[0];if(pa&&dt[0]==="t"&&(br>Gn.bottom||re.current.bt)){var Zr=nn;cr?Zr-=Ie-Mt:Zr=Mr.y-Ur.y-pt;var Ea=fa(un,Zr),ha=fa(un,Zr,gn);Ea>xn||Ea===xn&&(!ln||ha>=Rn)?(re.current.bt=!0,nn=Zr,pt=-pt,kt.points=[O(dt,0),O(ct,0)]):re.current.bt=!1}if(pa&&dt[0]==="b"&&(rrxn||Fn===xn&&(!ln||hr>=Rn)?(re.current.tb=!0,nn=Wn,pt=-pt,kt.points=[O(dt,0),O(ct,0)]):re.current.tb=!1}var Kr=Pn(sa),Ar=dt[1]===ct[1];if(Kr&&dt[1]==="l"&&(na>Gn.right||re.current.rl)){var Pt=un;Ar?Pt-=Ee-jt:Pt=Mr.x-Ur.x-on;var an=fa(Pt,nn),pn=fa(Pt,nn,gn);an>xn||an===xn&&(!ln||pn>=Rn)?(re.current.rl=!0,un=Pt,on=-on,kt.points=[O(dt,1),O(ct,1)]):re.current.rl=!1}if(Kr&&dt[1]==="r"&&(Grxn||Mo===xn&&(!ln||Ua>=Rn)?(re.current.lr=!0,un=qa,on=-on,kt.points=[O(dt,1),O(ct,1)]):re.current.lr=!1}Na();var Wa=Zn===!0?0:Zn;typeof Wa=="number"&&(Grgn.right&&(un-=na-gn.right-on,wt.x>gn.right-Wa&&(un+=wt.x-gn.right+Wa)));var Xa=In===!0?0:In;typeof Xa=="number"&&(rrgn.bottom&&(nn-=br-gn.bottom-pt,wt.y>gn.bottom-Xa&&(nn+=wt.y-gn.bottom+Xa)));var No=bt.x+un,$o=No+Ee,So=bt.y+nn,ft=So+Ie,Rt=wt.x,Ae=Rt+jt,cn=wt.y,An=cn+Mt,hn=Math.max(No,Rt),Xn=Math.min($o,Ae),nr=(hn+Xn)/2,Wr=nr-No,Da=Math.max(So,cn),oa=Math.min(ft,An),Qr=(Da+oa)/2,ra=Qr-So;Q==null||Q(ne,kt);var jr=ar.right-bt.x-(un+bt.width),$r=ar.bottom-bt.y-(nn+bt.height);Ce({ready:!0,offsetX:un/gr,offsetY:nn/zt,offsetR:jr/gr,offsetB:$r/zt,arrowX:Wr/gr,arrowY:ra/zt,scaleX:gr,scaleY:zt,align:kt})}}),de=function(){Se.current+=1;var Ne=Se.current;Promise.resolve().then(function(){Se.current===Ne&&J()})},xe=function(){Ce(function(Ne){return(0,a.Z)((0,a.Z)({},Ne),{},{ready:!1})})};return(0,h.Z)(xe,[R]),(0,h.Z)(function(){ye||xe()},[ye]),[je.ready,je.offsetX,je.offsetY,je.offsetR,je.offsetB,je.arrowX,je.arrowY,je.scaleX,je.scaleY,je.align,de]}var U=e(29140);function A(ye,ne,H,R,P){(0,h.Z)(function(){if(ye&&ne&&H){let Se=function(){R(),P()};var ae=ne,Q=H,ie=k(ae),me=k(Q),je=G(Q),Ce=new Set([je].concat((0,U.Z)(ie),(0,U.Z)(me)));return Ce.forEach(function(We){We.addEventListener("scroll",Se,{passive:!0})}),je.addEventListener("resize",Se,{passive:!0}),R(),function(){Ce.forEach(function(We){We.removeEventListener("scroll",Se),je.removeEventListener("resize",Se)})}}},[ye,ne,H])}var V=e(71219),fe=e(61834);function pe(ye,ne,H,R,P,ae,Q,ie){var me=w.useRef(ye),je=w.useRef(!1);me.current!==ye&&(je.current=!0,me.current=ye),w.useEffect(function(){var Ce=(0,fe.Z)(function(){je.current=!1});return function(){fe.Z.cancel(Ce)}},[ye]),w.useEffect(function(){if(ne&&R&&(!P||ae)){var Ce=function(){var ke=!1,Be=function(xt){var _t=xt.target;ke=Q(_t)},it=function(xt){var _t=xt.target;!je.current&&me.current&&!ke&&!Q(_t)&&ie(!1)};return[Be,it]},Se=Ce(),We=(0,t.Z)(Se,2),re=We[0],se=We[1],J=Ce(),de=(0,t.Z)(J,2),xe=de[0],ce=de[1],Ne=G(R);Ne.addEventListener("mousedown",re,!0),Ne.addEventListener("click",se,!0),Ne.addEventListener("contextmenu",se,!0);var Oe=(0,m.A)(H);if(Oe&&(Oe.addEventListener("mousedown",xe,!0),Oe.addEventListener("click",ce,!0),Oe.addEventListener("contextmenu",ce,!0)),!1)var we,Re,st,tt;return function(){Ne.removeEventListener("mousedown",re,!0),Ne.removeEventListener("click",se,!0),Ne.removeEventListener("contextmenu",se,!0),Oe&&(Oe.removeEventListener("mousedown",xe,!0),Oe.removeEventListener("click",ce,!0),Oe.removeEventListener("contextmenu",ce,!0))}}},[ne,H,R,P,ae])}var ge=e(60698),be=e(17598),Te=e(21319);function Ge(ye){var ne=ye.prefixCls,H=ye.align,R=ye.arrow,P=ye.arrowPos,ae=R||{},Q=ae.className,ie=ae.content,me=P.x,je=me===void 0?0:me,Ce=P.y,Se=Ce===void 0?0:Ce,We=w.useRef();if(!H||!H.points)return null;var re={position:"absolute"};if(H.autoArrow!==!1){var se=H.points[0],J=H.points[1],de=se[0],xe=se[1],ce=J[0],Ne=J[1];de===ce||!["t","b"].includes(de)?re.top=Se:de==="t"?re.top=0:re.bottom=0,xe===Ne||!["l","r"].includes(xe)?re.left=je:xe==="l"?re.left=0:re.right=0}return w.createElement("div",{ref:We,className:d()("".concat(ne,"-arrow"),Q),style:re},ie)}function qe(ye){var ne=ye.prefixCls,H=ye.open,R=ye.zIndex,P=ye.mask,ae=ye.motion;return P?w.createElement(be.ZP,(0,ge.Z)({},ae,{motionAppear:!0,visible:H,removeOnLeave:!0}),function(Q){var ie=Q.className;return w.createElement("div",{style:{zIndex:R},className:d()("".concat(ne,"-mask"),ie)})}):null}var Qe=w.memo(function(ye){var ne=ye.children;return ne},function(ye,ne){return ne.cache}),ht=Qe,Et=w.forwardRef(function(ye,ne){var H=ye.popup,R=ye.className,P=ye.prefixCls,ae=ye.style,Q=ye.target,ie=ye.onVisibleChanged,me=ye.open,je=ye.keepDom,Ce=ye.onClick,Se=ye.mask,We=ye.arrow,re=ye.arrowPos,se=ye.align,J=ye.motion,de=ye.maskMotion,xe=ye.forceRender,ce=ye.getPopupContainer,Ne=ye.autoDestroy,Oe=ye.portal,we=ye.zIndex,Re=ye.onMouseEnter,st=ye.onMouseLeave,tt=ye.onPointerEnter,Ye=ye.ready,ke=ye.offsetX,Be=ye.offsetY,it=ye.offsetR,Ve=ye.offsetB,xt=ye.onAlign,_t=ye.onPrepare,Ot=ye.stretch,wt=ye.targetWidth,Yt=ye.targetHeight,bt=typeof H=="function"?H():H,ze=me||je,nt=(ce==null?void 0:ce.length)>0,St=w.useState(!ce||!nt),ut=(0,t.Z)(St,2),Vt=ut[0],Nt=ut[1];if((0,h.Z)(function(){!Vt&&nt&&Q&&Nt(!0)},[Vt,nt,Q]),!Vt)return null;var At="auto",Ie={left:"-1000vw",top:"-1000vh",right:At,bottom:At};if(Ye||!me){var Ee=se.points,Mt=se._experimental,jt=Mt==null?void 0:Mt.dynamicInset,He=jt&&Ee[0][1]==="r",et=jt&&Ee[0][0]==="b";He?(Ie.right=it,Ie.left=At):(Ie.left=ke,Ie.right=At),et?(Ie.bottom=Ve,Ie.top=At):(Ie.top=Be,Ie.bottom=At)}var Zt={};return Ot&&(Ot.includes("height")&&Yt?Zt.height=Yt:Ot.includes("minHeight")&&Yt&&(Zt.minHeight=Yt),Ot.includes("width")&&wt?Zt.width=wt:Ot.includes("minWidth")&&wt&&(Zt.minWidth=wt)),me||(Zt.pointerEvents="none"),w.createElement(Oe,{open:xe||ze,getContainer:ce&&function(){return ce(Q)},autoDestroy:Ne},w.createElement(qe,{prefixCls:P,open:me,zIndex:we,mask:Se,motion:de}),w.createElement(l.Z,{onResize:xt,disabled:!me},function(Ut){return w.createElement(be.ZP,(0,ge.Z)({motionAppear:!0,motionEnter:!0,motionLeave:!0,removeOnLeave:!1,forceRender:xe,leavedClassName:"".concat(P,"-hidden")},J,{onAppearPrepare:_t,onEnterPrepare:_t,visible:me,onVisibleChanged:function(ln){var Mn;J==null||(Mn=J.onVisibleChanged)===null||Mn===void 0||Mn.call(J,ln),ie(ln)}}),function(Jt,ln){var Mn=Jt.className,gn=Jt.style,Yn=d()(P,Mn,R);return w.createElement("div",{ref:(0,Te.sQ)(Ut,ne,ln),className:Yn,style:(0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({"--arrow-x":"".concat(re.x||0,"px"),"--arrow-y":"".concat(re.y||0,"px")},Ie),Zt),gn),{},{boxSizing:"border-box",zIndex:we},ae),onMouseEnter:Re,onMouseLeave:st,onPointerEnter:tt,onClick:Ce},We&&w.createElement(Ge,{prefixCls:P,arrow:We,arrowPos:re,align:se}),w.createElement(ht,{cache:!me},bt))})}))}),gt=Et,Ht=w.forwardRef(function(ye,ne){var H=ye.children,R=ye.getTriggerDOMNode,P=(0,Te.Yr)(H),ae=w.useCallback(function(ie){(0,Te.mH)(ne,R?R(ie):ie)},[R]),Q=(0,Te.x1)(ae,H.ref);return P?w.cloneElement(H,{ref:Q}):H}),$e=Ht,Xe=["prefixCls","children","action","showAction","hideAction","popupVisible","defaultPopupVisible","onPopupVisibleChange","afterPopupVisibleChange","mouseEnterDelay","mouseLeaveDelay","focusDelay","blurDelay","mask","maskClosable","getPopupContainer","forceRender","autoDestroy","destroyPopupOnHide","popup","popupClassName","popupStyle","popupPlacement","builtinPlacements","popupAlign","zIndex","stretch","getPopupClassNameFromAlign","alignPoint","onPopupClick","onPopupAlign","arrow","popupMotion","maskMotion","popupTransitionName","popupAnimation","maskTransitionName","maskAnimation","className","getTriggerDOMNode"];function rt(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:s.Z,ne=w.forwardRef(function(H,R){var P=H.prefixCls,ae=P===void 0?"rc-trigger-popup":P,Q=H.children,ie=H.action,me=ie===void 0?"hover":ie,je=H.showAction,Ce=H.hideAction,Se=H.popupVisible,We=H.defaultPopupVisible,re=H.onPopupVisibleChange,se=H.afterPopupVisibleChange,J=H.mouseEnterDelay,de=H.mouseLeaveDelay,xe=de===void 0?.1:de,ce=H.focusDelay,Ne=H.blurDelay,Oe=H.mask,we=H.maskClosable,Re=we===void 0?!0:we,st=H.getPopupContainer,tt=H.forceRender,Ye=H.autoDestroy,ke=H.destroyPopupOnHide,Be=H.popup,it=H.popupClassName,Ve=H.popupStyle,xt=H.popupPlacement,_t=H.builtinPlacements,Ot=_t===void 0?{}:_t,wt=H.popupAlign,Yt=H.zIndex,bt=H.stretch,ze=H.getPopupClassNameFromAlign,nt=H.alignPoint,St=H.onPopupClick,ut=H.onPopupAlign,Vt=H.arrow,Nt=H.popupMotion,At=H.maskMotion,Ie=H.popupTransitionName,Ee=H.popupAnimation,Mt=H.maskTransitionName,jt=H.maskAnimation,He=H.className,et=H.getTriggerDOMNode,Zt=(0,o.Z)(H,Xe),Ut=Ye||ke||!1,Jt=w.useState(!1),ln=(0,t.Z)(Jt,2),Mn=ln[0],gn=ln[1];(0,h.Z)(function(){gn((0,S.Z)())},[]);var Yn=w.useRef({}),Gn=w.useContext(Z),ar=w.useMemo(function(){return{registerSubPopup:function(Hr,ca){Yn.current[Hr]=ca,Gn==null||Gn.registerSubPopup(Hr,ca)}}},[Gn]),gr=(0,M.Z)(),zt=w.useState(null),qt=(0,t.Z)(zt,2),rn=qt[0],dn=qt[1],Cn=(0,g.Z)(function(or){(0,c.S)(or)&&rn!==or&&dn(or),Gn==null||Gn.registerSubPopup(gr,or)}),on=w.useState(null),pt=(0,t.Z)(on,2),mt=pt[0],sn=pt[1],Kt=(0,g.Z)(function(or){(0,c.S)(or)&&mt!==or&&sn(or)}),tn=w.Children.only(Q),mn=(tn==null?void 0:tn.props)||{},fn={},kn=(0,g.Z)(function(or){var Hr,ca,Oa=mt;return(Oa==null?void 0:Oa.contains(or))||((Hr=(0,m.A)(Oa))===null||Hr===void 0?void 0:Hr.host)===or||or===Oa||(rn==null?void 0:rn.contains(or))||((ca=(0,m.A)(rn))===null||ca===void 0?void 0:ca.host)===or||or===rn||Object.values(Yn.current).some(function(Ia){return(Ia==null?void 0:Ia.contains(or))||or===Ia})}),qn=j(ae,Nt,Ee,Ie),ct=j(ae,At,jt,Mt),dt=w.useState(We||!1),It=(0,t.Z)(dt,2),Ct=It[0],kt=It[1],un=Se!=null?Se:Ct,nn=(0,g.Z)(function(or){Se===void 0&&kt(or)});(0,h.Z)(function(){kt(Se||!1)},[Se]);var xn=w.useRef(un);xn.current=un;var Rn=(0,g.Z)(function(or){(0,C.flushSync)(function(){un!==or&&(nn(or),re==null||re(or))})}),Mr=w.useRef(),er=function(){clearTimeout(Mr.current)},zn=function(Hr){var ca=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;er(),ca===0?Rn(Hr):Mr.current=setTimeout(function(){Rn(Hr)},ca*1e3)};w.useEffect(function(){return er},[]);var Ur=w.useState(!1),pr=(0,t.Z)(Ur,2),sa=pr[0],Nr=pr[1];(0,h.Z)(function(or){(!or||un)&&Nr(!0)},[un]);var Zn=w.useState(null),In=(0,t.Z)(Zn,2),Pn=In[0],rr=In[1],br=w.useState([0,0]),Gr=(0,t.Z)(br,2),na=Gr[0],pa=Gr[1],cr=function(Hr){pa([Hr.clientX,Hr.clientY])},Zr=_(un,rn,nt?na:mt,xt,Ot,wt,ut),Ea=(0,t.Z)(Zr,11),ha=Ea[0],Wn=Ea[1],Fn=Ea[2],hr=Ea[3],Kr=Ea[4],Ar=Ea[5],Pt=Ea[6],an=Ea[7],pn=Ea[8],qa=Ea[9],Mo=Ea[10],Ua=L(Mn,me,je,Ce),Wa=(0,t.Z)(Ua,2),Xa=Wa[0],No=Wa[1],$o=Xa.has("click"),So=No.has("click")||No.has("contextMenu"),ft=(0,g.Z)(function(){sa||Mo()}),Rt=function(){xn.current&&nt&&So&&zn(!1)};A(un,mt,rn,ft,Rt),(0,h.Z)(function(){ft()},[na,xt]),(0,h.Z)(function(){un&&!(Ot!=null&&Ot[xt])&&ft()},[JSON.stringify(wt)]);var Ae=w.useMemo(function(){var or=T(Ot,ae,qa,nt);return d()(or,ze==null?void 0:ze(qa))},[qa,ze,Ot,ae,nt]);w.useImperativeHandle(R,function(){return{forceAlign:ft}});var cn=w.useState(0),An=(0,t.Z)(cn,2),hn=An[0],Xn=An[1],nr=w.useState(0),Wr=(0,t.Z)(nr,2),Da=Wr[0],oa=Wr[1],Qr=function(){if(bt&&mt){var Hr=mt.getBoundingClientRect();Xn(Hr.width),oa(Hr.height)}},ra=function(){Qr(),ft()},jr=function(Hr){Nr(!1),Mo(),se==null||se(Hr)},$r=function(){return new Promise(function(Hr){Qr(),rr(function(){return Hr})})};(0,h.Z)(function(){Pn&&(Mo(),Pn(),rr(null))},[Pn]);function fa(or,Hr,ca,Oa){fn[or]=function(Ia){var Xr;Oa==null||Oa(Ia),zn(Hr,ca);for(var po=arguments.length,wo=new Array(po>1?po-1:0),Ya=1;Ya1?ca-1:0),Ia=1;Ia1?ca-1:0),Ia=1;IaDate.now()/1e3};function n(){const{performance:C}=o;if(!C||!C.now)return;const z=Date.now()-C.now();return{now:()=>C.now(),timeOrigin:z}}function d(){try{return(0,a.l$)(b,"perf_hooks").performance}catch(C){return}}const l=(0,a.KV)()?d():n(),c=l===void 0?s:{nowSeconds:()=>(l.timeOrigin+l.now())/1e3},m=s.nowSeconds.bind(s),g=c.nowSeconds.bind(c),M=null,h=l!==void 0;let S;const w=(()=>{const{performance:C}=o;if(!C||!C.now){S="none";return}const z=3600*1e3,Z=C.now(),N=Date.now(),L=C.timeOrigin?Math.abs(C.timeOrigin+Z-N):z,$=LB.getRandomValues(new Uint8Array(1))[0]:()=>Math.random()*16;return([1e7]+1e3+4e3+8e3+1e11).replace(/[018]/g,Me=>(Me^(ue()&15)>>Me/4).toString(16))}function T(K){return K.exception&&K.exception.values?K.exception.values[0]:void 0}function j(K){const{message:B,event_id:ue}=K;if(B)return B;const Me=T(K);return Me?Me.type&&Me.value?`${Me.type}: ${Me.value}`:Me.type||Me.value||ue||"":ue||""}function G(K,B,ue){const Me=K.exception=K.exception||{},Le=Me.values=Me.values||[],Je=Le[0]=Le[0]||{};Je.value||(Je.value=B||""),Je.type||(Je.type=ue||"Error")}function k(K,B){const ue=T(K);if(!ue)return;const Me={type:"generic",handled:!0},Le=ue.mechanism;if(ue.mechanism=Ha(Ha(Ha({},Me),Le),B),B&&"data"in B){const Je=Ha(Ha({},Le&&Le.data),B.data);ue.mechanism.data=Je}}const te=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function Y(K){const B=K.match(te)||[],ue=parseInt(B[1],10),Me=parseInt(B[2],10),Le=parseInt(B[3],10);return{buildmetadata:B[5],major:isNaN(ue)?void 0:ue,minor:isNaN(Me)?void 0:Me,patch:isNaN(Le)?void 0:Le,prerelease:B[4]}}function q(K,B,ue=5){if(B.lineno===void 0)return;const Me=K.length,Le=Math.max(Math.min(Me-1,B.lineno-1),0);B.pre_context=K.slice(Math.max(0,Le-ue),Le).map(Je=>snipLine(Je,0)),B.context_line=snipLine(K[Math.min(Me-1,Le)],B.colno||0),B.post_context=K.slice(Math.min(Le+1,Me),Le+1+ue).map(Je=>snipLine(Je,0))}function le(K){if(K&&K.__sentry_captured__)return!0;try{addNonEnumerableProperty(K,"__sentry_captured__",!0)}catch(B){}return!1}function X(K){return Array.isArray(K)?K:[K]}var W=e(43038);const x="Sentry Logger ",O=["debug","info","warn","error","log","assert","trace"];function _(K){if(!("console"in $.n2))return K();const B=$.n2.console,ue={};O.forEach(Me=>{const Le=B[Me]&&B[Me].__sentry_original__;Me in B&&Le&&(ue[Me]=B[Me],B[Me]=Le)});try{return K()}finally{Object.keys(ue).forEach(Me=>{B[Me]=ue[Me]})}}function U(){let K=!1;const B={enable:()=>{K=!0},disable:()=>{K=!1}};return typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__?O.forEach(ue=>{B[ue]=(...Me)=>{K&&_(()=>{$.n2.console[ue](`${x}[${ue}]:`,...Me)})}}):O.forEach(ue=>{B[ue]=()=>{}}),B}let A;typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__?A=(0,$.YO)("logger",U):A=U();const V="production",fe=Object.prototype.toString;function pe(K){switch(fe.call(K)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return Ke(K,Error)}}function ge(K,B){return fe.call(K)===`[object ${B}]`}function be(K){return ge(K,"ErrorEvent")}function Te(K){return ge(K,"DOMError")}function Ge(K){return ge(K,"DOMException")}function qe(K){return ge(K,"String")}function Qe(K){return K===null||typeof K!="object"&&typeof K!="function"}function ht(K){return ge(K,"Object")}function Et(K){return typeof Event!="undefined"&&Ke(K,Event)}function gt(K){return typeof Element!="undefined"&&Ke(K,Element)}function Ht(K){return ge(K,"RegExp")}function $e(K){return!!(K&&K.then&&typeof K.then=="function")}function Xe(K){return ht(K)&&"nativeEvent"in K&&"preventDefault"in K&&"stopPropagation"in K}function rt(K){return typeof K=="number"&&K!==K}function Ke(K,B){try{return K instanceof B}catch(ue){return!1}}var ye;(function(K){K[K.PENDING=0]="PENDING";const ue=1;K[K.RESOLVED=ue]="RESOLVED";const Me=2;K[K.REJECTED=Me]="REJECTED"})(ye||(ye={}));function ne(K){return new R(B=>{B(K)})}function H(K){return new R((B,ue)=>{ue(K)})}class R{constructor(B){R.prototype.__init.call(this),R.prototype.__init2.call(this),R.prototype.__init3.call(this),R.prototype.__init4.call(this),this._state=ye.PENDING,this._handlers=[];try{B(this._resolve,this._reject)}catch(ue){this._reject(ue)}}then(B,ue){return new R((Me,Le)=>{this._handlers.push([!1,Je=>{if(!B)Me(Je);else try{Me(B(Je))}catch(Dt){Le(Dt)}},Je=>{if(!ue)Le(Je);else try{Me(ue(Je))}catch(Dt){Le(Dt)}}]),this._executeHandlers()})}catch(B){return this.then(ue=>ue,B)}finally(B){return new R((ue,Me)=>{let Le,Je;return this.then(Dt=>{Je=!1,Le=Dt,B&&B()},Dt=>{Je=!0,Le=Dt,B&&B()}).then(()=>{if(Je){Me(Le);return}ue(Le)})})}__init(){this._resolve=B=>{this._setResult(ye.RESOLVED,B)}}__init2(){this._reject=B=>{this._setResult(ye.REJECTED,B)}}__init3(){this._setResult=(B,ue)=>{if(this._state===ye.PENDING){if($e(ue)){ue.then(this._resolve,this._reject);return}this._state=B,this._value=ue,this._executeHandlers()}}}__init4(){this._executeHandlers=()=>{if(this._state===ye.PENDING)return;const B=this._handlers.slice();this._handlers=[],B.forEach(ue=>{ue[0]||(this._state===ye.RESOLVED&&ue[1](this._value),this._state===ye.REJECTED&&ue[2](this._value),ue[0]=!0)})}}}const P=(0,$.Rf)(),ae=80;function Q(K,B={}){try{let ue=K;const Me=5,Le=[];let Je=0,Dt=0;const Bt=" > ",lt=Bt.length;let en;const En=Array.isArray(B)?B:B.keyAttrs,wn=!Array.isArray(B)&&B.maxStringLength||ae;for(;ue&&Je++1&&Dt+Le.length*lt+en.length>=wn));)Le.push(en),Dt+=en.length,ue=ue.parentNode;return Le.reverse().join(Bt)}catch(ue){return""}}function ie(K,B){const ue=K,Me=[];let Le,Je,Dt,Bt,lt;if(!ue||!ue.tagName)return"";Me.push(ue.tagName.toLowerCase());const en=B&&B.length?B.filter(wn=>ue.getAttribute(wn)).map(wn=>[wn,ue.getAttribute(wn)]):null;if(en&&en.length)en.forEach(wn=>{Me.push(`[${wn[0]}="${wn[1]}"]`)});else if(ue.id&&Me.push(`#${ue.id}`),Le=ue.className,Le&&qe(Le))for(Je=Le.split(/\s+/),lt=0;ltMe&&(B=Me);let Le=Math.max(B-60,0);Le<5&&(Le=0);let Je=Math.min(Le+140,Me);return Je>Me-5&&(Je=Me),Je===Me&&(Le=Math.max(Je-140,0)),ue=ue.slice(Le,Je),Le>0&&(ue=`'{snip} ${ue}`),Jere(K,Me,ue))}function J(K,B,ue){if(!(B in K))return;const Me=K[B],Le=ue(Me);if(typeof Le=="function")try{xe(Le,Me)}catch(Je){}K[B]=Le}function de(K,B,ue){Object.defineProperty(K,B,{value:ue,writable:!0,configurable:!0})}function xe(K,B){const ue=B.prototype||{};K.prototype=B.prototype=ue,de(K,"__sentry_original__",B)}function ce(K){return K.__sentry_original__}function Ne(K){return Object.keys(K).map(B=>`${encodeURIComponent(B)}=${encodeURIComponent(K[B])}`).join("&")}function Oe(K){if(pe(K))return Ha({message:K.message,name:K.name,stack:K.stack},Re(K));if(Et(K)){const B=Ha({type:K.type,target:we(K.target),currentTarget:we(K.currentTarget)},Re(K));return typeof CustomEvent!="undefined"&&Ke(K,CustomEvent)&&(B.detail=K.detail),B}else return K}function we(K){try{return gt(K)?Q(K):Object.prototype.toString.call(K)}catch(B){return""}}function Re(K){if(typeof K=="object"&&K!==null){const B={};for(const ue in K)Object.prototype.hasOwnProperty.call(K,ue)&&(B[ue]=K[ue]);return B}else return{}}function st(K,B=40){const ue=Object.keys(Oe(K));if(ue.sort(),!ue.length)return"[object has no keys]";if(ue[0].length>=B)return Ce(ue[0],B);for(let Me=ue.length;Me>0;Me--){const Le=ue.slice(0,Me).join(", ");if(!(Le.length>B))return Me===ue.length?Le:Ce(Le,B)}return""}function tt(K){return Ye(K,new Map)}function Ye(K,B){if(ht(K)){const ue=B.get(K);if(ue!==void 0)return ue;const Me={};B.set(K,Me);for(const Le of Object.keys(K))typeof K[Le]!="undefined"&&(Me[Le]=Ye(K[Le],B));return Me}if(Array.isArray(K)){const ue=B.get(K);if(ue!==void 0)return ue;const Me=[];return B.set(K,Me),K.forEach(Le=>{Me.push(Ye(Le,B))}),Me}return K}function ke(K){let B;switch(!0){case K==null:B=new String(K);break;case(typeof K=="symbol"||typeof K=="bigint"):B=Object(K);break;case isPrimitive(K):B=new K.constructor(K);break;default:B=K;break}return B}function Be(K){const B=(0,W.ph)(),ue={sid:D(),init:!0,timestamp:B,started:B,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>xt(ue)};return K&&it(ue,K),ue}function it(K,B={}){if(B.user&&(!K.ipAddress&&B.user.ip_address&&(K.ipAddress=B.user.ip_address),!K.did&&!B.did&&(K.did=B.user.id||B.user.email||B.user.username)),K.timestamp=B.timestamp||(0,W.ph)(),B.ignoreDuration&&(K.ignoreDuration=B.ignoreDuration),B.sid&&(K.sid=B.sid.length===32?B.sid:D()),B.init!==void 0&&(K.init=B.init),!K.did&&B.did&&(K.did=`${B.did}`),typeof B.started=="number"&&(K.started=B.started),K.ignoreDuration)K.duration=void 0;else if(typeof B.duration=="number")K.duration=B.duration;else{const ue=K.timestamp-K.started;K.duration=ue>=0?ue:0}B.release&&(K.release=B.release),B.environment&&(K.environment=B.environment),!K.ipAddress&&B.ipAddress&&(K.ipAddress=B.ipAddress),!K.userAgent&&B.userAgent&&(K.userAgent=B.userAgent),typeof B.errors=="number"&&(K.errors=B.errors),B.status&&(K.status=B.status)}function Ve(K,B){let ue={};B?ue={status:B}:K.status==="ok"&&(ue={status:"exited"}),it(K,ue)}function xt(K){return tt({sid:`${K.sid}`,init:K.init,started:new Date(K.started*1e3).toISOString(),timestamp:new Date(K.timestamp*1e3).toISOString(),status:K.status,errors:K.errors,did:typeof K.did=="number"||typeof K.did=="string"?`${K.did}`:void 0,duration:K.duration,attrs:{release:K.release,environment:K.environment,ip_address:K.ipAddress,user_agent:K.userAgent}})}const _t=100;class Ot{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext=bt()}static clone(B){const ue=new Ot;return B&&(ue._breadcrumbs=[...B._breadcrumbs],ue._tags=Ha({},B._tags),ue._extra=Ha({},B._extra),ue._contexts=Ha({},B._contexts),ue._user=B._user,ue._level=B._level,ue._span=B._span,ue._session=B._session,ue._transactionName=B._transactionName,ue._fingerprint=B._fingerprint,ue._eventProcessors=[...B._eventProcessors],ue._requestSession=B._requestSession,ue._attachments=[...B._attachments],ue._sdkProcessingMetadata=Ha({},B._sdkProcessingMetadata),ue._propagationContext=Ha({},B._propagationContext)),ue}addScopeListener(B){this._scopeListeners.push(B)}addEventProcessor(B){return this._eventProcessors.push(B),this}setUser(B){return this._user=B||{},this._session&&it(this._session,{user:B}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(B){return this._requestSession=B,this}setTags(B){return this._tags=Ha(Ha({},this._tags),B),this._notifyScopeListeners(),this}setTag(B,ue){return this._tags=Ks(Ha({},this._tags),{[B]:ue}),this._notifyScopeListeners(),this}setExtras(B){return this._extra=Ha(Ha({},this._extra),B),this._notifyScopeListeners(),this}setExtra(B,ue){return this._extra=Ks(Ha({},this._extra),{[B]:ue}),this._notifyScopeListeners(),this}setFingerprint(B){return this._fingerprint=B,this._notifyScopeListeners(),this}setLevel(B){return this._level=B,this._notifyScopeListeners(),this}setTransactionName(B){return this._transactionName=B,this._notifyScopeListeners(),this}setContext(B,ue){return ue===null?delete this._contexts[B]:this._contexts[B]=ue,this._notifyScopeListeners(),this}setSpan(B){return this._span=B,this._notifyScopeListeners(),this}getSpan(){return this._span}getTransaction(){const B=this.getSpan();return B&&B.transaction}setSession(B){return B?this._session=B:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(B){if(!B)return this;if(typeof B=="function"){const ue=B(this);return ue instanceof Ot?ue:this}return B instanceof Ot?(this._tags=Ha(Ha({},this._tags),B._tags),this._extra=Ha(Ha({},this._extra),B._extra),this._contexts=Ha(Ha({},this._contexts),B._contexts),B._user&&Object.keys(B._user).length&&(this._user=B._user),B._level&&(this._level=B._level),B._fingerprint&&(this._fingerprint=B._fingerprint),B._requestSession&&(this._requestSession=B._requestSession),B._propagationContext&&(this._propagationContext=B._propagationContext)):ht(B)&&(B=B,this._tags=Ha(Ha({},this._tags),B.tags),this._extra=Ha(Ha({},this._extra),B.extra),this._contexts=Ha(Ha({},this._contexts),B.contexts),B.user&&(this._user=B.user),B.level&&(this._level=B.level),B.fingerprint&&(this._fingerprint=B.fingerprint),B.requestSession&&(this._requestSession=B.requestSession),B.propagationContext&&(this._propagationContext=B.propagationContext)),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._span=void 0,this._session=void 0,this._notifyScopeListeners(),this._attachments=[],this._propagationContext=bt(),this}addBreadcrumb(B,ue){const Me=typeof ue=="number"?ue:_t;if(Me<=0)return this;const Le=Ha({timestamp:(0,W.yW)()},B);return this._breadcrumbs=[...this._breadcrumbs,Le].slice(-Me),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(B){return this._attachments.push(B),this}getAttachments(){return this._attachments}clearAttachments(){return this._attachments=[],this}applyToEvent(B,ue={}){if(this._extra&&Object.keys(this._extra).length&&(B.extra=Ha(Ha({},this._extra),B.extra)),this._tags&&Object.keys(this._tags).length&&(B.tags=Ha(Ha({},this._tags),B.tags)),this._user&&Object.keys(this._user).length&&(B.user=Ha(Ha({},this._user),B.user)),this._contexts&&Object.keys(this._contexts).length&&(B.contexts=Ha(Ha({},this._contexts),B.contexts)),this._level&&(B.level=this._level),this._transactionName&&(B.transaction=this._transactionName),this._span){B.contexts=Ha({trace:this._span.getTraceContext()},B.contexts);const Me=this._span.transaction;if(Me){B.sdkProcessingMetadata=Ha({dynamicSamplingContext:Me.getDynamicSamplingContext()},B.sdkProcessingMetadata);const Le=Me.name;Le&&(B.tags=Ha({transaction:Le},B.tags))}}return this._applyFingerprint(B),B.breadcrumbs=[...B.breadcrumbs||[],...this._breadcrumbs],B.breadcrumbs=B.breadcrumbs.length>0?B.breadcrumbs:void 0,B.sdkProcessingMetadata=Ks(Ha(Ha({},B.sdkProcessingMetadata),this._sdkProcessingMetadata),{propagationContext:this._propagationContext}),this._notifyEventProcessors([...wt(),...this._eventProcessors],B,ue)}setSDKProcessingMetadata(B){return this._sdkProcessingMetadata=Ha(Ha({},this._sdkProcessingMetadata),B),this}setPropagationContext(B){return this._propagationContext=B,this}getPropagationContext(){return this._propagationContext}_notifyEventProcessors(B,ue,Me,Le=0){return new R((Je,Dt)=>{const Bt=B[Le];if(ue===null||typeof Bt!="function")Je(ue);else{const lt=Bt(Ha({},ue),Me);(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&Bt.id&<===null&&A.log(`Event processor "${Bt.id}" dropped event`),$e(lt)?lt.then(en=>this._notifyEventProcessors(B,en,Me,Le+1).then(Je)).then(null,Dt):this._notifyEventProcessors(B,lt,Me,Le+1).then(Je).then(null,Dt)}})}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(B=>{B(this)}),this._notifyingListeners=!1)}_applyFingerprint(B){B.fingerprint=B.fingerprint?X(B.fingerprint):[],this._fingerprint&&(B.fingerprint=B.fingerprint.concat(this._fingerprint)),B.fingerprint&&!B.fingerprint.length&&delete B.fingerprint}}function wt(){return(0,$.YO)("globalEventProcessors",()=>[])}function Yt(K){wt().push(K)}function bt(){return{traceId:D(),spanId:D().substring(16),sampled:!1}}const ze=4,nt=100;class St{constructor(B,ue=new Ot,Me=ze){this._version=Me,this._stack=[{scope:ue}],B&&this.bindClient(B)}isOlderThan(B){return this._version{Je.captureException(B,Ks(Ha({originalException:B,syntheticException:Le},ue),{event_id:Me}),Dt)}),Me}captureMessage(B,ue,Me){const Le=this._lastEventId=Me&&Me.event_id?Me.event_id:D(),Je=new Error(B);return this._withClient((Dt,Bt)=>{Dt.captureMessage(B,ue,Ks(Ha({originalException:B,syntheticException:Je},Me),{event_id:Le}),Bt)}),Le}captureEvent(B,ue){const Me=ue&&ue.event_id?ue.event_id:D();return B.type||(this._lastEventId=Me),this._withClient((Le,Je)=>{Le.captureEvent(B,Ks(Ha({},ue),{event_id:Me}),Je)}),Me}lastEventId(){return this._lastEventId}addBreadcrumb(B,ue){const{scope:Me,client:Le}=this.getStackTop();if(!Le)return;const{beforeBreadcrumb:Je=null,maxBreadcrumbs:Dt=nt}=Le.getOptions&&Le.getOptions()||{};if(Dt<=0)return;const Bt=(0,W.yW)(),lt=Ha({timestamp:Bt},B),en=Je?_(()=>Je(lt,ue)):lt;en!==null&&(Le.emit&&Le.emit("beforeAddBreadcrumb",en,ue),Me.addBreadcrumb(en,Dt))}setUser(B){this.getScope().setUser(B)}setTags(B){this.getScope().setTags(B)}setExtras(B){this.getScope().setExtras(B)}setTag(B,ue){this.getScope().setTag(B,ue)}setExtra(B,ue){this.getScope().setExtra(B,ue)}setContext(B,ue){this.getScope().setContext(B,ue)}configureScope(B){const{scope:ue,client:Me}=this.getStackTop();Me&&B(ue)}run(B){const ue=Vt(this);try{B(this)}finally{Vt(ue)}}getIntegration(B){const ue=this.getClient();if(!ue)return null;try{return ue.getIntegration(B)}catch(Me){return(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn(`Cannot retrieve integration ${B.id} from the current Hub`),null}}startTransaction(B,ue){const Me=this._callExtensionMethod("startTransaction",B,ue);if((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&!Me){const Le=this.getClient();console.warn(Le?`Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init': +Sentry.addTracingExtensions(); +Sentry.init({...}); +`:"Tracing extension 'startTransaction' is missing. You should 'init' the SDK before calling 'startTransaction'")}return Me}traceHeaders(){return this._callExtensionMethod("traceHeaders")}captureSession(B=!1){if(B)return this.endSession();this._sendSessionUpdate()}endSession(){const ue=this.getStackTop().scope,Me=ue.getSession();Me&&Ve(Me),this._sendSessionUpdate(),ue.setSession()}startSession(B){const{scope:ue,client:Me}=this.getStackTop(),{release:Le,environment:Je=V}=Me&&Me.getOptions()||{},{userAgent:Dt}=$.n2.navigator||{},Bt=Be(Ha(Ha({release:Le,environment:Je,user:ue.getUser()},Dt&&{userAgent:Dt}),B)),lt=ue.getSession&&ue.getSession();return lt&<.status==="ok"&&it(lt,{status:"exited"}),this.endSession(),ue.setSession(Bt),Bt}shouldSendDefaultPii(){const B=this.getClient(),ue=B&&B.getOptions();return!!(ue&&ue.sendDefaultPii)}_sendSessionUpdate(){const{scope:B,client:ue}=this.getStackTop(),Me=B.getSession();Me&&ue&&ue.captureSession&&ue.captureSession(Me)}_withClient(B){const{scope:ue,client:Me}=this.getStackTop();Me&&B(Me,ue)}_callExtensionMethod(B,...ue){const Le=ut().__SENTRY__;if(Le&&Le.extensions&&typeof Le.extensions[B]=="function")return Le.extensions[B].apply(this,ue);(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn(`Extension method ${B} couldn't be found, doing nothing.`)}}function ut(){return $.n2.__SENTRY__=$.n2.__SENTRY__||{extensions:{},hub:void 0},$.n2}function Vt(K){const B=ut(),ue=He(B);return et(B,K),ue}function Nt(){const K=ut();if(K.__SENTRY__&&K.__SENTRY__.acs){const B=K.__SENTRY__.acs.getCurrentHub();if(B)return B}return At(K)}function At(K=ut()){return(!jt(K)||He(K).isOlderThan(ze))&&et(K,new St),He(K)}function Ie(K,B=At()){if(!jt(K)||He(K).isOlderThan(ze)){const ue=B.getStackTop();et(K,new St(ue.client,Scope.clone(ue.scope)))}}function Ee(K){const B=ut();B.__SENTRY__=B.__SENTRY__||{},B.__SENTRY__.acs=K}function Mt(K,B={}){const ue=ut();return ue.__SENTRY__&&ue.__SENTRY__.acs?ue.__SENTRY__.acs.runWithAsyncContext(K,B):K()}function jt(K){return!!(K&&K.__SENTRY__&&K.__SENTRY__.hub)}function He(K){return(0,$.YO)("hub",()=>new St,K)}function et(K,B){if(!K)return!1;const ue=K.__SENTRY__=K.__SENTRY__||{};return ue.hub=B,!0}const Zt=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/],Ut=[/^.*healthcheck.*$/,/^.*healthy.*$/,/^.*live.*$/,/^.*ready.*$/,/^.*heartbeat.*$/,/^.*\/health$/,/^.*\/healthz$/];class Jt{static __initStatic(){this.id="InboundFilters"}constructor(B={}){this.name=Jt.id,this._options=B}setupOnce(B,ue){const Me=Le=>{const Je=ue();if(Je){const Dt=Je.getIntegration(Jt);if(Dt){const Bt=Je.getClient(),lt=Bt?Bt.getOptions():{},en=ln(Dt._options,lt);return Mn(Le,en)?null:Le}}return Le};Me.id=this.name,B(Me)}}Jt.__initStatic();function ln(K={},B={}){return{allowUrls:[...K.allowUrls||[],...B.allowUrls||[]],denyUrls:[...K.denyUrls||[],...B.denyUrls||[]],ignoreErrors:[...K.ignoreErrors||[],...B.ignoreErrors||[],...K.disableErrorDefaults?[]:Zt],ignoreTransactions:[...K.ignoreTransactions||[],...B.ignoreTransactions||[],...K.disableTransactionDefaults?[]:Ut],ignoreInternal:K.ignoreInternal!==void 0?K.ignoreInternal:!0}}function Mn(K,B){return B.ignoreInternal&&zt(K)?((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn(`Event dropped due to being internal Sentry Error. +Event: ${j(K)}`),!0):gn(K,B.ignoreErrors)?((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${j(K)}`),!0):Yn(K,B.ignoreTransactions)?((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${j(K)}`),!0):Gn(K,B.denyUrls)?((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn(`Event dropped due to being matched by \`denyUrls\` option. +Event: ${j(K)}. +Url: ${rn(K)}`),!0):ar(K,B.allowUrls)?!1:((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Event: ${j(K)}. +Url: ${rn(K)}`),!0)}function gn(K,B){return K.type||!B||!B.length?!1:gr(K).some(ue=>se(ue,B))}function Yn(K,B){if(K.type!=="transaction"||!B||!B.length)return!1;const ue=K.transaction;return ue?se(ue,B):!1}function Gn(K,B){if(!B||!B.length)return!1;const ue=rn(K);return ue?se(ue,B):!1}function ar(K,B){if(!B||!B.length)return!0;const ue=rn(K);return ue?se(ue,B):!0}function gr(K){if(K.message)return[K.message];if(K.exception){const{values:B}=K.exception;try{const{type:ue="",value:Me=""}=B&&B[B.length-1]||{};return[`${Me}`,`${ue}: ${Me}`]}catch(ue){return(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.error(`Cannot extract message for event ${j(K)}`),[]}}return[]}function zt(K){try{return K.exception.values[0].type==="SentryError"}catch(B){}return!1}function qt(K=[]){for(let B=K.length-1;B>=0;B--){const ue=K[B];if(ue&&ue.filename!==""&&ue.filename!=="[native code]")return ue.filename||null}return null}function rn(K){try{let B;try{B=K.exception.values[0].stacktrace.frames}catch(ue){}return B?qt(B):null}catch(B){return(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.error(`Cannot extract url for event ${j(K)}`),null}}let dn;class Cn{static __initStatic(){this.id="FunctionToString"}constructor(){this.name=Cn.id}setupOnce(){dn=Function.prototype.toString;try{Function.prototype.toString=function(...B){const ue=ce(this)||this;return dn.apply(ue,B)}}catch(B){}}}Cn.__initStatic();const on=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function pt(K){return K==="http"||K==="https"}function mt(K,B=!1){const{host:ue,path:Me,pass:Le,port:Je,projectId:Dt,protocol:Bt,publicKey:lt}=K;return`${Bt}://${lt}${B&&Le?`:${Le}`:""}@${ue}${Je?`:${Je}`:""}/${Me&&`${Me}/`}${Dt}`}function sn(K){const B=on.exec(K);if(!B){console.error(`Invalid Sentry Dsn: ${K}`);return}const[ue,Me,Le="",Je,Dt="",Bt]=B.slice(1);let lt="",en=Bt;const En=en.split("/");if(En.length>1&&(lt=En.slice(0,-1).join("/"),en=En.pop()),en){const wn=en.match(/^\d+/);wn&&(en=wn[0])}return Kt({host:Je,pass:Le,path:lt,projectId:en,port:Dt,protocol:ue,publicKey:Me})}function Kt(K){return{protocol:K.protocol,publicKey:K.publicKey||"",pass:K.pass||"",host:K.host,port:K.port||"",path:K.path||"",projectId:K.projectId}}function tn(K){if(!(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__))return!0;const{port:B,projectId:ue,protocol:Me}=K;return["protocol","publicKey","host","projectId"].find(Dt=>K[Dt]?!1:(A.error(`Invalid Sentry Dsn: ${Dt} missing`),!0))?!1:ue.match(/^\d+$/)?pt(Me)?B&&isNaN(parseInt(B,10))?(A.error(`Invalid Sentry Dsn: Invalid port ${B}`),!1):!0:(A.error(`Invalid Sentry Dsn: Invalid protocol ${Me}`),!1):(A.error(`Invalid Sentry Dsn: Invalid projectId ${ue}`),!1)}function mn(K){const B=typeof K=="string"?sn(K):Kt(K);if(!(!B||!tn(B)))return B}const fn="7";function kn(K){const B=K.protocol?`${K.protocol}:`:"",ue=K.port?`:${K.port}`:"";return`${B}//${K.host}${ue}${K.path?`/${K.path}`:""}/api/`}function qn(K){return`${kn(K)}${K.projectId}/envelope/`}function ct(K,B){return urlEncode(Ha({sentry_key:K.publicKey,sentry_version:fn},B&&{sentry_client:`${B.name}/${B.version}`}))}function dt(K,B={}){const ue=typeof B=="string"?B:B.tunnel,Me=typeof B=="string"||!B._metadata?void 0:B._metadata.sdk;return ue||`${qn(K)}?${ct(K,Me)}`}function It(K,B){const ue=mn(K);if(!ue)return"";const Me=`${kn(ue)}embed/error-page/`;let Le=`dsn=${mt(ue)}`;for(const Je in B)if(Je!=="dsn")if(Je==="user"){const Dt=B.user;if(!Dt)continue;Dt.name&&(Le+=`&name=${encodeURIComponent(Dt.name)}`),Dt.email&&(Le+=`&email=${encodeURIComponent(Dt.email)}`)}else Le+=`&${encodeURIComponent(Je)}=${encodeURIComponent(B[Je])}`;return`${Me}?${Le}`}function Ct(K,B){return Nt().captureException(K,{captureContext:B})}function kt(K,B){const ue=typeof B=="string"?B:void 0,Me=typeof B!="string"?{captureContext:B}:void 0;return getCurrentHub().captureMessage(K,ue,Me)}function un(K,B){return getCurrentHub().captureEvent(K,B)}function nn(K){getCurrentHub().configureScope(K)}function xn(K){getCurrentHub().addBreadcrumb(K)}function Rn(K,B){getCurrentHub().setContext(K,B)}function Mr(K){getCurrentHub().setExtras(K)}function er(K,B){getCurrentHub().setExtra(K,B)}function zn(K){getCurrentHub().setTags(K)}function Ur(K,B){getCurrentHub().setTag(K,B)}function pr(K){getCurrentHub().setUser(K)}function sa(K){Nt().withScope(K)}function Nr(K,B){return getCurrentHub().startTransaction(Ha({},K),B)}function Zn(K,B){const ue=getCurrentHub(),Me=ue.getScope(),Le=ue.getClient();if(!Le)(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&logger.warn("Cannot capture check-in. No client defined.");else if(!Le.captureCheckIn)(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&logger.warn("Cannot capture check-in. Client does not support sending check-ins.");else return Le.captureCheckIn(K,B,Me);return uuid4()}function In(K){return xf(this,null,function*(){const B=getCurrentHub().getClient();return B?B.flush(K):((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&logger.warn("Cannot flush events. No client defined."),Promise.resolve(!1))})}function Pn(K){return xf(this,null,function*(){const B=getCurrentHub().getClient();return B?B.close(K):((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&logger.warn("Cannot flush events and disable SDK. No client defined."),Promise.resolve(!1))})}function rr(){return getCurrentHub().lastEventId()}const br=$.n2;let Gr=0;function na(){return Gr>0}function pa(){Gr++,setTimeout(()=>{Gr--})}function cr(K,B={},ue){if(typeof K!="function")return K;try{const Le=K.__sentry_wrapped__;if(Le)return Le;if(ce(K))return K}catch(Le){return K}const Me=function(){const Le=Array.prototype.slice.call(arguments);try{ue&&typeof ue=="function"&&ue.apply(this,arguments);const Je=Le.map(Dt=>cr(Dt,B));return K.apply(this,Je)}catch(Je){throw pa(),sa(Dt=>{Dt.addEventProcessor(Bt=>(B.mechanism&&(G(Bt,void 0,void 0),k(Bt,B.mechanism)),Bt.extra=Ks(Ha({},Bt.extra),{arguments:Le}),Bt)),Ct(Je)}),Je}};try{for(const Le in K)Object.prototype.hasOwnProperty.call(K,Le)&&(Me[Le]=K[Le])}catch(Le){}xe(Me,K),de(K,"__sentry_wrapped__",Me);try{Object.getOwnPropertyDescriptor(Me,"name").configurable&&Object.defineProperty(Me,"name",{get(){return K.name}})}catch(Le){}return Me}const Zr=50,Ea=/\(error: (.*)\)/,ha=/captureMessage|captureException/;function Wn(...K){const B=K.sort((ue,Me)=>ue[0]-Me[0]).map(ue=>ue[1]);return(ue,Me=0)=>{const Le=[],Je=ue.split(` +`);for(let Dt=Me;Dt1024)continue;const lt=Ea.test(Bt)?Bt.replace(Ea,"$1"):Bt;if(!lt.match(/\S*Error: /)){for(const en of B){const En=en(lt);if(En){Le.push(En);break}}if(Le.length>=Zr)break}}return hr(Le)}}function Fn(K){return Array.isArray(K)?Wn(...K):K}function hr(K){if(!K.length)return[];const B=Array.from(K);return/sentryWrapped/.test(B[B.length-1].function||"")&&B.pop(),B.reverse(),ha.test(B[B.length-1].function||"")&&(B.pop(),ha.test(B[B.length-1].function||"")&&B.pop()),B.slice(0,Zr).map(ue=>Ks(Ha({},ue),{filename:ue.filename||B[B.length-1].filename,function:ue.function||"?"}))}const Kr="";function Ar(K){try{return!K||typeof K!="function"?Kr:K.name||Kr}catch(B){return Kr}}function Pt(K){return[90,node(K)]}const an=(0,$.Rf)();function pn(){try{return new ErrorEvent(""),!0}catch(K){return!1}}function qa(){try{return new DOMError(""),!0}catch(K){return!1}}function Mo(){try{return new DOMException(""),!0}catch(K){return!1}}function Ua(){if(!("fetch"in an))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch(K){return!1}}function Wa(K){return K&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(K.toString())}function Xa(){if(!Ua())return!1;if(Wa(an.fetch))return!0;let K=!1;const B=an.document;if(B&&typeof B.createElement=="function")try{const ue=B.createElement("iframe");ue.hidden=!0,B.head.appendChild(ue),ue.contentWindow&&ue.contentWindow.fetch&&(K=Wa(ue.contentWindow.fetch)),B.head.removeChild(ue)}catch(ue){(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",ue)}return K}function No(){return"ReportingObserver"in an}function $o(){if(!Ua())return!1;try{return new Request("_",{referrerPolicy:"origin"}),!0}catch(K){return!1}}const So=(0,$.Rf)();function ft(){const K=So.chrome,B=K&&K.app&&K.app.runtime,ue="history"in So&&!!So.history.pushState&&!!So.history.replaceState;return!B&&ue}const Rt=(0,$.Rf)(),Ae="__sentry_xhr_v2__",cn={},An={};function hn(K){if(!An[K])switch(An[K]=!0,K){case"console":Wr();break;case"dom":Jn();break;case"xhr":jr();break;case"fetch":Da();break;case"history":fa();break;case"error":kr();break;case"unhandledrejection":or();break;default:(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn("unknown instrumentation type:",K);return}}function Xn(K,B){cn[K]=cn[K]||[],cn[K].push(B),hn(K)}function nr(K,B){if(!(!K||!cn[K]))for(const ue of cn[K]||[])try{ue(B)}catch(Me){(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.error(`Error while triggering instrumentation handler. +Type: ${K} +Name: ${Ar(ue)} +Error:`,Me)}}function Wr(){"console"in Rt&&O.forEach(function(K){K in Rt.console&&J(Rt.console,K,function(B){return function(...ue){nr("console",{args:ue,level:K}),B&&B.apply(Rt.console,ue)}})})}function Da(){Xa()&&J(Rt,"fetch",function(K){return function(...B){const{method:ue,url:Me}=ra(B),Le={args:B,fetchData:{method:ue,url:Me},startTimestamp:Date.now()};return nr("fetch",Ha({},Le)),K.apply(Rt,B).then(Je=>(nr("fetch",Ks(Ha({},Le),{endTimestamp:Date.now(),response:Je})),Je),Je=>{throw nr("fetch",Ks(Ha({},Le),{endTimestamp:Date.now(),error:Je})),Je})}})}function oa(K,B){return!!K&&typeof K=="object"&&!!K[B]}function Qr(K){return typeof K=="string"?K:K?oa(K,"url")?K.url:K.toString?K.toString():"":""}function ra(K){if(K.length===0)return{method:"GET",url:""};if(K.length===2){const[ue,Me]=K;return{url:Qr(ue),method:oa(Me,"method")?String(Me.method).toUpperCase():"GET"}}const B=K[0];return{url:Qr(B),method:oa(B,"method")?String(B.method).toUpperCase():"GET"}}function jr(){if(!("XMLHttpRequest"in Rt))return;const K=XMLHttpRequest.prototype;J(K,"open",function(B){return function(...ue){const Me=ue[1],Le=this[Ae]={method:qe(ue[0])?ue[0].toUpperCase():ue[0],url:ue[1],request_headers:{}};qe(Me)&&Le.method==="POST"&&Me.match(/sentry_key/)&&(this.__sentry_own_request__=!0);const Je=()=>{const Dt=this[Ae];if(Dt&&this.readyState===4){try{Dt.status_code=this.status}catch(Bt){}nr("xhr",{args:ue,endTimestamp:Date.now(),startTimestamp:Date.now(),xhr:this})}};return"onreadystatechange"in this&&typeof this.onreadystatechange=="function"?J(this,"onreadystatechange",function(Dt){return function(...Bt){return Je(),Dt.apply(this,Bt)}}):this.addEventListener("readystatechange",Je),J(this,"setRequestHeader",function(Dt){return function(...Bt){const[lt,en]=Bt,En=this[Ae];return En&&(En.request_headers[lt.toLowerCase()]=en),Dt.apply(this,Bt)}}),B.apply(this,ue)}}),J(K,"send",function(B){return function(...ue){const Me=this[Ae];return Me&&ue[0]!==void 0&&(Me.body=ue[0]),nr("xhr",{args:ue,startTimestamp:Date.now(),xhr:this}),B.apply(this,ue)}})}let $r;function fa(){if(!ft())return;const K=Rt.onpopstate;Rt.onpopstate=function(...ue){const Me=Rt.location.href,Le=$r;if($r=Me,nr("history",{from:Le,to:Me}),K)try{return K.apply(this,ue)}catch(Je){}};function B(ue){return function(...Me){const Le=Me.length>2?Me[2]:void 0;if(Le){const Je=$r,Dt=String(Le);$r=Dt,nr("history",{from:Je,to:Dt})}return ue.apply(this,Me)}}J(Rt.history,"pushState",B),J(Rt.history,"replaceState",B)}const Na=1e3;let to,Ka;function Qt(K,B){if(!K||K.type!==B.type)return!0;try{if(K.target!==B.target)return!0}catch(ue){}return!1}function Sn(K){if(K.type!=="keypress")return!1;try{const B=K.target;if(!B||!B.tagName)return!0;if(B.tagName==="INPUT"||B.tagName==="TEXTAREA"||B.isContentEditable)return!1}catch(B){}return!0}function Dn(K,B=!1){return ue=>{if(!ue||Ka===ue||Sn(ue))return;const Me=ue.type==="keypress"?"input":ue.type;to===void 0?(K({event:ue,name:Me,global:B}),Ka=ue):Qt(Ka,ue)&&(K({event:ue,name:Me,global:B}),Ka=ue),clearTimeout(to),to=Rt.setTimeout(()=>{to=void 0},Na)}}function Jn(){if(!("document"in Rt))return;const K=nr.bind(null,"dom"),B=Dn(K,!0);Rt.document.addEventListener("click",B,!1),Rt.document.addEventListener("keypress",B,!1),["EventTarget","Node"].forEach(ue=>{const Me=Rt[ue]&&Rt[ue].prototype;!Me||!Me.hasOwnProperty||!Me.hasOwnProperty("addEventListener")||(J(Me,"addEventListener",function(Le){return function(Je,Dt,Bt){if(Je==="click"||Je=="keypress")try{const lt=this,en=lt.__sentry_instrumentation_handlers__=lt.__sentry_instrumentation_handlers__||{},En=en[Je]=en[Je]||{refCount:0};if(!En.handler){const wn=Dn(K);En.handler=wn,Le.call(this,Je,wn,Bt)}En.refCount++}catch(lt){}return Le.call(this,Je,Dt,Bt)}}),J(Me,"removeEventListener",function(Le){return function(Je,Dt,Bt){if(Je==="click"||Je=="keypress")try{const lt=this,en=lt.__sentry_instrumentation_handlers__||{},En=en[Je];En&&(En.refCount--,En.refCount<=0&&(Le.call(this,Je,En.handler,Bt),En.handler=void 0,delete en[Je]),Object.keys(en).length===0&&delete lt.__sentry_instrumentation_handlers__)}catch(lt){}return Le.call(this,Je,Dt,Bt)}}))})}let fr=null;function kr(){fr=Rt.onerror,Rt.onerror=function(K,B,ue,Me,Le){return nr("error",{column:Me,error:Le,line:ue,msg:K,url:B}),fr&&!fr.__SENTRY_LOADER__?fr.apply(this,arguments):!1},Rt.onerror.__SENTRY_INSTRUMENTED__=!0}let Jr=null;function or(){Jr=Rt.onunhandledrejection,Rt.onunhandledrejection=function(K){return nr("unhandledrejection",K),Jr&&!Jr.__SENTRY_LOADER__?Jr.apply(this,arguments):!0},Rt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function Hr(){const K=typeof WeakSet=="function",B=K?new WeakSet:[];function ue(Le){if(K)return B.has(Le)?!0:(B.add(Le),!1);for(let Je=0;Jeue?Oa(K,B-1,ue):Me}function Ia(K,B,ue=1/0,Me=1/0,Le=Hr()){const[Je,Dt]=Le;if(B==null||["number","boolean","string"].includes(typeof B)&&!rt(B))return B;const Bt=Xr(K,B);if(!Bt.startsWith("[object "))return Bt;if(B.__sentry_skip_normalization__)return B;const lt=typeof B.__sentry_override_normalization_depth__=="number"?B.__sentry_override_normalization_depth__:ue;if(lt===0)return Bt.replace("object ","");if(Je(B))return"[Circular ~]";const en=B;if(en&&typeof en.toJSON=="function")try{const vr=en.toJSON();return Ia("",vr,lt-1,Me,Le)}catch(vr){}const En=Array.isArray(B)?[]:{};let wn=0;const _n=Oe(B);for(const vr in _n){if(!Object.prototype.hasOwnProperty.call(_n,vr))continue;if(wn>=Me){En[vr]="[MaxProperties ~]";break}const Lr=_n[vr];En[vr]=Ia(vr,Lr,lt-1,Me,Le),wn++}return Dt(B),En}function Xr(K,B){try{if(K==="domain"&&B&&typeof B=="object"&&B._events)return"[Domain]";if(K==="domainEmitter")return"[DomainEmitter]";if(typeof e.g!="undefined"&&B===e.g)return"[Global]";if(typeof window!="undefined"&&B===window)return"[Window]";if(typeof document!="undefined"&&B===document)return"[Document]";if(Xe(B))return"[SyntheticEvent]";if(typeof B=="number"&&B!==B)return"[NaN]";if(typeof B=="function")return`[Function: ${Ar(B)}]`;if(typeof B=="symbol")return`[${String(B)}]`;if(typeof B=="bigint")return`[BigInt: ${String(B)}]`;const ue=po(B);return/^HTML(\w*)Element$/.test(ue)?`[HTMLElement: ${ue}]`:`[object ${ue}]`}catch(ue){return`**non-serializable** (${ue})`}}function po(K){const B=Object.getPrototypeOf(K);return B?B.constructor.name:"null prototype"}function wo(K){return~-encodeURI(K).split(/%..|./).length}function Ya(K){return wo(JSON.stringify(K))}function Co(K,B){const ue=Za(K,B),Me={type:B&&B.name,value:ri(B)};return ue.length&&(Me.stacktrace={frames:ue}),Me.type===void 0&&Me.value===""&&(Me.value="Unrecoverable error caught"),Me}function co(K,B,ue,Me){const Je=Nt().getClient(),Dt=Je&&Je.getOptions().normalizeDepth,Bt={exception:{values:[{type:Et(B)?B.constructor.name:Me?"UnhandledRejection":"Error",value:Ho(B,{isUnhandledRejection:Me})}]},extra:{__serialized__:Oa(B,Dt)}};if(ue){const lt=Za(K,ue);lt.length&&(Bt.exception.values[0].stacktrace={frames:lt})}return Bt}function Ca(K,B){return{exception:{values:[Co(K,B)]}}}function Za(K,B){const ue=B.stacktrace||B.stack||"",Me=ei(B);try{return K(ue,Me)}catch(Le){}return[]}const xo=/Minified React error #\d+;/i;function ei(K){if(K){if(typeof K.framesToPop=="number")return K.framesToPop;if(xo.test(K.message))return 1}return 0}function ri(K){const B=K&&K.message;return B?B.error&&typeof B.error.message=="string"?B.error.message:B:"No error message"}function ao(K,B,ue,Me){const Le=ue&&ue.syntheticException||void 0,Je=ji(K,B,Le,Me);return addExceptionMechanism(Je),Je.level="error",ue&&ue.event_id&&(Je.event_id=ue.event_id),resolvedSyncPromise(Je)}function Mi(K,B,ue="info",Me,Le){const Je=Me&&Me.syntheticException||void 0,Dt=Xo(K,B,Je,Le);return Dt.level=ue,Me&&Me.event_id&&(Dt.event_id=Me.event_id),resolvedSyncPromise(Dt)}function ji(K,B,ue,Me,Le){let Je;if(be(B)&&B.error)return Ca(K,B.error);if(Te(B)||Ge(B)){const Dt=B;if("stack"in B)Je=Ca(K,B);else{const Bt=Dt.name||(Te(Dt)?"DOMError":"DOMException"),lt=Dt.message?`${Bt}: ${Dt.message}`:Bt;Je=Xo(K,lt,ue,Me),G(Je,lt)}return"code"in Dt&&(Je.tags=Ks(Ha({},Je.tags),{"DOMException.code":`${Dt.code}`})),Je}return pe(B)?Ca(K,B):ht(B)||Et(B)?(Je=co(K,B,ue,Le),k(Je,{synthetic:!0}),Je):(Je=Xo(K,B,ue,Me),G(Je,`${B}`,void 0),k(Je,{synthetic:!0}),Je)}function Xo(K,B,ue,Me){const Le={message:B};if(Me&&ue){const Je=Za(K,ue);Je.length&&(Le.exception={values:[{value:B,stacktrace:{frames:Je}}]})}return Le}function Ho(K,{isUnhandledRejection:B}){const ue=st(K),Me=B?"promise rejection":"exception";return be(K)?`Event \`ErrorEvent\` captured as ${Me} with message \`${K.message}\``:Et(K)?`Event \`${ui(K)}\` (type=${K.type}) captured as ${Me}`:`Object captured as ${Me} with keys: ${ue}`}function ui(K){try{const B=Object.getPrototypeOf(K);return B?B.constructor.name:void 0}catch(B){}}class li{static __initStatic(){this.id="GlobalHandlers"}constructor(B){this.name=li.id,this._options=Ha({onerror:!0,onunhandledrejection:!0},B),this._installFunc={onerror:Ci,onunhandledrejection:Ni}}setupOnce(){Error.stackTraceLimit=50;const B=this._options;for(const ue in B){const Me=this._installFunc[ue];Me&&B[ue]&&(ti(ue),Me(),this._installFunc[ue]=void 0)}}}li.__initStatic();function Ci(){Xn("error",K=>{const[B,ue,Me]=jo();if(!B.getIntegration(li))return;const{msg:Le,url:Je,line:Dt,column:Bt,error:lt}=K;if(na()||lt&<.__sentry_own_request__)return;const en=lt===void 0&&qe(Le)?no(Le,Je,Dt,Bt):Qa(ji(ue,lt||Le,void 0,Me,!1),Je,Dt,Bt);en.level="error",ai(B,lt,en,"onerror")})}function Ni(){Xn("unhandledrejection",K=>{const[B,ue,Me]=jo();if(!B.getIntegration(li))return;let Le=K;try{"reason"in K?Le=K.reason:"detail"in K&&"reason"in K.detail&&(Le=K.detail.reason)}catch(Dt){}if(na()||Le&&Le.__sentry_own_request__)return!0;const Je=Qe(Le)?xi(Le):ji(ue,Le,void 0,Me,!0);Je.level="error",ai(B,Le,Je,"onunhandledrejection")})}function xi(K){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(K)}`}]}}}function no(K,B,ue,Me){const Le=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;let Je=be(K)?K.message:K,Dt="Error";const Bt=Je.match(Le);return Bt&&(Dt=Bt[1],Je=Bt[2]),Qa({exception:{values:[{type:Dt,value:Je}]}},B,ue,Me)}function Qa(K,B,ue,Me){const Le=K.exception=K.exception||{},Je=Le.values=Le.values||[],Dt=Je[0]=Je[0]||{},Bt=Dt.stacktrace=Dt.stacktrace||{},lt=Bt.frames=Bt.frames||[],en=isNaN(parseInt(Me,10))?void 0:Me,En=isNaN(parseInt(ue,10))?void 0:ue,wn=qe(B)&&B.length>0?B:me();return lt.length===0&<.push({colno:en,filename:wn,function:"?",in_app:!0,lineno:En}),K}function ti(K){(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.log(`Global Handler attached: ${K}`)}function ai(K,B,ue,Me){k(ue,{handled:!1,type:Me}),K.captureEvent(ue,{originalException:B})}function jo(){const K=Nt(),B=K.getClient(),ue=B&&B.getOptions()||{stackParser:()=>[],attachStacktrace:!1};return[K,ue.stackParser,ue.attachStacktrace]}const Zo=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"];class Ii{static __initStatic(){this.id="TryCatch"}constructor(B){this.name=Ii.id,this._options=Ha({XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0},B)}setupOnce(){this._options.setTimeout&&J(br,"setTimeout",Ri),this._options.setInterval&&J(br,"setInterval",Ri),this._options.requestAnimationFrame&&J(br,"requestAnimationFrame",ki),this._options.XMLHttpRequest&&"XMLHttpRequest"in br&&J(XMLHttpRequest.prototype,"send",ws);const B=this._options.eventTarget;B&&(Array.isArray(B)?B:Zo).forEach(ms)}}Ii.__initStatic();function Ri(K){return function(...B){const ue=B[0];return B[0]=cr(ue,{mechanism:{data:{function:Ar(K)},handled:!0,type:"instrument"}}),K.apply(this,B)}}function ki(K){return function(B){return K.apply(this,[cr(B,{mechanism:{data:{function:"requestAnimationFrame",handler:Ar(K)},handled:!0,type:"instrument"}})])}}function ws(K){return function(...B){const ue=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(Le=>{Le in ue&&typeof ue[Le]=="function"&&J(ue,Le,function(Je){const Dt={mechanism:{data:{function:Le,handler:Ar(Je)},handled:!0,type:"instrument"}},Bt=ce(Je);return Bt&&(Dt.mechanism.data.handler=Ar(Bt)),cr(Je,Dt)})}),K.apply(this,B)}}function ms(K){const B=br,ue=B[K]&&B[K].prototype;!ue||!ue.hasOwnProperty||!ue.hasOwnProperty("addEventListener")||(J(ue,"addEventListener",function(Me){return function(Le,Je,Dt){try{typeof Je.handleEvent=="function"&&(Je.handleEvent=cr(Je.handleEvent,{mechanism:{data:{function:"handleEvent",handler:Ar(Je),target:K},handled:!0,type:"instrument"}}))}catch(Bt){}return Me.apply(this,[Le,cr(Je,{mechanism:{data:{function:"addEventListener",handler:Ar(Je),target:K},handled:!0,type:"instrument"}}),Dt])}}),J(ue,"removeEventListener",function(Me){return function(Le,Je,Dt){const Bt=Je;try{const lt=Bt&&Bt.__sentry_wrapped__;lt&&Me.call(this,Le,lt,Dt)}catch(lt){}return Me.call(this,Le,Bt,Dt)}}))}const Qs=["fatal","error","warning","log","info","debug"];function Ml(K){return Vn(K)}function Vn(K){return K==="warn"?"warning":Qs.includes(K)?K:"log"}function Vr(K){if(!K)return{};const B=K.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!B)return{};const ue=B[6]||"",Me=B[8]||"";return{host:B[4],path:B[5],protocol:B[2],search:ue,hash:Me,relative:B[5]+ue+Me}}function Or(K){return K.split(/[\?#]/,1)[0]}function Br(K){return K.split(/\\?\//).filter(B=>B.length>0&&B!==",").length}function aa(K){const{protocol:B,host:ue,path:Me}=K,Le=ue&&ue.replace(/^.*@/,"[filtered]:[filtered]@").replace(":80","").replace(":443","")||"";return`${B?`${B}://`:""}${Le}${Me}`}const Ta=1024,za="Breadcrumbs";class La{static __initStatic(){this.id=za}constructor(B){this.name=La.id,this.options=Ha({console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0},B)}setupOnce(){this.options.console&&Xn("console",Jo),this.options.dom&&Xn("dom",Fo(this.options.dom)),this.options.xhr&&Xn("xhr",Yo),this.options.fetch&&Xn("fetch",zi),this.options.history&&Xn("history",Cs)}addSentryBreadcrumb(B){this.options.sentry&&Nt().addBreadcrumb({category:`sentry.${B.type==="transaction"?"transaction":"event"}`,event_id:B.event_id,level:B.level,message:j(B)},{event:B})}}La.__initStatic();function Fo(K){function B(ue){let Me,Le=typeof K=="object"?K.serializeAttribute:void 0,Je=typeof K=="object"&&typeof K.maxStringLength=="number"?K.maxStringLength:void 0;Je&&Je>Ta&&((typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn(`\`dom.maxStringLength\` cannot exceed ${Ta}, but a value of ${Je} was configured. Sentry will use ${Ta} instead.`),Je=Ta),typeof Le=="string"&&(Le=[Le]);try{const Dt=ue.event;Me=Qi(Dt)?Q(Dt.target,{keyAttrs:Le,maxStringLength:Je}):Q(Dt,{keyAttrs:Le,maxStringLength:Je})}catch(Dt){Me=""}Me.length!==0&&Nt().addBreadcrumb({category:`ui.${ue.name}`,message:Me},{event:ue.event,name:ue.name,global:ue.global})}return B}function Jo(K){for(let ue=0;ue0?Je.exception.values[Je.exception.values.length-1]:void 0;Bt&&(Je.exception.values=Sl(qi(K,B,Le,Dt.originalException,Me,Je.exception.values,Bt,0),ue))}function qi(K,B,ue,Me,Le,Je,Dt,Bt){if(Je.length>=ue+1)return Je;let lt=[...Je];if(Ke(Me[Le],Error)){qo(Dt,Bt);const en=K(B,Me[Le]),En=lt.length;tu(en,Le,En,Bt),lt=qi(K,B,ue,Me[Le],Le,[en,...lt],en,En)}return Array.isArray(Me.errors)&&Me.errors.forEach((en,En)=>{if(Ke(en,Error)){qo(Dt,Bt);const wn=K(B,en),_n=lt.length;tu(wn,`errors[${En}]`,_n,Bt),lt=qi(K,B,ue,en,Le,[wn,...lt],wn,_n)}}),lt}function qo(K,B){K.mechanism=K.mechanism||{type:"generic",handled:!0},K.mechanism=Ks(Ha({},K.mechanism),{is_exception_group:!0,exception_id:B})}function tu(K,B,ue,Me){K.mechanism=K.mechanism||{type:"generic",handled:!0},K.mechanism=Ks(Ha({},K.mechanism),{type:"chained",source:B,exception_id:ue,parent_id:Me})}function Sl(K,B){return K.map(ue=>(ue.value&&(ue.value=Ce(ue.value,B)),ue))}const ul="cause",Au=5;class cl{static __initStatic(){this.id="LinkedErrors"}constructor(B={}){this.name=cl.id,this._key=B.key||ul,this._limit=B.limit||Au}setupOnce(B,ue){B((Me,Le)=>{const Je=ue(),Dt=Je.getClient(),Bt=Je.getIntegration(cl);if(!Dt||!Bt)return Me;const lt=Dt.getOptions();return js(Co,lt.stackParser,lt.maxValueLength,Bt._key,Bt._limit,Me,Le),Me})}}cl.__initStatic();class Xs{static __initStatic(){this.id="HttpContext"}constructor(){this.name=Xs.id}setupOnce(){Yt(B=>{if(Nt().getIntegration(Xs)){if(!br.navigator&&!br.location&&!br.document)return B;const ue=B.request&&B.request.url||br.location&&br.location.href,{referrer:Me}=br.document||{},{userAgent:Le}=br.navigator||{},Je=Ha(Ha(Ha({},B.request&&B.request.headers),Me&&{Referer:Me}),Le&&{"User-Agent":Le}),Dt=Ks(Ha(Ha({},B.request),ue&&{url:ue}),{headers:Je});return Ks(Ha({},B),{request:Dt})}return B})}}Xs.__initStatic();class Ps{static __initStatic(){this.id="Dedupe"}constructor(){this.name=Ps.id}setupOnce(B,ue){const Me=Le=>{if(Le.type)return Le;const Je=ue().getIntegration(Ps);if(Je){try{if(Js(Le,Je._previousEvent))return(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn("Event dropped due to being a duplicate of previously captured event."),null}catch(Dt){return Je._previousEvent=Le}return Je._previousEvent=Le}return Le};Me.id=this.name,B(Me)}}Ps.__initStatic();function Js(K,B){return B?!!(Tl(K,B)||du(K,B)):!1}function Tl(K,B){const ue=K.message,Me=B.message;return!(!ue&&!Me||ue&&!Me||!ue&&Me||ue!==Me||!xs(K,B)||!rs(K,B))}function du(K,B){const ue=Zs(B),Me=Zs(K);return!(!ue||!Me||ue.type!==Me.type||ue.value!==Me.value||!xs(K,B)||!rs(K,B))}function rs(K,B){let ue=Ts(K),Me=Ts(B);if(!ue&&!Me)return!0;if(ue&&!Me||!ue&&Me||(ue=ue,Me=Me,Me.length!==ue.length))return!1;for(let Le=0;Le{B===void 0||B===ue||Uo(getCurrentHub())}))}function la(K){const B=getCurrentHub().getClient();B&&B.captureUserFeedback(K)}var fl=e(10063);const ru="/home/runner/work/sentry-javascript/sentry-javascript/packages/react/src/errorboundary.tsx";function qs(K){const B=K.match(/^([^.]+)/);return B!==null&&parseInt(B[0])>=17}const Ll="unknown",Yl={componentStack:null,error:null,eventId:null};function Po(K,B){const ue=new WeakMap;function Me(Le,Je){if(!ue.has(Le)){if(Le.cause)return ue.set(Le,!0),Me(Le.cause,Je);Le.cause=Je}}Me(K,B)}class Si extends C.Component{constructor(B){super(B),Si.prototype.__init.call(this),this.state=Yl,this._openFallbackReportDialog=!0;const ue=Nt().getClient();ue&&ue.on&&B.showDialog&&(this._openFallbackReportDialog=!1,ue.on("afterSendEvent",Me=>{!Me.type&&Me.event_id===this._lastEventId&&Ls(Ks(Ha({},B.dialogOptions),{eventId:this._lastEventId}))}))}componentDidCatch(B,{componentStack:ue}){const{beforeCapture:Me,onError:Le,showDialog:Je,dialogOptions:Dt}=this.props;sa(Bt=>{if(qs(C.version)&&pe(B)){const en=new Error(B.message);en.name=`React ErrorBoundary ${en.name}`,en.stack=ue,Po(B,en)}Me&&Me(Bt,B,ue);const lt=Ct(B,{contexts:{react:{componentStack:ue}}});Le&&Le(B,ue,lt),Je&&(this._lastEventId=lt,this._openFallbackReportDialog&&Ls(Ks(Ha({},Dt),{eventId:lt}))),this.setState({error:B,componentStack:ue,eventId:lt})})}componentDidMount(){const{onMount:B}=this.props;B&&B()}componentWillUnmount(){const{error:B,componentStack:ue,eventId:Me}=this.state,{onUnmount:Le}=this.props;Le&&Le(B,ue,Me)}__init(){this.resetErrorBoundary=()=>{const{onReset:B}=this.props,{error:ue,componentStack:Me,eventId:Le}=this.state;B&&B(ue,Me,Le),this.setState(Yl)}}render(){const{fallback:B,children:ue}=this.props,Me=this.state;if(Me.error){let Le;return typeof B=="function"?Le=B({error:Me.error,componentStack:Me.componentStack,resetError:this.resetErrorBoundary,eventId:Me.eventId}):Le=B,C.isValidElement(Le)?Le:(B&&(typeof __SENTRY_DEBUG__=="undefined"||__SENTRY_DEBUG__)&&A.warn("fallback did not produce a valid ReactElement"),null)}return typeof ue=="function"?ue():ue}}function dc(K,B){const ue=K.displayName||K.name||Ll,Me=Le=>React.createElement(Si,Ks(Ha({},B),{__self:this,__source:{fileName:ru,lineNumber:227}}),React.createElement(K,Ks(Ha({},Le),{__self:this,__source:{fileName:ru,lineNumber:228}})));return Me.displayName=`errorBoundary(${ue})`,hoistNonReactStatics(Me,K),Me}var ec=e(51830),Ja=e(76180),es=e(53357),ks={200:"requestConfig.success.msg",401:"requestConfig.unAuth.msg",403:"requestConfig.permissionDenied.msg",429:"errCode.TokenExceedsRateLimit",500:"requestConfig.responseStatus.msg"},Ra={101:"requestConfig.errorContent.msg",200001:"errCode.PartialSuccessBatchAssignLeaders",200002:"errCode.PartialSuccessBatchAssignWorkers",4e5:"errCode.BadRequest",400001:"errCode.ParameterMissing",400002:"errCode.ParameterIsInvalid",400050:"errCode.AnnotationNotListOfObj",400051:"errCode.AnnotationMissingCatName",400052:"errCode.AnnotationMissingBBox",400053:"errCode.AnnotationBBoxFormatError",400054:"errCode.AnnotationFormatError",400100:"errCode.FlagGroupsNotListOfObj",400101:"errCode.FlagObjectMissingFlag",400102:"errCode.FlagObjectFlagValueInvalid",400103:"errCode.FlagObjectMissingIDs",400104:"errCode.FlagObjectIDsNotList",400150:"errCode.LabelSetNameInvalid",400151:"errCode.LabelSetNameConflicts",400200:"errCode.UserNotFoundForLabelProject",400201:"errCode.UserNotActiveForLabelProject",400202:"errCode.DatasetNotFoundForLabelProject",400203:"errCode.LabelTaskNotFoundForLabelProject",400204:"errCode.CreateLabelProjectRequireManager",400205:"errCode.CreateLabelProjectRequireDataset",400206:"errCode.CreateLabelProjectRequireCategory",400207:"errCode.CreateLabelProjectDatasetOccupied",400208:"errCode.EditLabelProjectRequireManager",400209:"errCode.InitLabelProjectMustBeWaiting",400210:"errCode.InitLabelProjectTaskConfigError",400211:"errCode.QALabelProjectActionError",400212:"errCode.QALabelProjectMustBeReviewing",400213:"errCode.ExportLabelProjectMustBeAccepted",400214:"errCode.LeaderIDIsRequired",400215:"errCode.LabelerIDIsRequired",400216:"errCode.LabelProjectRoleIsNotTaskLevel",400217:"errCode.CantReplaceRoleWithTheSameUser",400218:"errCode.OldUserDoesNotHaveTheTaskRole",400219:"errCode.NewUserAlreadyHaveTheTaskRole",400220:"errCode.CantTransferRoleBetweenDifferentTask",400221:"errCode.CantTransferRoleToDifferentKind",400222:"errCode.RestartLabelTaskMustBeRejected",400223:"errCode.QALabelTaskActionError",400224:"errCode.AcceptLabelTaskMustBeReviewing",400225:"errCode.RejectLabelTaskMustBeReviewing",400226:"errCode.ForceAcceptLabelTaskMustBeRejected",400227:"errCode.LabelAnnotationMissingFields",400228:"errCode.LabelAnnotationFieldValueInvalid",400229:"errCode.LabelImageRequireTaskStatusWorking",400230:"errCode.LabelImageRequireUnfinishedReviewing",400231:"errCode.ReviewImageRequireTaskStatusWorking",400232:"errCode.ReviewImageRequireFinishedLabeling",400233:"errCode.ReviewImageTargetLabelNotFound",400234:"errCode.ReviewImageFoundExistedReview",400235:"errCode.CantDeleteAllOwnersOfLabelProject",400236:"errCode.NumOfTaskLeaderMismatchesConfig",400237:"errCode.TaskDoesNotRequireReviewer",400238:"errCode.NumOfTaskLabelerMismatchesConfig",400239:"errCode.NumOfTaskReviewerMismatchesConfig",400240:"errCode.TryInitRoleForTaskWithActiveRoles",400241:"errCode.TaskRoleNotOfLeaderKind",401e3:"errCode.Unauthorized",401001:"requestConfig.unAuth.msg",403e3:"errCode.Forbidden",403001:"requestConfig.permissionDenied.msg",403050:"errCode.UserAuthenticationFailed",403051:"errCode.UserCantViewLabelProjectTask",403052:"errCode.UserCantViewLabelProjectRole",403053:"errCode.UserCantCreateLabelProject",403054:"errCode.UserCantViewLabelProject",403055:"errCode.UserCantEditLabelProject",403056:"errCode.UserCantInitLabelProject",403057:"errCode.UserCantQALabelProject",403058:"errCode.UserCantExportLabelProject",403059:"errCode.UserCantAssignLabelTaskLeader",403060:"errCode.UserCantAssignLabelTaskWorker",403061:"errCode.UserCantRestartLabelTask",403062:"errCode.UserCantQALabelTask",403063:"errCode.UserCantLabelTaskImage",403064:"errCode.UserCantReviewTaskImage",404e3:"errCode.NotFound",404050:"errCode.DatasetNotFound",404051:"errCode.DatasetNotReadable",404052:"errCode.DatasetMissingEmbdFile",404053:"errCode.DatasetImageNotFound",404054:"errCode.DatasetHasNoFNFPData",404055:"errCode.DatasetLabelNotFound",404056:"errCode.DatasetFNFPPrecisionNotFound",404100:"errCode.ReRankByFlagTaskNotFound",404150:"errCode.LabelProjectNotFound",404151:"errCode.LabelProjectRoleNotFound",404152:"errCode.LabelProjectTaskNotFound",404153:"errCode.LabelTaskImageNotFound",429002:"errCode.TokenExceedsRateLimit",5e5:"errCode.InternalError",500001:"errCode.FailedToCloneLabelSet"},au=function(B,ue){return B&&Ra[B]?(0,es._w)(Ra[B]):ue&&ks[ue]?(0,es._w)(ks[ue]):(0,es._w)("requestConfig.errorData.msg",{code:"".concat(ue).concat(B?"-".concat(B):"")})},_i=e(35667);function El(){return vl.apply(this,arguments)}function vl(){return vl=w()(g()().mark(function K(){return g()().wrap(function(ue){for(;;)switch(ue.prev=ue.next){case 0:return document.addEventListener("wheel",function(Me){(Me.ctrlKey||Me.detail)&&Me.preventDefault()},{capture:!1,passive:!1}),document.addEventListener("keydown",function(Me){(Me.ctrlKey===!0||Me.metaKey===!0)&&(Me.keyCode===61||Me.keyCode===107||Me.keyCode===173||Me.keyCode===109||Me.keyCode===187||Me.keyCode===189)&&Me.preventDefault()},!1),N.ZP.config({duration:1.5,maxCount:2}),ue.abrupt("return",{name:"@umijs/max"});case 4:case"end":return ue.stop()}},K)})),vl.apply(this,arguments)}var fu=function(){return{pure:!0,title:(0,es._w)("layout.title")}};function Nl(K){var B={showDialog:!0,fallback:function(Me){return(0,_i.jsx)(ec.xA,h()({},Me))}};return C.createElement(Si,B,K)}var tc={baseURL:"",timeout:1e5,headers:{"Content-Type":"application/json"},errorConfig:{errorHandler:function(B,ue){var Me;if(!/^2/.test(B.status)&&!(ue!=null&&ue.skipErrorHandler)&&(((Me=B.response)===null||Me===void 0?void 0:Me.status)===401&&(L.history.push("/"),localStorage.removeItem(Ja.Uf.AUTH_TOKEN)),!(ue!=null&&ue.hideCodeErrorMsg)))if(B.response){var Le;N.ZP.error(au((Le=B.response.data)===null||Le===void 0?void 0:Le.code,B.response.status))}else B.request?N.ZP.error((0,es._w)("requestConfig.noResponse.msg")):N.ZP.error((0,es._w)("requestConfig.requestError.msg"))}},requestInterceptors:[function(K){if(K.params&&(K.params=Z().decamelizeKeys(K.params)),K.data&&(K.data=Z().decamelizeKeys(K.data)),K.headers){var B,ue;if((B=K.url)!==null&&B!==void 0&&B.includes("https://api.deepdataspace.com"))K.headers.Token="dds-tool-free";else if(((ue=K.url)===null||ue===void 0?void 0:ue.indexOf("http"))!==0){var Me=localStorage.getItem(Ja.Uf.AUTH_TOKEN);Me&&(K.headers.Token=Me)}}return h()({},K)}],responseInterceptors:[function(K){var B;if(((B=K.data)===null||B===void 0?void 0:B.code)===0){var ue;return K.data=Z().camelizeKeys(((ue=K.data)===null||ue===void 0?void 0:ue.data)||{}),K}else{var Me;if(!((Me=K.config)!==null&&Me!==void 0&&Me.hideCodeErrorMsg)){var Le;N.ZP.error(au((Le=K.data)===null||Le===void 0?void 0:Le.code,200))}throw K}}]},Uu=e(7862),Bo=e.n(Uu),Ou=e(81690),Vl=e.n(Ou),ps=e(21700),Cl=e.n(ps),gl=e(31236),Wt=e.n(gl);function Oi(){return Oi=Object.assign||function(K){for(var B=1;B=0||(Le[ue]=K[ue]);return Le}var go={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},ku={rel:["amphtml","canonical","alternate"]},vu={type:["application/ld+json"]},us={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},xl=Object.keys(go).map(function(K){return go[K]}),Ei={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},Ai=Object.keys(Ei).reduce(function(K,B){return K[Ei[B]]=B,K},{}),ts=function(K,B){for(var ue=K.length-1;ue>=0;ue-=1){var Me=K[ue];if(Object.prototype.hasOwnProperty.call(Me,B))return Me[B]}return null},as=function(K){var B=ts(K,go.TITLE),ue=ts(K,"titleTemplate");if(Array.isArray(B)&&(B=B.join("")),ue&&B)return ue.replace(/%s/g,function(){return B});var Me=ts(K,"defaultTitle");return B||Me||void 0},yo=function(K){return ts(K,"onChangeClientState")||function(){}},el=function(K,B){return B.filter(function(ue){return ue[K]!==void 0}).map(function(ue){return ue[K]}).reduce(function(ue,Me){return Oi({},ue,Me)},{})},ou=function(K,B){return B.filter(function(ue){return ue[go.BASE]!==void 0}).map(function(ue){return ue[go.BASE]}).reverse().reduce(function(ue,Me){if(!ue.length)for(var Le=Object.keys(Me),Je=0;Je/g,">").replace(/"/g,""").replace(/'/g,"'")},hs=function(K){return Object.keys(K).reduce(function(B,ue){var Me=K[ue]!==void 0?ue+'="'+K[ue]+'"':""+ue;return B?B+" "+Me:Me},"")},Du=function(K,B){return B===void 0&&(B={}),Object.keys(K).reduce(function(ue,Me){return ue[Ei[Me]||Me]=K[Me],ue},B)},Hs=function(K,B){return B.map(function(ue,Me){var Le,Je=((Le={key:Me})["data-rh"]=!0,Le);return Object.keys(ue).forEach(function(Dt){var Bt=Ei[Dt]||Dt;Bt==="innerHTML"||Bt==="cssText"?Je.dangerouslySetInnerHTML={__html:ue.innerHTML||ue.cssText}:Je[Bt]=ue[Dt]}),C.createElement(K,Je)})},ma=function(K,B,ue){switch(K){case go.TITLE:return{toComponent:function(){return Le=B.titleAttributes,(Je={key:Me=B.title})["data-rh"]=!0,Dt=Du(Le,Je),[C.createElement(go.TITLE,Dt,Me)];var Me,Le,Je,Dt},toString:function(){return function(Me,Le,Je,Dt){var Bt=hs(Je),lt=gu(Le);return Bt?"<"+Me+' data-rh="true" '+Bt+">"+Is(lt,Dt)+"":"<"+Me+' data-rh="true">'+Is(lt,Dt)+""}(K,B.title,B.titleAttributes,ue)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return Du(B)},toString:function(){return hs(B)}};default:return{toComponent:function(){return Hs(K,B)},toString:function(){return function(Me,Le,Je){return Le.reduce(function(Dt,Bt){var lt=Object.keys(Bt).filter(function(wn){return!(wn==="innerHTML"||wn==="cssText")}).reduce(function(wn,_n){var vr=Bt[_n]===void 0?_n:_n+'="'+Is(Bt[_n],Je)+'"';return wn?wn+" "+vr:vr},""),en=Bt.innerHTML||Bt.cssText||"",En=Al.indexOf(Me)===-1;return Dt+"<"+Me+' data-rh="true" '+lt+(En?"/>":">"+en+"")},"")}(K,B,ue)}}}},at=function(K){var B=K.baseTag,ue=K.bodyAttributes,Me=K.encode,Le=K.htmlAttributes,Je=K.noscriptTags,Dt=K.styleTags,Bt=K.title,lt=Bt===void 0?"":Bt,en=K.titleAttributes,En=K.linkTags,wn=K.metaTags,_n=K.scriptTags,vr={toComponent:function(){},toString:function(){return""}};if(K.prioritizeSeoTags){var Lr=function(ga){var wr=ga.linkTags,ta=ga.scriptTags,ja=ga.encode,vo=Ws(ga.metaTags,us),Fa=Ws(wr,ku),da=Ws(ta,vu);return{priorityMethods:{toComponent:function(){return[].concat(Hs(go.META,vo.priority),Hs(go.LINK,Fa.priority),Hs(go.SCRIPT,da.priority))},toString:function(){return ma(go.META,vo.priority,ja)+" "+ma(go.LINK,Fa.priority,ja)+" "+ma(go.SCRIPT,da.priority,ja)}},metaTags:vo.default,linkTags:Fa.default,scriptTags:da.default}}(K);vr=Lr.priorityMethods,En=Lr.linkTags,wn=Lr.metaTags,_n=Lr.scriptTags}return{priority:vr,base:ma(go.BASE,B,Me),bodyAttributes:ma("bodyAttributes",ue,Me),htmlAttributes:ma("htmlAttributes",Le,Me),link:ma(go.LINK,En,Me),meta:ma(go.META,wn,Me),noscript:ma(go.NOSCRIPT,Je,Me),script:ma(go.SCRIPT,_n,Me),style:ma(go.STYLE,Dt,Me),title:ma(go.TITLE,{title:lt,titleAttributes:en},Me)}},Gt=[],Hn=function(K,B){var ue=this;B===void 0&&(B=typeof document!="undefined"),this.instances=[],this.value={setHelmet:function(Me){ue.context.helmet=Me},helmetInstances:{get:function(){return ue.canUseDOM?Gt:ue.instances},add:function(Me){(ue.canUseDOM?Gt:ue.instances).push(Me)},remove:function(Me){var Le=(ue.canUseDOM?Gt:ue.instances).indexOf(Me);(ue.canUseDOM?Gt:ue.instances).splice(Le,1)}}},this.context=K,this.canUseDOM=B,B||(K.helmet=at({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},ur=C.createContext({}),wa=Bo().shape({setHelmet:Bo().func,helmetInstances:Bo().shape({get:Bo().func,add:Bo().func,remove:Bo().func})}),fo=typeof document!="undefined",ci=function(K){function B(ue){var Me;return(Me=K.call(this,ue)||this).helmetData=new Hn(Me.props.context,B.canUseDOM),Me}return Gl(B,K),B.prototype.render=function(){return C.createElement(ur.Provider,{value:this.helmetData.value},this.props.children)},B}(C.Component);ci.canUseDOM=fo,ci.propTypes={context:Bo().shape({helmet:Bo().shape()}),children:Bo().node.isRequired},ci.defaultProps={context:{}},ci.displayName="HelmetProvider";var ko=function(K,B){var ue,Me=document.head||document.querySelector(go.HEAD),Le=Me.querySelectorAll(K+"[data-rh]"),Je=[].slice.call(Le),Dt=[];return B&&B.length&&B.forEach(function(Bt){var lt=document.createElement(K);for(var en in Bt)Object.prototype.hasOwnProperty.call(Bt,en)&&(en==="innerHTML"?lt.innerHTML=Bt.innerHTML:en==="cssText"?lt.styleSheet?lt.styleSheet.cssText=Bt.cssText:lt.appendChild(document.createTextNode(Bt.cssText)):lt.setAttribute(en,Bt[en]===void 0?"":Bt[en]));lt.setAttribute("data-rh","true"),Je.some(function(En,wn){return ue=wn,lt.isEqualNode(En)})?Je.splice(ue,1):Dt.push(lt)}),Je.forEach(function(Bt){return Bt.parentNode.removeChild(Bt)}),Dt.forEach(function(Bt){return Me.appendChild(Bt)}),{oldTags:Je,newTags:Dt}},ns=function(K,B){var ue=document.getElementsByTagName(K)[0];if(ue){for(var Me=ue.getAttribute("data-rh"),Le=Me?Me.split(","):[],Je=[].concat(Le),Dt=Object.keys(B),Bt=0;Bt=0;wn-=1)ue.removeAttribute(Je[wn]);Le.length===Je.length?ue.removeAttribute("data-rh"):ue.getAttribute("data-rh")!==Dt.join(",")&&ue.setAttribute("data-rh",Dt.join(","))}},oi=function(K,B){var ue=K.baseTag,Me=K.htmlAttributes,Le=K.linkTags,Je=K.metaTags,Dt=K.noscriptTags,Bt=K.onChangeClientState,lt=K.scriptTags,en=K.styleTags,En=K.title,wn=K.titleAttributes;ns(go.BODY,K.bodyAttributes),ns(go.HTML,Me),function(ga,wr){ga!==void 0&&document.title!==ga&&(document.title=gu(ga)),ns(go.TITLE,wr)}(En,wn);var _n={baseTag:ko(go.BASE,ue),linkTags:ko(go.LINK,Le),metaTags:ko(go.META,Je),noscriptTags:ko(go.NOSCRIPT,Dt),scriptTags:ko(go.SCRIPT,lt),styleTags:ko(go.STYLE,en)},vr={},Lr={};Object.keys(_n).forEach(function(ga){var wr=_n[ga],ta=wr.newTags,ja=wr.oldTags;ta.length&&(vr[ga]=ta),ja.length&&(Lr[ga]=_n[ga].oldTags)}),B&&B(),Bt(K,vr,Lr)},gi=null,Ao=function(K){function B(){for(var Me,Le=arguments.length,Je=new Array(Le),Dt=0;Dt elements are self-closing and can not contain children. Refer to our API for more information.")}},ue.flattenArrayTypeChildren=function(Me){var Le,Je=Me.child,Dt=Me.arrayTypeChildren;return Oi({},Dt,((Le={})[Je.type]=[].concat(Dt[Je.type]||[],[Oi({},Me.newChildProps,this.mapNestedChildrenToProps(Je,Me.nestedChildren))]),Le))},ue.mapObjectTypeChildren=function(Me){var Le,Je,Dt=Me.child,Bt=Me.newProps,lt=Me.newChildProps,en=Me.nestedChildren;switch(Dt.type){case go.TITLE:return Oi({},Bt,((Le={})[Dt.type]=en,Le.titleAttributes=Oi({},lt),Le));case go.BODY:return Oi({},Bt,{bodyAttributes:Oi({},lt)});case go.HTML:return Oi({},Bt,{htmlAttributes:Oi({},lt)});default:return Oi({},Bt,((Je={})[Dt.type]=Oi({},lt),Je))}},ue.mapArrayTypeChildrenToProps=function(Me,Le){var Je=Oi({},Le);return Object.keys(Me).forEach(function(Dt){var Bt;Je=Oi({},Je,((Bt={})[Dt]=Me[Dt],Bt))}),Je},ue.warnOnInvalidChildren=function(Me,Le){return Cl()(xl.some(function(Je){return Me.type===Je}),typeof Me.type=="function"?"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+xl.join(", ")+" are allowed. Helmet does not support rendering <"+Me.type+"> elements. Refer to our API for more information."),Cl()(!Le||typeof Le=="string"||Array.isArray(Le)&&!Le.some(function(Je){return typeof Je!="string"}),"Helmet expects a string as a child of <"+Me.type+">. Did you forget to wrap your children in braces? ( <"+Me.type+">{``} ) Refer to our API for more information."),!0},ue.mapChildrenToProps=function(Me,Le){var Je=this,Dt={};return C.Children.forEach(Me,function(Bt){if(Bt&&Bt.props){var lt=Bt.props,en=lt.children,En=_o(lt,To),wn=Object.keys(En).reduce(function(vr,Lr){return vr[Ai[Lr]||Lr]=En[Lr],vr},{}),_n=Bt.type;switch(typeof _n=="symbol"?_n=_n.toString():Je.warnOnInvalidChildren(Bt,en),_n){case go.FRAGMENT:Le=Je.mapChildrenToProps(en,Le);break;case go.LINK:case go.META:case go.NOSCRIPT:case go.SCRIPT:case go.STYLE:Dt=Je.flattenArrayTypeChildren({child:Bt,arrayTypeChildren:Dt,newChildProps:wn,nestedChildren:en});break;default:Le=Je.mapObjectTypeChildren({child:Bt,newProps:Le,newChildProps:wn,nestedChildren:en})}}}),this.mapArrayTypeChildrenToProps(Dt,Le)},ue.render=function(){var Me=this.props,Le=Me.children,Je=_o(Me,Wi),Dt=Oi({},Je),Bt=Je.helmetData;return Le&&(Dt=this.mapChildrenToProps(Le,Dt)),!Bt||Bt instanceof Hn||(Bt=new Hn(Bt.context,Bt.instances)),Bt?C.createElement(Ao,Oi({},Dt,{context:Bt.value,helmetData:void 0})):C.createElement(ur.Consumer,null,function(lt){return C.createElement(Ao,Oi({},Dt,{context:lt}))})},B}(C.Component);ys.propTypes={base:Bo().object,bodyAttributes:Bo().object,children:Bo().oneOfType([Bo().arrayOf(Bo().node),Bo().node]),defaultTitle:Bo().string,defer:Bo().bool,encodeSpecialCharacters:Bo().bool,htmlAttributes:Bo().object,link:Bo().arrayOf(Bo().object),meta:Bo().arrayOf(Bo().object),noscript:Bo().arrayOf(Bo().object),onChangeClientState:Bo().func,script:Bo().arrayOf(Bo().object),style:Bo().arrayOf(Bo().object),title:Bo().string,titleAttributes:Bo().object,titleTemplate:Bo().string,prioritizeSeoTags:Bo().bool,helmetData:Bo().object},ys.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},ys.displayName="Helmet";var wu={},Kl=function(B){return C.createElement(ci,{context:wu},B)},cs=e(96662);function ju(K){var B={};return(0,_i.jsx)(cs.J.Provider,{value:B,children:K.children})}function Ql(K){return(0,_i.jsx)(ju,{children:K})}var ds=e(62376),Ic=e.n(ds),nc=e(62109),ml=e(65388),Ol=e(42505),Rl=["appConfig"],Wu=null,Ac=function(){return Wu||(Wu=ba().applyPlugins({key:"antd",type:L.ApplyPluginsType.modify,initialValue:h()({},{theme:{token:{colorLink:"#1e53f5",colorPrimary:"#1e53f5"}}})})),Wu};function mu(K){var B=Ac(),ue=B.appConfig,Me=Ic()(B,Rl),Le=K;return Me.prefixCls&&(nc.Z.config({rootPrefixCls:Me.prefixCls}),N.ZP.config({prefixCls:"".concat(Me.prefixCls,"-message")}),ml.Z.config({prefixCls:"".concat(Me.prefixCls,"-notification")})),Me.iconPrefixCls&&Ol.ZP.config({iconPrefixCls:Me.iconPrefixCls}),Me.theme&&Ol.ZP.config({theme:Me.theme}),Le=(0,_i.jsx)(Ol.ZP,h()(h()({},Me),{},{children:Le})),Le}var pu=e(47338);function hu(){return(0,_i.jsx)("div",{})}function os(K){var B=C.useRef(!1),ue=(0,pu.t)("@@initialState")||{},Me=ue.loading,Le=Me===void 0?!1:Me;return C.useEffect(function(){Le||(B.current=!0)},[Le]),Le&&!B.current?(0,_i.jsx)(hu,{}):K.children}function Pu(K){return(0,_i.jsx)(os,{children:K})}var bs={};function Xi(K){return K.replace(K[0],K[0].toUpperCase()).replace(/-(w)/g,function(B,ue){return ue.toUpperCase()})}function Ns(K){var B=K.routes;Object.keys(B).forEach(function(ue){var Me=B[ue].icon;if(Me&&typeof Me=="string"){var Le=Xi(Me);(bs[Le]||bs[Le+"Outlined"])&&(B[ue].icon=C.createElement(bs[Le]||bs[Le+"Outlined"]))}})}var tl=e(88205),Vo=e.n(tl),su=e(6901),fs=e.n(su),rc=e(85417),nl=e(16221);function pl(){var K=getLocale();if(moment!=null&&moment.locale){var B;moment.locale(((B=localeInfo[K])===null||B===void 0?void 0:B.momentLocale)||"")}setIntl(K)}var Rs=typeof window!="undefined"&&typeof window.document!="undefined"&&typeof window.document.createElement!="undefined"?C.useLayoutEffect:C.useEffect,mi=function(B){var ue,Me=(0,nl.Kd)(),Le=C.useState(Me),Je=Vo()(Le,2),Dt=Je[0],Bt=Je[1],lt=C.useState(function(){return(0,nl.lw)(Dt,!0)}),en=Vo()(lt,2),En=en[0],wn=en[1],_n=function(wr){if(fs()!==null&&fs()!==void 0&&fs().locale){var ta;fs().locale(((ta=nl.H8[wr])===null||ta===void 0?void 0:ta.momentLocale)||"en")}Bt(wr),wn((0,nl.lw)(wr))};Rs(function(){return nl.B.on(nl.PZ,_n),function(){nl.B.off(nl.PZ,_n)}},[]);var vr={},Lr=(0,nl.Mg)();return(0,_i.jsx)(Ol.ZP,{direction:Lr,locale:((ue=nl.H8[Dt])===null||ue===void 0?void 0:ue.antd)||vr,children:(0,_i.jsx)(nl.eU,{value:En,children:B.children})})};function As(K){return C.createElement(mi,null,K)}var yu=e(34485),Tu=e.n(yu),hl=e(65246),Hu=e(7986);function Lu(K,B){return zl.apply(this,arguments)}function zl(){return zl=w()(g()().mark(function K(B,ue){return g()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:return Le.abrupt("return",(0,L.request)("/api/v1/datasets",h()({method:"GET",params:B},ue||{})));case 1:case"end":return Le.stop()}},K)})),zl.apply(this,arguments)}function Dl(K,B){return Fl.apply(this,arguments)}function Fl(){return Fl=w()(g()().mark(function K(B,ue){return g()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:return Le.abrupt("return",(0,L.request)("/api/v1/datasets/".concat(B.datasetId),h()({method:"GET"},ue||{})));case 1:case"end":return Le.stop()}},K)})),Fl.apply(this,arguments)}function ni(K,B){return F.apply(this,arguments)}function F(){return F=w()(g()().mark(function K(B,ue){return g()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:return Le.abrupt("return",(0,L.request)("/api/v1/images",h()({method:"GET",params:B},ue||{})));case 1:case"end":return Le.stop()}},K)})),F.apply(this,arguments)}function ve(K,B){return Ze.apply(this,arguments)}function Ze(){return Ze=w()(g()().mark(function K(B,ue){return g()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:return Le.abrupt("return",(0,L.request)("/api/v1/image_flags",h()({method:"POST",data:h()({},B)},ue||{})));case 1:case"end":return Le.stop()}},K)})),Ze.apply(this,arguments)}function ot(K,B){return Lt.apply(this,arguments)}function Lt(){return Lt=w()(g()().mark(function K(B,ue){return g()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:return Le.abrupt("return",(0,L.request)("/api/v1/tasks/rerank_by_flags",h()({method:"POST",data:h()({},B)},ue||{})));case 1:case"end":return Le.stop()}},K)})),Lt.apply(this,arguments)}function jn(K,B){return Rr.apply(this,arguments)}function Rr(){return Rr=w()(g()().mark(function K(B,ue){return g()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:return Le.abrupt("return",(0,L.request)("/api/v1/tasks/".concat(B.name,"/").concat(B.id),h()({method:"GET"},ue||{})));case 1:case"end":return Le.stop()}},K)})),Rr.apply(this,arguments)}function lo(K,B){return Ro.apply(this,arguments)}function Ro(){return Ro=_asyncToGenerator(_regeneratorRuntime().mark(function K(B,ue){return _regeneratorRuntime().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:return Le.abrupt("return",request("/api/v1/annotations",_objectSpread({method:"POST",data:_objectSpread({},B)},ue||{})));case 1:case"end":return Le.stop()}},K)})),Ro.apply(this,arguments)}function di(K,B){return Yi.apply(this,arguments)}function Yi(){return Yi=w()(g()().mark(function K(B,ue){return g()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:return Le.abrupt("return",(0,L.request)("/api/v1/comparisons",h()({method:"GET",params:B},ue||{})));case 1:case"end":return Le.stop()}},K)})),Yi.apply(this,arguments)}function rl(K,B){return yl.apply(this,arguments)}function yl(){return yl=_asyncToGenerator(_regeneratorRuntime().mark(function K(B,ue){return _regeneratorRuntime().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:return Le.abrupt("return",request("/api/v1/label_clone",_objectSpread({method:"POST",data:_objectSpread({},B)},ue||{})));case 1:case"end":return Le.stop()}},K)})),yl.apply(this,arguments)}var ac=e(74595),Ji={categoryId:"All",displayAnnotationType:void 0,displayOptions:[Ja.zY.showAnnotations,Ja.zY.showAllCategory],selectedLabelIds:[],diffMode:Ja.uP.Overlay},Nu={datasetId:"",datasetName:"",page:1,pageSize:Ja.L8,cloumnCount:5,isSingleAnnotation:!1,previewIndex:-1,filterValues:h()({},Ji),comparisons:void 0,flagTools:void 0},fc={imgList:[],total:0,flagTools:{lastShiftIndex:-1,lastSavedIndexs:[],count:0}},_u=h()(h()({},fc),{},{screenLoading:"",hasEmbedFile:!1,filters:{categories:[],annotationTypes:[],displayOptions:Ja.EX,labels:[]}}),vc=e(39378),gc=function(){var K,B,ue,Me=(0,hl.x)(h()({},Nu)),Le=Vo()(Me,2),Je=Le[0],Dt=Le[1],Bt=(0,hl.x)(h()({},_u)),lt=Vo()(Bt,2),en=lt[0],En=lt[1],wn=Je.filterValues,_n=Je.comparisons,vr=en.filters,Lr=function(oo){Dt(function(ho){Object.assign(ho,Nu,oo)})},ga=function(){},wr=(0,Hu.Z)(function(Do){if(!Je.datasetId)throw null;return Dl({datasetId:Je.datasetId})},{refreshDeps:[Je.datasetId],onSuccess:function(oo,ho){var Ti=oo.categoryList,Fi=oo.labelList,Os=oo.objectTypes,Va=ho.length>0?ho[0]:Ja.$j.gt,pi=Os.filter(function(Wo){return Wo!==Ja.JJ.Classification}),Aa=Je.filterValues.displayAnnotationType&&pi.find(function(Wo){return Wo===Je.filterValues.displayAnnotationType});En(function(Wo){var fi=Aa||pi[0],Hi=(0,ac.B8)(Je.filterValues.displayOptions,fi),Ds=Vo()(Hi,2),yi=Ds[0],il=Ds[1];Wo.filters.categories=[{id:"All",name:"All"}].concat(Tu()(Ti)),Wo.filters.annotationTypes=pi,Wo.filters.displayOptions=yi,Aa||Dt(function(Vi){Vi.filterValues.displayOptions=il,Vi.filterValues.displayAnnotationType=fi}),Je.filterValues.categoryId||Dt(function(Vi){Vi.filterValues.categoryId="All"}),Fi&&Fi.length&&(Wo.filters.labels=Fi.map(function(Vi){return Vi.confidenceRange=Vi.source===Ja.$j.pred?[.2,1]:[0,1],Vi.source===Va&&!Aa&&Dt(function(Su){Su.filterValues.selectedLabelIds=[Vi.id]}),Vi}))})},onError:function(){}},[function(Do){return{onBefore:function(){var ho;return{loading:!(!((ho=Do.state.params)===null||ho===void 0)&&ho.length)}}}}]),ta=wr.loading,ja=wr.runAsync,vo=(0,Hu.Z)(function(){var Do=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(!Je.datasetId||!Je.filterValues.categoryId)throw null;Do||(En(function(Ti){Object.assign(Ti,fc)}),window.scrollTo(0,0));var oo=Je.filterValues.categoryId==="All"?void 0:Je.filterValues.categoryId,ho={datasetId:Je.datasetId,categoryId:oo,pageNum:Je.page,pageSize:Je.pageSize};return Je.comparisons?di(h()(h()({},ho),{},{labelId:Je.comparisons.label.id,precision:Je.comparisons.precision,orderBy:Je.comparisons.orderBy,displayCategoryId:oo})):(Je.flagTools&&Je.flagTools.flagStatus>=0&&Object.assign(ho,{flag:Je.flagTools.flagStatus}),ni(ho))},{debounceWait:20,refreshDeps:[Je.datasetId,Je.filterValues.categoryId,Je.page,Je.pageSize,(K=Je.comparisons)===null||K===void 0?void 0:K.precision,(B=Je.comparisons)===null||B===void 0?void 0:B.orderBy,(ue=Je.flagTools)===null||ue===void 0?void 0:ue.flagStatus],onSuccess:function(oo){En(function(ho){ho.imgList=oo.imageList,ho.total=oo.total})},onError:function(){}},[function(Do){return{onBefore:function(){var ho;return{loading:!(!((ho=Do.state.params)===null||ho===void 0)&&ho.length)}}}}]),Fa=vo.loading,da=vo.run,io=function(oo){Dt(function(ho){ho.previewIndex=oo})},$a=function(){Dt(function(oo){oo.previewIndex=-1})},ka=ta||Fa,so=(0,C.useMemo)(function(){if(_n){var Do=[],oo=vr.labels.find(function(ho){return ho.source===Ja.$j.gt});return(_n.displays.includes(Ja.$j.gt)||_n.displays.includes(Ja.BP.fn))&&oo&&Do.push(oo.id),(_n.displays.includes(Ja.$j.pred)||_n.displays.includes(Ja.BP.fp))&&Do.push(_n.label.id),Do}return wn.selectedLabelIds},[_n,wn.selectedLabelIds,vr.labels]),Oo=(0,C.useMemo)(function(){return so.length>1&&(wn.displayAnnotationType===Ja.JJ.Matting||(_n?_n.diffMode===Ja.uP.Tiled:wn.diffMode===Ja.uP.Tiled))},[_n,wn.diffMode,so]),ii=(0,C.useMemo)(function(){var Do={};return Object.keys(Ja.zY).forEach(function(oo){var ho;Do[oo]=!!(!((ho=wn.displayOptions)===null||ho===void 0)&&ho.find(function(Ti){return Ti===oo}))}),Do},[Je.filterValues.displayOptions]),uo=(0,C.useCallback)(function(Do){var oo=Tu()(Do.objects)||[],ho=Je.comparisons,Ti={labels:en.filters.labels,displayLabelIds:so,isTiledDiff:Oo},Fi=Je.filterValues.displayAnnotationType;if(oo=oo.filter(function(Va){var pi,Aa;return Va.mask&&Fi===Ja.JJ.Mask||Va.alpha&&Fi===Ja.JJ.Matting||((pi=Va.points)===null||pi===void 0?void 0:pi.length)&&Fi===Ja.JJ.KeyPoints||Va.segmentation&&Fi===Ja.JJ.Segmentation||!((Aa=Va.points)!==null&&Aa!==void 0&&Aa.length)&&Va.boundingBox&&Fi===Ja.JJ.Detection}).map(function(Va){return h()(h()({},Va),{},{mask:Fi===Ja.JJ.Mask?Va.mask:void 0,alpha:Fi===Ja.JJ.Matting?Va.alpha:void 0,points:Fi===Ja.JJ.KeyPoints?Va.points:void 0,segmentation:Fi===Ja.JJ.Segmentation?Va.segmentation:void 0,boundingBox:[Ja.JJ.Detection,Ja.JJ.KeyPoints].includes(Fi)?Va.boundingBox:void 0})}),ho){var Os=oo.filter(function(Va){return Va.source===Ja.$j.pred});oo=oo.filter(function(Va){return(Va.conf||0)>=ho.score}),oo=oo.map(function(Va){var pi=h()({},Va);if(Va.source===Ja.$j.gt){var Aa=(0,vc.isNumber)(Va.matchedDetIdx)&&Va.matchedDetIdx>=0&&oo.includes(Os[Va.matchedDetIdx])?Ja.BP.ok:Ja.BP.fn;pi.compareResult=Aa}return pi}),oo=oo.filter(function(Va){return Va.compareResult===Ja.BP.ok?Va.source&&ho.displays.includes(Va.source):Va.compareResult&&ho.displays.includes(Va.compareResult)})}return oo.filter(function(Va){var pi=ii.showAnnotations,Aa=ii.showAllCategory,Wo=Je.filterValues.categoryId||"";if(!pi||!Aa&&Va.categoryId!==Wo||Ti&&Va.labelId&&!Ti.displayLabelIds.includes(Va.labelId)||Ti&&Ti.isTiledDiff&&Va.labelId!==Do.curLabelId)return!1;if(!ho&&Ti){var fi=Ti.labels.find(function(Hi){return Hi.id===Va.labelId});return fi?fi.source===Ja.$j.gt?!0:Va.conf!==void 0&&Va.conf>=(fi==null?void 0:fi.confidenceRange[0])&&Va.conf<=(fi==null?void 0:fi.confidenceRange[1]):!1}return!0}).map(function(Va){var pi=h()({},Va),Aa=(0,ac.iE)(Va.labelId,so,Oo||!!Je.comparisons),Wo=Aa.colorAplha,fi=Aa.strokeDash,Hi=Aa.lineWidth;return ho&&Va.compareResult?pi.customStyles={pointAplha:Wo,strokeDash:fi,thickness:Hi,fillColor:Ja.pB[Va.compareResult]||"transparent"}:pi.customStyles={pointAplha:Wo,strokeDash:fi,thickness:Hi},pi})},[Je.filterValues.displayAnnotationType,Je.comparisons,en.filters.labels,so,Oo,ii]);return{pageState:Je,setPageState:Dt,pageData:en,setPageData:En,onInitPageState:Lr,onPageContentLoaded:ga,onPreviewIndexChange:io,exitPreview:$a,loadDatasetInfo:ja,loadImgList:da,loading:ka,displayLabelIds:so,isTiledDiff:Oo,displayOptionsResult:ii,displayObjectsFilter:uo}},lu=e(41260),Ui=function(){var K=(0,C.useState)(!1),B=Vo()(K,2),ue=B[0],Me=B[1],Le=(0,L.useModel)("dataset.common"),Je=Le.setPageState,Dt=function(){Me(!0)},Bt=function(){Me(!1)},lt=function(_n){Je(function(vr){vr.page=1,vr.filterValues.displayAnnotationType=Ja.JJ.Detection,vr.flagTools=void 0,vr.comparisons={label:_n,orderBy:Ja.YZ.fn,precision:_n.comparePrecisions[0].precision,displays:Ja.G3.map(function(Lr){return Lr.value}),diffMode:Ja.uP.Overlay,score:(0,lu.p)(_n.comparePrecisions[0].threshold,2)}})},en=function(){Je(function(_n){_n.page=1,_n.comparisons=void 0})},En=function(_n,vr){Je(function(Lr){if(Lr.comparisons&&(Lr.comparisons[_n]=vr,_n==="precision")){var ga=Lr.comparisons.label.comparePrecisions.find(function(wr){return wr.precision===vr});ga&&(Lr.comparisons.score=(0,lu.p)(ga.threshold,2))}})};return{showAnalysisModal:ue,openAnalysisModal:Dt,closeAnalysisModal:Bt,compareLabelSet:lt,exitComparisons:en,onFilterComparisonsPrecision:En}},bo=function(){var K=(0,L.useModel)("dataset.common"),B=K.pageState,ue=K.setPageState,Me=K.pageData,Le=K.setPageData,Je=function(vr){ue(function(Lr){Lr.filterValues.categoryId=vr,Lr.page=1})},Dt=function(vr){var Lr;typeof vr=="number"?Lr=vr:vr?Lr=B.cloumnCount1?B.cloumnCount-1:B.cloumnCount,ue(function(ga){ga.cloumnCount=Lr})},Bt=function(vr){ue(function(Lr){Lr.filterValues.displayOptions=vr})},lt=function(vr){ue(function(Lr){Lr.filterValues.selectedLabelIds=vr.sort(function(ga,wr){return Me.filters.labels.findIndex(function(ta){return ta.id===ga})-Me.filters.labels.findIndex(function(ta){return ta.id===wr})})})},en=function(vr){ue(function(Lr){Lr.filterValues.diffMode=vr})},En=function(vr,Lr){Le(function(ga){ga.filters.labels[vr].confidenceRange=Lr})},wn=function(vr){var Lr=(0,ac.B8)(B.filterValues.displayOptions,vr),ga=Vo()(Lr,2),wr=ga[0],ta=ga[1];Le(function(ja){ja.filters.displayOptions=wr}),ue(function(ja){ja.filterValues.displayAnnotationType=vr,ja.filterValues.displayOptions=ta})};return{onCategoryChange:Je,onColumnCountChange:Dt,onDisplayOptionsChange:Bt,onDisplayAnnotationTypeChange:wn,onLabelsChange:lt,onLabelsDiffModeChange:en,onLabelConfidenceChange:En}},vs=e(2556),mc=function(B){var ue=[],Me=[];return B.forEach(function(Le,Je){Le.selected&&(ue.push(Je),Me.push(Le.id))}),{selectIndexs:ue,selectedIds:Me}},bu=function(){var K=(0,L.useModel)("dataset.common"),B=K.pageState,ue=K.setPageState,Me=K.pageData,Le=K.setPageData,Je=K.loadImgList,Dt=(0,hl.x)(!1),Bt=Vo()(Dt,2),lt=Bt[0],en=Bt[1],En=function($a){Le(function(ka){if(B.flagTools){var so=!ka.imgList[$a].selected;if(lt&&ka.flagTools.lastShiftIndex>=0&&$a!==ka.flagTools.lastShiftIndex){var Oo=ka.flagTools.count;ka.imgList.forEach(function(ii,uo){(uo>=ka.flagTools.lastShiftIndex&&uo<=$a||uo>=$a&&uo<=ka.flagTools.lastShiftIndex)&&(Oo+=ii.selected?0:1,ii.selected=!0)}),ka.flagTools.lastShiftIndex=-1,ka.flagTools.count=Oo}else ka.imgList[$a].selected=so,ka.flagTools.lastShiftIndex=so?$a:-1,ka.flagTools.count+=so?1:-1}})},wn=function(){var $a=Me.flagTools.count!==B.pageSize;Le(function(ka){ka.imgList.forEach(function(so){so.selected=$a}),ka.flagTools.lastShiftIndex=-1,ka.flagTools.count=$a?B.pageSize:0})},_n=function(){Le(function($a){$a.imgList.forEach(function(ka){ka.selected=!ka.selected}),$a.flagTools.lastShiftIndex=-1,$a.flagTools.count=B.pageSize-$a.flagTools.count})},vr=function(){return new Promise(function($a){if(!B.flagTools){$a(null);return}var ka=mc(Me.imgList),so=ka.selectIndexs;if(so.length>0&&(so.length!==Me.flagTools.lastSavedIndexs.length||Me.flagTools.lastSavedIndexs.find(function(Oo){return!so.includes(Oo)}))){nc.Z.confirm({content:"Now selected items have not been saved, these will lose if you click 'OK', are you sure?",onOk:function(){$a(null)}});return}$a(null)})},Lr=function($a){vr().then(function(){ue(function(ka){ka.page=1,ka.flagTools.flagStatus=$a})})},ga=function(){Le(function($a){$a.flagTools.lastShiftIndex=-1,$a.flagTools.lastSavedIndexs=[],$a.flagTools.count=0}),ue(function($a){$a.page=1,$a.flagTools={flagStatus:Ja.po.all}})},wr=function(){vr().then(function(){ue(function($a){$a.page=1,$a.flagTools=void 0})})},ta=function(){var io=w()(g()().mark(function $a(ka){var so,Oo,ii,uo;return g()().wrap(function(oo){for(;;)switch(oo.prev=oo.next){case 0:if(!(Me.flagTools.count<=0)){oo.next=3;break}return N.ZP.warning("No any image to be selected!"),oo.abrupt("return");case 3:return so=mc(Me.imgList),Oo=so.selectIndexs,ii=so.selectedIds,uo=N.ZP.loading("Flag saving..."),oo.prev=5,oo.next=8,ve({datasetId:B.datasetId,flagGroups:[{flag:ka,ids:ii}]});case 8:uo(),Le(function(ho){ho.imgList.forEach(function(Ti){Ti.selected&&(Ti.flag=ka)}),ho.flagTools.lastSavedIndexs=Oo}),oo.next=17;break;case 12:oo.prev=12,oo.t0=oo.catch(5),console.error("error",oo.t0),uo(),N.ZP.error("Flag save fail, please retry!");case 17:case"end":return oo.stop()}},$a,null,[[5,12]])}));return function(ka){return io.apply(this,arguments)}}(),ja=(0,Hu.Z)(function(io){return jn(io)},{manual:!0,pollingInterval:1e3,pollingWhenHidden:!0,onSuccess:function($a){var ka=$a.status;ka==="success"?(Fa(),N.ZP.success("Order update success!"),Le(function(so){so.screenLoading=""}),ue(function(so){so.page=1}),Je()):ka==="fail"&&(Fa(),N.ZP.error("Query order task fail, Please retry!"),Le(function(so){so.screenLoading=""}))}}),vo=ja.run,Fa=ja.cancel,da=function(){var io=w()(g()().mark(function $a(){var ka,so,Oo;return g()().wrap(function(uo){for(;;)switch(uo.prev=uo.next){case 0:return uo.prev=0,Le(function(Do){Do.screenLoading="Updating order..."}),uo.next=4,ot({datasetId:B.datasetId});case 4:ka=uo.sent,so=ka.id,Oo=ka.name,vo({id:so,name:Oo}),uo.next=14;break;case 10:uo.prev=10,uo.t0=uo.catch(0),console.error("error",uo.t0),Le(function(Do){Do.screenLoading=""});case 14:case"end":return uo.stop()}},$a,null,[[0,10]])}));return function(){return io.apply(this,arguments)}}();return(0,vs.Z)(["Shift"],function(io){!B.flagTools||B.previewIndex>=0||en(io.type==="keydown")},{events:["keydown","keyup"]}),(0,vs.Z)(["shift.q","shift.Q","shift.e","shift.E","v","V"],function(io){!B.flagTools||B.previewIndex>=0||(["v","V"].includes(io.key)&&_n(),["q","Q"].includes(io.key)&&io.shiftKey&&ta(Ja.po.picked),["e","E"].includes(io.key)&&io.shiftKey&&ta(Ja.po.rejected))}),{enterFlagTools:ga,exitFlagTools:wr,onChangeFlagStatus:Lr,selectItem:En,changeSelectAll:wn,antiSelect:_n,limitNoSaveChangePage:vr,saveFlag:ta,updateOrder:da}},oc=function(){var K=(0,hl.x)({page:1,pageSize:Ja.L8}),B=Vo()(K,2),ue=B[0],Me=B[1],Le=(0,hl.x)({list:[],total:0}),Je=Vo()(Le,2),Dt=Je[0],Bt=Je[1],lt=(0,Hu.Z)(function(vr,Lr){return Lu({pageNum:vr||ue.page,pageSize:Lr||ue.pageSize})},{manual:!0,debounceWait:100,refreshDeps:[ue.page,ue.pageSize],onSuccess:function(Lr){var ga=Lr.datasetList,wr=Lr.total;Bt(function(ta){ta.list=ga,ta.total=wr})},onError:function(){}}),en=lt.loading,En=lt.run,wn=function(Lr){Me(function(ga){ga.page=Lr}),En(Lr)},_n=function(Lr,ga){Me(function(wr){wr.page=Lr,wr.pageSize=ga}),En(Lr,ga)};return{loading:en,pagination:ue,datasetsData:Dt,loadDatasets:En,setPagination:Me,onPageChange:wn,onPageSizeChange:_n}},Fc=e(7214),_s=e(21325),al=!1;(0,Fc.ac)(function(K){al=K});var Oc=function(){var K=(0,C.useState)(!1),B=Vo()(K,2),ue=B[0],Me=B[1],Le=(0,C.useState)(""),Je=Vo()(Le,2),Dt=Je[0],Bt=Je[1],lt=(0,C.useState)(al),en=Vo()(lt,2),En=en[0],wn=en[1],_n=(0,C.useState)(0),vr=Vo()(_n,2),Lr=vr[0],ga=vr[1],wr=(0,C.useState)(window.innerWidth),ta=Vo()(wr,2),ja=ta[0],vo=ta[1];return(0,C.useEffect)(function(){(0,Fc.ac)(function(Fa){wn(Fa)})},[]),(0,C.useEffect)(function(){vo(window.innerWidth-Lr)},[Lr]),(0,_s.Z)("resize",function(){var Fa=window.innerWidth-Lr;vo(Fa)},{target:window}),{loading:ue,setLoading:Me,loadingTip:Dt,setLoadingTip:Bt,isMobile:En,fixSliderWidth:Lr,setFixSliderWidth:ga,layoutInnerWidth:ja}};function ic(K){return ol.apply(this,arguments)}function ol(){return ol=w()(g()().mark(function K(B){return g()().wrap(function(Me){for(;;)switch(Me.prev=Me.next){case 0:return Me.abrupt("return",(0,L.request)("/api/v1/user_info",h()({method:"GET",skipErrorHandler:!0},B||{})));case 1:case"end":return Me.stop()}},K)})),ol.apply(this,arguments)}function Bl(K,B){return Ru.apply(this,arguments)}function Ru(){return Ru=w()(g()().mark(function K(B,ue){return g()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:return Le.abrupt("return",(0,L.request)("/api/v1/login",h()({method:"POST",data:h()({},B),skipErrorHandler:!0},ue||{})));case 1:case"end":return Le.stop()}},K)})),Ru.apply(this,arguments)}function Ys(K){return $l.apply(this,arguments)}function $l(){return $l=w()(g()().mark(function K(B){return g()().wrap(function(Me){for(;;)switch(Me.prev=Me.next){case 0:return Me.abrupt("return",(0,L.request)("/api/v1/logout",h()({method:"POST"},B||{})));case 1:case"end":return Me.stop()}},K)})),$l.apply(this,arguments)}var Dc=function(){var K=(0,L.useModel)("global"),B=K.setLoading,ue=(0,C.useState)(!1),Me=Vo()(ue,2),Le=Me[0],Je=Me[1],Dt=(0,hl.x)({}),Bt=Vo()(Dt,2),lt=Bt[0],en=Bt[1],En=function(){return new Promise(function(ga){if(lt.isLogin){ga(null);return}Je(!0)})},wn=function(){var Lr=w()(g()().mark(function ga(){var wr,ta,ja,vo,Fa,da;return g()().wrap(function($a){for(;;)switch($a.prev=$a.next){case 0:return $a.prev=0,wr=localStorage.getItem(Ja.Uf.AUTH_TOKEN),$a.next=4,ic();case 4:ta=$a.sent,ja=ta.id,vo=ta.name,Fa=ta.status,da=ta.isStaff,wr&&Fa===Ja.oC.Active&&en({isLogin:!0,username:vo,userId:ja,token:wr,isStaff:da}),$a.next=16;break;case 12:$a.prev=12,$a.t0=$a.catch(0),console.error("error",$a.t0),en({isLogin:!1});case 16:case"end":return $a.stop()}},ga,null,[[0,12]])}));return function(){return Lr.apply(this,arguments)}}(),_n=function(){var Lr=w()(g()().mark(function ga(wr){var ta,ja,vo,Fa,da,io,$a,ka,so;return g()().wrap(function(ii){for(;;)switch(ii.prev=ii.next){case 0:return ta=wr.username,ja=wr.password,vo=window.location.pathname,Fa=vo.includes("page/login"),B(!0),ii.prev=4,ii.next=7,Bl({username:ta,password:ja});case 7:da=ii.sent,io=da.username,$a=da.userId,ka=da.token,so=da.isStaff,en({isLogin:!0,username:io,token:ka,userId:$a,isStaff:so}),localStorage.setItem(Ja.Uf.AUTH_TOKEN,ka),Fa||Je(!1),N.ZP.success((0,es._w)("loginSuccess")),ii.next=21;break;case 18:ii.prev=18,ii.t0=ii.catch(4),N.ZP.error((0,es._w)("loginAuthenticationFailed"));case 21:return ii.prev=21,B(!1),ii.finish(21);case 24:case"end":return ii.stop()}},ga,null,[[4,18,21,24]])}));return function(wr){return Lr.apply(this,arguments)}}(),vr=function(){var Lr=w()(g()().mark(function ga(){return g()().wrap(function(ta){for(;;)switch(ta.prev=ta.next){case 0:return ta.prev=0,ta.next=3,Ys();case 3:en({isLogin:!1}),N.ZP.success((0,es._w)("logoutSuccess")),localStorage.removeItem(Ja.Uf.AUTH_TOKEN),L.history.push("/"),ta.next=13;break;case 9:ta.prev=9,ta.t0=ta.catch(0),console.error("error",ta.t0),N.ZP.error((0,es._w)("logoutFailed"));case 13:case"end":return ta.stop()}},ga,null,[[0,9]])}));return function(){return Lr.apply(this,arguments)}}();return{user:lt,setUser:en,checkLoginStatus:wn,onLogin:_n,onLogout:vr,showLoginModal:Le,setShowLoginModal:Je,limitLoginAction:En}},wc=e(1239),pc=e(32694),Bc=e(54518),$c=e(93059),hc=e(45060),jc=e(16962),Xl=e.n(jc),Mu=e(88479),Ue=e.n(Mu),he=e(17410),Pe=e(67761),Bn=e(46134),vt=function(B,ue){var Me=function(En){return"".concat(B).concat(En)},Le=function(En){return En.startsWith(B)},Je=function(En){var wn=En.substring(B.length),_n=parseInt(wn);return isNaN(_n)?-1:_n},Dt=function(En){var wn=En.filter(function(_n){return!!_n.id&&Le(_n.id)}).map(function(_n){return Je(_n.id)});return wn.length>0?Math.max.apply(Math,Tu()(wn)):-1},Bt=Dt(ue)+1,lt=function(En){return En&&Le(En)?Je(En):Bt++};return{getStringItemId:Me,getIntItemId:lt}},Tn="user_import_category",bn="user_import_image",On="user_import_annot",Nn=function(){var K=w()(g()().mark(function B(ue){var Me,Le,Je,Dt,Bt,lt,en,En,wn,_n,vr,Lr;return g()().wrap(function(wr){for(;;)switch(wr.prev=wr.next){case 0:Me=ue.info,Le=ue.images,Je=ue.categories,Dt={info:{},images:[],categories:[],annotations:[]},Dt.info=h()(h()({},Me),{},{year:new Date().getFullYear(),date_created:new Date().toISOString()}),Bt=vt(Tn,Je),lt=Bt.getIntItemId,en={},Je.forEach(function(ta){var ja=lt(ta.id);en[ta.name]=ja,Dt.categories.push({id:ja,name:ta.name})}),En=vt(bn,Le),wn=En.getIntItemId,_n=Ue()(Le),wr.prev=8,Lr=g()().mark(function ta(){var ja,vo,Fa,da;return g()().wrap(function($a){for(;;)switch($a.prev=$a.next){case 0:if(ja=vr.value,vo=wn(ja.id),Fa={width:0,height:0},!(!ja.width||!ja.height)){$a.next=10;break}return $a.next=6,(0,hc.pz)(ja.urlFullRes);case 6:da=$a.sent,Fa=da,$a.next=12;break;case 10:Fa.width=ja.width,Fa.height=ja.height;case 12:Dt.images.push(h()({id:vo,file_name:ja.name},Fa)),ja.objects.forEach(function(ka){var so={id:Dt.annotations.length,image_id:vo};if(en&&ka.categoryName&&en[ka.categoryName]!==void 0&&(so.category_id=en[ka.categoryName]),ka.boundingBox){var Oo=(0,Bn.cO)(ka.boundingBox,Fa),ii=Oo.x,uo=Oo.y,Do=Oo.width,oo=Oo.height,ho=Do*oo,Ti=[ii,uo,Do,oo];Object.assign(so,{area:ho,bbox:Ti})}if(ka.segmentation){var Fi=ka.segmentation.split("/").map(function(il){return il.split(",").map(function(Vi){return parseFloat(Vi)})}),Os=Fi.reduce(function(il,Vi){var Su=(0,Bn.X6)(Vi),Yu=(0,Bn.I4)(Su);return il+Yu},0);Object.assign(so,{segmentation:Fi,area:Os})}if(ka.mask){var Va=(0,Pe.ei)(ka.mask.counts||"",Fa,"#fff"),pi=ka.mask;if(Va){var Aa=(0,Bn.e4)(Va),Wo=Aa.area;Object.assign(so,{segmentation:pi,area:Wo})}else Object.assign(so,{segmentation:pi})}if(ka.points&&ka.points.length>0){for(var fi=ka.points,Hi=[],Ds=0,yi=0;yi*60&&(wr.categories=Le==null?void 0:Le.map(function(Fa){var da=Fa.id,io=Fa.name;return{id:wn(da),name:io}})),Je&&Je.length>0){var ta=new Map(wr.images.map(function(Fa){return[Fa.name,Fa]}));Je.forEach(function(Fa){var da=ta.get(Fa.file_name);da&&(da.id=vr(Fa.id),da.width=Fa.width,da.height=Fa.height)})}if(Dt&&Dt.length>0){var ja=new Map(Je.map(function(Fa){return[Fa.id,Fa]})),vo=new Map(wr.images.map(function(Fa){return[Fa.id,Fa]}));Dt.forEach(function(Fa){var da=Fa.id,io=Fa.image_id,$a=Fa.category_id,ka=Fa.bbox,so=Fa.segmentation,Oo=Fa.keypoints,ii=Fa.num_keypoints,uo=ja.get(io),Do=vo.get(vr(io));if(uo&&Do){var oo,ho=uo.width,Ti=uo.height,Fi={id:ga(da),categoryId:wn($a),categoryName:Le==null||(oo=Le.find(function(Ds){return Ds.id===$a}))===null||oo===void 0?void 0:oo.name};if(ka){var Os=Vo()(ka,4),Va=Os[0],pi=Os[1],Aa=Os[2],Wo=Os[3];Object.assign(Fi,{boundingBox:(0,Bn.kq)({x:Va,y:pi,width:Aa,height:Wo},{width:ho,height:Ti})})}if(so&&(Array.isArray(so)?Object.assign(Fi,{segmentation:so==null?void 0:so.map(function(Ds){var yi;return(yi=Ds.map(function(il){return il.toString()}))===null||yi===void 0?void 0:yi.join(",")}).join("/")}):typeof so.counts=="string"&&Object.assign(Fi,{mask:so})),Oo&&ii===he.v_.pointNames.length){for(var fi=[],Hi=0;Hi*3-1?Dt:0),L.history.push("/quickstart")},fi=function(){ue.length<=0||(ka(ue),uo(!1))},Hi=function(){Aa(),uo(!1),Bt(-1)},Ds=(0,C.useCallback)(function(gs){var Gi=ue.find(function(Pi){return Pi.id===$a[gs].id});return Gi&&Gi.objects.length>0},[ue,$a]),yi=(0,C.useCallback)(function(gs){return Ds(gs)?(ml.Z.error({message:(0,es._w)("quicklabel.formModal.deleteImage.title"),description:(0,es._w)("quicklabel.formModal.deleteImage.desc"),duration:3}),!0):!1},[Ds]),il=function(){var gs=w()(g()().mark(function Gi(){var Pi,is;return g()().wrap(function(uu){for(;;)switch(uu.prev=uu.next){case 0:return uu.next=2,Nn({info:En,images:ue,categories:Lr});case 2:Pi=uu.sent,is=(0,hc.XV)(Date.now(),"Annotations"),(0,hc.Gf)(Pi,is);case 5:case"end":return uu.stop()}},Gi)}));return function(){return gs.apply(this,arguments)}}(),Vi=function(Gi){var Pi=Gi.file,is=Gi.fileList;if(!(is.length===0||!is[0].originFileObj)){var wl=new FileReader;wl.readAsText(is[0].originFileObj),wl.onload=function(uu){var Ms,zs=JSON.parse((Ms=uu.target)===null||Ms===void 0?void 0:Ms.result),cu=mr(zs);cu.success?(Ti([Pi]),pi(zs)):N.ZP.error(cu.message)}}},Su=function(Gi){var Pi=ho.findIndex(function(is){return is.uid===Gi.uid});ho.splice(Pi,1),Ti(Tu()(ho)),pi(yr)},Yu=function(Gi){vo(Gi),Bt(-1)},sc=function(){vo(null),Bt(-1)};return{qsModalVisible:ii,setQsModalVisible:uo,uploadFiles:$a,setUploadFiles:ka,images:ue,setImages:Me,filterImages:Fa,onClickQuickstart:Wo,onCancelUploadFiles:fi,onConfirmUploadFiles:Hi,limitRemoveFile:yi,current:Dt,setCurrent:Bt,categories:Lr,setCategories:ga,filterCategoryName:ja,setFilterCategoryName:vo,exportAnnotations:il,uploadPreAnnot:ho,onChangePreAnnotFile:Vi,onRemovePreAnnotFile:Su,onSelectFilterCategory:Yu,onClearFilterCategory:sc}},ea=function(){return Ln()},Cr=function(){var K=(0,L.useModel)("dataset.common"),B=K.pageState,ue=K.setPageState,Me=K.setPageData,Le=function(wn){ue(function(_n){_n.previewIndex=wn})},Je=function(wn){ue(function(_n){_n.previewIndex=wn})},Dt=function(wn){B.page!==wn&&ue(function(_n){_n.page=wn})},Bt=function(wn,_n){ue(function(vr){vr.pageSize=_n})},lt=function(){},en=function(){Me(function(wn){Object.assign(wn,_u)}),ue(function(wn){Object.assign(wn,Nu)})};return{onPageDidMount:lt,onPageWillUnmount:en,clickItem:Le,doubleClickItem:Je,onPageChange:Dt,onPageSizeChange:Bt}},ir=e(86724),Sr=e.n(ir),Ir=function(){var K=(0,L.useModel)("datasets"),B=K.loadDatasets,ue=K.setPagination,Me=function(Bt){var lt=JSON.stringify({datasetId:Bt.id,datasetName:Bt.name});L.history.push("/dataset/detail?pageState=".concat(encodeURIComponent(lt)))},Le=function(Bt,lt){var en=JSON.stringify({datasetId:lt.id,datasetName:lt.name}),En="".concat(window.location.origin,"/page/dataset/detail?pageState=").concat(encodeURIComponent(en)),wn=Sr()(En);wn&&N.ZP.success((0,es._w)("dataset.onClickCopyLink.success")),Bt.stopPropagation()},Je=function(Bt){ue(function(lt){Object.assign(lt,{page:1,pageSize:Ja.L8},Bt)}),B()};return{onInitPageState:Je,onClickItem:Me,onClickCopyLink:Le}},ia=e(23707),Kn=function(){var K=(0,L.useModel)("datasets"),B=K.loadDatasets,ue=K.setPagination,Me=(0,ia.BQ)("type")||"flagtool",Le=function(lt){var en=JSON.stringify({datasetId:lt.id,datasetName:lt.name});L.history.push("/lab/".concat(Me,"?pageState=").concat(encodeURIComponent(en)))},Je=function(lt,en){var En=JSON.stringify({datasetId:en.id,datasetName:en.name}),wn="".concat(window.location.origin,"/page/dataset/detail?pageState=").concat(encodeURIComponent(En)),_n=Sr()(wn);_n&&N.ZP.success((0,es._w)("lab.onClickCopyLink.success")),lt.stopPropagation()},Dt=function(lt){ue(function(en){Object.assign(en,{page:1,pageSize:Ja.L8},lt)}),B()};return{labType:Me,onInitPageState:Dt,onClickItem:Le,onClickCopyLink:Je}},Yr=function(){var K=(0,L.useModel)("user"),B=K.showLoginModal,ue=(0,L.useModel)("dataset.common"),Me=ue.pageState,Le=ue.setPageState,Je=ue.pageData,Dt=ue.setPageData,Bt=(0,L.useModel)("dataset.flag"),lt=Bt.selectItem,en=Bt.enterFlagTools,En=Bt.limitNoSaveChangePage,wn=function(ja){lt(ja)},_n=function(ja){Le(function(vo){vo.previewIndex=ja})},vr=function(ja){Me.page!==ja&&En().then(function(){Le(function(vo){vo.page=ja})})},Lr=function(ja,vo){En().then(function(){Le(function(Fa){Fa.pageSize=vo})})};(0,vs.Z)(["a","A","d","D","shift.q","shift.Q","shift.e","shift.E","z","Z"],function(ta){Me.previewIndex>=0||B||(["a","A"].includes(ta.key)&&Me.page>1&&vr(Me.page-1),["d","D"].includes(ta.key)&&Me.page=0)&&(It[kt]=ct[kt]);return It}const c=["onClick","reloadDocument","replace","state","target","to"],m=null;function g(ct,dt){if(!ct){typeof console!="undefined"&&console.warn(dt);try{throw new Error(dt)}catch(It){}}}function M(ct){let{basename:dt,children:It,window:Ct}=ct,kt=useRef();kt.current==null&&(kt.current=createBrowserHistory({window:Ct}));let un=kt.current,[nn,xn]=useState({action:un.action,location:un.location});return useLayoutEffect(()=>un.listen(xn),[un]),createElement(Router,{basename:dt,children:It,location:nn.location,navigationType:nn.action,navigator:un})}function h(ct){let{basename:dt,children:It,window:Ct}=ct,kt=useRef();kt.current==null&&(kt.current=createHashHistory({window:Ct}));let un=kt.current,[nn,xn]=useState({action:un.action,location:un.location});return useLayoutEffect(()=>un.listen(xn),[un]),createElement(Router,{basename:dt,children:It,location:nn.location,navigationType:nn.action,navigator:un})}function S(ct){let{basename:dt,children:It,history:Ct}=ct;const[kt,un]=useState({action:Ct.action,location:Ct.location});return useLayoutEffect(()=>Ct.listen(un),[Ct]),createElement(Router,{basename:dt,children:It,location:kt.location,navigationType:kt.action,navigator:Ct})}function w(ct){return!!(ct.metaKey||ct.altKey||ct.ctrlKey||ct.shiftKey)}const C=(0,o.forwardRef)(function(dt,It){let{onClick:Ct,reloadDocument:kt,replace:un=!1,state:nn,target:xn,to:Rn}=dt,Mr=l(dt,c),er=(0,s.useHref)(Rn),zn=Z(Rn,{replace:un,state:nn,target:xn});function Ur(pr){Ct&&Ct(pr),!pr.defaultPrevented&&!kt&&zn(pr)}return(0,o.createElement)("a",d({},Mr,{href:er,onClick:Ur,ref:It,target:xn}))}),z=null;function Z(ct,dt){let{target:It,replace:Ct,state:kt}=dt===void 0?{}:dt,un=(0,s.useNavigate)(),nn=(0,s.useLocation)(),xn=(0,s.useResolvedPath)(ct);return(0,o.useCallback)(Rn=>{if(Rn.button===0&&(!It||It==="_self")&&!w(Rn)){Rn.preventDefault();let Mr=!!Ct||(0,n.Ep)(nn)===(0,n.Ep)(xn);un(ct,{replace:Mr,state:kt})}},[nn,un,xn,Ct,kt,It,ct])}function N(ct){let dt=useRef(L(ct)),It=useLocation(),Ct=useMemo(()=>{let nn=L(It.search);for(let xn of dt.current.keys())nn.has(xn)||dt.current.getAll(xn).forEach(Rn=>{nn.append(xn,Rn)});return nn},[It.search]),kt=useNavigate(),un=useCallback((nn,xn)=>{kt("?"+L(nn),xn)},[kt]);return[Ct,un]}function L(ct){return ct===void 0&&(ct=""),new URLSearchParams(typeof ct=="string"||Array.isArray(ct)||ct instanceof URLSearchParams?ct:Object.keys(ct).reduce((dt,It)=>{let Ct=ct[It];return dt.concat(Array.isArray(Ct)?Ct.map(kt=>[It,kt]):[[It,Ct]])},[]))}var $=e(60581),D=["prefetch"];function T(ct){var dt,It=ct.prefetch,Ct=(0,t.Z)(ct,D),kt=(0,$.Ov)(),un=typeof ct.to=="string"?ct.to:(dt=ct.to)===null||dt===void 0?void 0:dt.pathname;return un?o.createElement(C,(0,a.Z)({onMouseEnter:function(){var xn;return It&&un&&((xn=kt.preloadRoute)===null||xn===void 0?void 0:xn.call(kt,un))}},Ct),ct.children):null}var j=e(83753);function G(){"use strict";G=function(){return ct};var ct={},dt=Object.prototype,It=dt.hasOwnProperty,Ct=Object.defineProperty||function(Wn,Fn,hr){Wn[Fn]=hr.value},kt=typeof Symbol=="function"?Symbol:{},un=kt.iterator||"@@iterator",nn=kt.asyncIterator||"@@asyncIterator",xn=kt.toStringTag||"@@toStringTag";function Rn(Wn,Fn,hr){return Object.defineProperty(Wn,Fn,{value:hr,enumerable:!0,configurable:!0,writable:!0}),Wn[Fn]}try{Rn({},"")}catch(Wn){Rn=function(hr,Kr,Ar){return hr[Kr]=Ar}}function Mr(Wn,Fn,hr,Kr){var Ar=Fn&&Fn.prototype instanceof Ur?Fn:Ur,Pt=Object.create(Ar.prototype),an=new Zr(Kr||[]);return Ct(Pt,"_invoke",{value:Gr(Wn,hr,an)}),Pt}function er(Wn,Fn,hr){try{return{type:"normal",arg:Wn.call(Fn,hr)}}catch(Kr){return{type:"throw",arg:Kr}}}ct.wrap=Mr;var zn={};function Ur(){}function pr(){}function sa(){}var Nr={};Rn(Nr,un,function(){return this});var Zn=Object.getPrototypeOf,In=Zn&&Zn(Zn(Ea([])));In&&In!==dt&&It.call(In,un)&&(Nr=In);var Pn=sa.prototype=Ur.prototype=Object.create(Nr);function rr(Wn){["next","throw","return"].forEach(function(Fn){Rn(Wn,Fn,function(hr){return this._invoke(Fn,hr)})})}function br(Wn,Fn){function hr(Ar,Pt,an,pn){var qa=er(Wn[Ar],Wn,Pt);if(qa.type!=="throw"){var Mo=qa.arg,Ua=Mo.value;return Ua&&(0,j.Z)(Ua)=="object"&&It.call(Ua,"__await")?Fn.resolve(Ua.__await).then(function(Wa){hr("next",Wa,an,pn)},function(Wa){hr("throw",Wa,an,pn)}):Fn.resolve(Ua).then(function(Wa){Mo.value=Wa,an(Mo)},function(Wa){return hr("throw",Wa,an,pn)})}pn(qa.arg)}var Kr;Ct(this,"_invoke",{value:function(Pt,an){function pn(){return new Fn(function(qa,Mo){hr(Pt,an,qa,Mo)})}return Kr=Kr?Kr.then(pn,pn):pn()}})}function Gr(Wn,Fn,hr){var Kr="suspendedStart";return function(Ar,Pt){if(Kr==="executing")throw new Error("Generator is already running");if(Kr==="completed"){if(Ar==="throw")throw Pt;return ha()}for(hr.method=Ar,hr.arg=Pt;;){var an=hr.delegate;if(an){var pn=na(an,hr);if(pn){if(pn===zn)continue;return pn}}if(hr.method==="next")hr.sent=hr._sent=hr.arg;else if(hr.method==="throw"){if(Kr==="suspendedStart")throw Kr="completed",hr.arg;hr.dispatchException(hr.arg)}else hr.method==="return"&&hr.abrupt("return",hr.arg);Kr="executing";var qa=er(Wn,Fn,hr);if(qa.type==="normal"){if(Kr=hr.done?"completed":"suspendedYield",qa.arg===zn)continue;return{value:qa.arg,done:hr.done}}qa.type==="throw"&&(Kr="completed",hr.method="throw",hr.arg=qa.arg)}}}function na(Wn,Fn){var hr=Fn.method,Kr=Wn.iterator[hr];if(Kr===void 0)return Fn.delegate=null,hr==="throw"&&Wn.iterator.return&&(Fn.method="return",Fn.arg=void 0,na(Wn,Fn),Fn.method==="throw")||hr!=="return"&&(Fn.method="throw",Fn.arg=new TypeError("The iterator does not provide a '"+hr+"' method")),zn;var Ar=er(Kr,Wn.iterator,Fn.arg);if(Ar.type==="throw")return Fn.method="throw",Fn.arg=Ar.arg,Fn.delegate=null,zn;var Pt=Ar.arg;return Pt?Pt.done?(Fn[Wn.resultName]=Pt.value,Fn.next=Wn.nextLoc,Fn.method!=="return"&&(Fn.method="next",Fn.arg=void 0),Fn.delegate=null,zn):Pt:(Fn.method="throw",Fn.arg=new TypeError("iterator result is not an object"),Fn.delegate=null,zn)}function pa(Wn){var Fn={tryLoc:Wn[0]};1 in Wn&&(Fn.catchLoc=Wn[1]),2 in Wn&&(Fn.finallyLoc=Wn[2],Fn.afterLoc=Wn[3]),this.tryEntries.push(Fn)}function cr(Wn){var Fn=Wn.completion||{};Fn.type="normal",delete Fn.arg,Wn.completion=Fn}function Zr(Wn){this.tryEntries=[{tryLoc:"root"}],Wn.forEach(pa,this),this.reset(!0)}function Ea(Wn){if(Wn){var Fn=Wn[un];if(Fn)return Fn.call(Wn);if(typeof Wn.next=="function")return Wn;if(!isNaN(Wn.length)){var hr=-1,Kr=function Ar(){for(;++hr=0;--Ar){var Pt=this.tryEntries[Ar],an=Pt.completion;if(Pt.tryLoc==="root")return Kr("end");if(Pt.tryLoc<=this.prev){var pn=It.call(Pt,"catchLoc"),qa=It.call(Pt,"finallyLoc");if(pn&&qa){if(this.prev=0;--Kr){var Ar=this.tryEntries[Kr];if(Ar.tryLoc<=this.prev&&It.call(Ar,"finallyLoc")&&this.prev=0;--hr){var Kr=this.tryEntries[hr];if(Kr.finallyLoc===Fn)return this.complete(Kr.completion,Kr.afterLoc),cr(Kr),zn}},catch:function(Fn){for(var hr=this.tryEntries.length-1;hr>=0;--hr){var Kr=this.tryEntries[hr];if(Kr.tryLoc===Fn){var Ar=Kr.completion;if(Ar.type==="throw"){var Pt=Ar.arg;cr(Kr)}return Pt}}throw new Error("illegal catch attempt")},delegateYield:function(Fn,hr,Kr){return this.delegate={iterator:Ea(Fn),resultName:hr,nextLoc:Kr},this.method==="next"&&(this.arg=void 0),zn}},ct}var k=e(5452);function te(ct,dt,It,Ct,kt,un,nn){try{var xn=ct[un](nn),Rn=xn.value}catch(Mr){It(Mr);return}xn.done?dt(Rn):Promise.resolve(Rn).then(Ct,kt)}function Y(ct){return function(){var dt=this,It=arguments;return new Promise(function(Ct,kt){var un=ct.apply(dt,It);function nn(Rn){te(un,Ct,kt,nn,xn,"next",Rn)}function xn(Rn){te(un,Ct,kt,nn,xn,"throw",Rn)}nn(void 0)})}}var q=e(50648);function le(ct,dt){var It=typeof Symbol!="undefined"&&ct[Symbol.iterator]||ct["@@iterator"];if(!It){if(Array.isArray(ct)||(It=(0,q.Z)(ct))||dt&&ct&&typeof ct.length=="number"){It&&(ct=It);var Ct=0,kt=function(){};return{s:kt,n:function(){return Ct>=ct.length?{done:!0}:{done:!1,value:ct[Ct++]}},e:function(Mr){throw Mr},f:kt}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var un=!0,nn=!1,xn;return{s:function(){It=It.call(ct)},n:function(){var Mr=It.next();return un=Mr.done,Mr},e:function(Mr){nn=!0,xn=Mr},f:function(){try{!un&&It.return!=null&&It.return()}finally{if(nn)throw xn}}}}var X=e(40642);function W(ct){if(typeof Symbol!="undefined"&&ct[Symbol.iterator]!=null||ct["@@iterator"]!=null)return Array.from(ct)}var x=e(8010);function O(ct){return(0,X.Z)(ct)||W(ct)||(0,q.Z)(ct)||(0,x.Z)()}function _(ct,dt){if(!(ct instanceof dt))throw new TypeError("Cannot call a class as a function")}var U=e(4566);function A(ct,dt){for(var It=0;It-1,"register failed, invalid key ".concat(kt," ").concat(It.path?"from plugin ".concat(It.path):"",".")),Ct.hooks[kt]=(Ct.hooks[kt]||[]).concat(It.apply[kt])})}},{key:"getHooks",value:function(It){var Ct=It.split("."),kt=O(Ct),un=kt[0],nn=kt.slice(1),xn=this.hooks[un]||[];return nn.length&&(xn=xn.map(function(Rn){try{var Mr=Rn,er=le(nn),zn;try{for(er.s();!(zn=er.n()).done;){var Ur=zn.value;Mr=Mr[Ur]}}catch(pr){er.e(pr)}finally{er.f()}return Mr}catch(pr){return null}}).filter(Boolean)),xn}},{key:"applyPlugins",value:function(It){var Ct=It.key,kt=It.type,un=It.initialValue,nn=It.args,xn=It.async,Rn=this.getHooks(Ct)||[];switch(nn&&pe((0,j.Z)(nn)==="object","applyPlugins failed, args must be plain object."),xn&&pe(kt===Te.modify||kt===Te.event,"async only works with modify and event type."),kt){case Te.modify:return xn?Rn.reduce(function(){var Mr=Y(G().mark(function er(zn,Ur){var pr;return G().wrap(function(Nr){for(;;)switch(Nr.prev=Nr.next){case 0:if(pe(typeof Ur=="function"||(0,j.Z)(Ur)==="object"||be(Ur),"applyPlugins failed, all hooks for key ".concat(Ct," must be function, plain object or Promise.")),!be(zn)){Nr.next=5;break}return Nr.next=4,zn;case 4:zn=Nr.sent;case 5:if(typeof Ur!="function"){Nr.next=16;break}if(pr=Ur(zn,nn),!be(pr)){Nr.next=13;break}return Nr.next=10,pr;case 10:return Nr.abrupt("return",Nr.sent);case 13:return Nr.abrupt("return",pr);case 14:Nr.next=21;break;case 16:if(!be(Ur)){Nr.next=20;break}return Nr.next=19,Ur;case 19:Ur=Nr.sent;case 20:return Nr.abrupt("return",(0,k.Z)((0,k.Z)({},zn),Ur));case 21:case"end":return Nr.stop()}},er)}));return function(er,zn){return Mr.apply(this,arguments)}}(),be(un)?un:Promise.resolve(un)):Rn.reduce(function(Mr,er){return pe(typeof er=="function"||(0,j.Z)(er)==="object","applyPlugins failed, all hooks for key ".concat(Ct," must be function or plain object.")),typeof er=="function"?er(Mr,nn):(0,k.Z)((0,k.Z)({},Mr),er)},un);case Te.event:return Y(G().mark(function Mr(){var er,zn,Ur,pr;return G().wrap(function(Nr){for(;;)switch(Nr.prev=Nr.next){case 0:er=le(Rn),Nr.prev=1,er.s();case 3:if((zn=er.n()).done){Nr.next=12;break}if(Ur=zn.value,pe(typeof Ur=="function","applyPlugins failed, all hooks for key ".concat(Ct," must be function.")),pr=Ur(nn),!(xn&&be(pr))){Nr.next=10;break}return Nr.next=10,pr;case 10:Nr.next=3;break;case 12:Nr.next=17;break;case 14:Nr.prev=14,Nr.t0=Nr.catch(1),er.e(Nr.t0);case 17:return Nr.prev=17,er.f(),Nr.finish(17);case 20:case"end":return Nr.stop()}},Mr,null,[[1,14,17,20]])}))();case Te.compose:return function(){return ge({fns:Rn.concat(un),args:nn})()}}}}],[{key:"create",value:function(It){var Ct=new ct({validKeys:It.validKeys});return It.plugins.forEach(function(kt){Ct.register(kt)}),Ct}}]),ct}(),qe=e(12763),Qe=e(16962),ht=e.n(Qe),Et=0,gt=0;function Ht(ct,dt){if(!1)var It}function $e(ct){return JSON.stringify(ct,null,2)}function Xe(ct){var dt=ct.length>1?ct.map(rt).join(" "):ct[0];return ht()(dt)==="object"?"".concat($e(dt)):dt.toString()}function rt(ct){return ht()(ct)==="object"?"".concat(JSON.stringify(ct)):ct.toString()}var Ke={log:function(){for(var dt=arguments.length,It=new Array(dt),Ct=0;Ct-1&&(un=setTimeout(function(){se.delete(dt)},It)),se.set(dt,{data:Ct,timer:un,startTime:new Date().getTime()})},de=function(dt){var It=se.get(dt);return{data:It==null?void 0:It.data,startTime:It==null?void 0:It.startTime}},xe=function(ct,dt){var It=typeof Symbol=="function"&&ct[Symbol.iterator];if(!It)return ct;var Ct=It.call(ct),kt,un=[],nn;try{for(;(dt===void 0||dt-- >0)&&!(kt=Ct.next()).done;)un.push(kt.value)}catch(xn){nn={error:xn}}finally{try{kt&&!kt.done&&(It=Ct.return)&&It.call(Ct)}finally{if(nn)throw nn.error}}return un},ce=function(){for(var ct=[],dt=0;dt0)&&!(kt=Ct.next()).done;)un.push(kt.value)}catch(xn){nn={error:xn}}finally{try{kt&&!kt.done&&(It=Ct.return)&&It.call(Ct)}finally{if(nn)throw nn.error}}return un},we=function(){for(var ct=[],dt=0;dt0)&&!(kt=Ct.next()).done;)un.push(kt.value)}catch(xn){nn={error:xn}}finally{try{kt&&!kt.done&&(It=Ct.return)&&It.call(Ct)}finally{if(nn)throw nn.error}}return un},St=function(){for(var ct=[],dt=0;dt0){var jr=Zr&&((ra=getCache(Zr))===null||ra===void 0?void 0:ra.startTime)||0;Fn===-1||new Date().getTime()-jr<=Fn||Object.values(cn).forEach(function($r){$r.refresh()})}else Wr.current.apply(Wr,St(rr))},[]);var oa=useCallback(function(){Object.values(hn.current).forEach(function(ra){ra.unmount()}),Mo.current=ut,An({}),hn.current={}},[An]);useUpdateEffect(function(){nn||Object.values(hn.current).forEach(function(ra){ra.refresh()})},St(kt)),useEffect(function(){return function(){Object.values(hn.current).forEach(function(ra){ra.unmount()})}},[]);var Qr=useCallback(function(ra){return function(){console.warn("You should't call "+ra+" when service not executed once.")}},[]);return ze(ze({loading:an&&!nn||Ur,data:Ar,error:void 0,params:[],cancel:Qr("cancel"),refresh:Qr("refresh"),mutate:Qr("mutate")},cn[Mo.current]||{}),{run:nr,fetches:cn,reset:oa})}var At=null,Ie=function(){return Ie=Object.assign||function(ct){for(var dt,It=1,Ct=arguments.length;It0)&&!(kt=Ct.next()).done;)un.push(kt.value)}catch(xn){nn={error:xn}}finally{try{kt&&!kt.done&&(It=Ct.return)&&It.call(Ct)}finally{if(nn)throw nn.error}}return un},jt=function(){for(var ct=[],dt=0;dt0)&&!(kt=Ct.next()).done;)un.push(kt.value)}catch(xn){nn={error:xn}}finally{try{kt&&!kt.done&&(It=Ct.return)&&It.call(Ct)}finally{if(nn)throw nn.error}}return un},ln=function(){for(var ct=[],dt=0;dtqa&&(an=Math.max(1,qa)),cr({current:an,pageSize:pn})},[Zr,cr]),Wn=useCallback(function(Ar){ha(Ar,rr)},[ha,rr]),Fn=useCallback(function(Ar){ha(In,Ar)},[ha,In]),hr=useRef(Wn);hr.current=Wn,useUpdateEffect(function(){dt.manual||hr.current(1)},ln(nn));var Kr=useCallback(function(Ar,Pt,an){cr({current:Ar.current,pageSize:Ar.pageSize||kt,filters:Pt,sorter:an})},[pa,Gr,cr]);return Zt({loading:pr,data:er,params:zn,run:Ur,pagination:{current:In,pageSize:rr,total:Zr,totalPage:Ea,onChange:ha,changeCurrent:Wn,changePageSize:Fn},tableProps:{dataSource:(er==null?void 0:er.list)||[],loading:pr,onChange:Kr,pagination:{current:In,pageSize:rr,total:Zr}},sorter:Gr,filters:pa},sa)}var gn=null,Yn=o.createContext({});Yn.displayName="UseRequestConfigContext";var Gn=Yn,ar=function(){return ar=Object.assign||function(ct){for(var dt,It=1,Ct=arguments.length;It0)&&!(kt=Ct.next()).done;)un.push(kt.value)}catch(xn){nn={error:xn}}finally{try{kt&&!kt.done&&(It=Ct.return)&&It.call(Ct)}finally{if(nn)throw nn.error}}return un},qt=function(){for(var ct=[],dt=0;dt1&&arguments[1]!==void 0?arguments[1]:{};return useUmiRequest(ct,_objectSpread({formatResult:function(Ct){return Ct==null?void 0:Ct.data},requestMethod:function(Ct){if(typeof Ct=="string")return kn(Ct);if(_typeof(Ct)==="object"){var kt=Ct.url,un=_objectWithoutProperties(Ct,mt);return kn(kt,un)}throw new Error("request options error")}},dt))}var Kt,tn,mn=function(){return tn||(tn=(0,pt.We)().applyPlugins({key:"request",type:Te.modify,initialValue:{}}),tn)},fn=function(){var dt,It;if(Kt)return Kt;var Ct=mn();return Kt=ie().create(Ct),Ct==null||(dt=Ct.requestInterceptors)===null||dt===void 0||dt.forEach(function(kt){kt instanceof Array?Kt.interceptors.request.use(function(un){var nn=un.url;if(kt[0].length===2){var xn=kt[0](nn,un),Rn=xn.url,Mr=xn.options;return ae()(ae()({},Mr),{},{url:Rn})}return kt[0](un)},kt[1]):Kt.interceptors.request.use(function(un){var nn=un.url;if(kt.length===2){var xn=kt(nn,un),Rn=xn.url,Mr=xn.options;return ae()(ae()({},Mr),{},{url:Rn})}return kt(un)})}),Ct==null||(It=Ct.responseInterceptors)===null||It===void 0||It.forEach(function(kt){kt instanceof Array?Kt.interceptors.response.use(kt[0],kt[1]):Kt.interceptors.response.use(kt)}),Kt.interceptors.response.use(function(kt){var un,nn=kt.data;return(nn==null?void 0:nn.success)===!1&&Ct!==null&&Ct!==void 0&&(un=Ct.errorConfig)!==null&&un!==void 0&&un.errorThrower&&Ct.errorConfig.errorThrower(nn),kt}),Kt},kn=function(dt){var It=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{method:"GET"},Ct=fn(),kt=mn(),un=It.getResponse,nn=un===void 0?!1:un,xn=It.requestInterceptors,Rn=It.responseInterceptors,Mr=xn==null?void 0:xn.map(function(zn){return zn instanceof Array?Ct.interceptors.request.use(function(Ur){var pr=Ur.url;if(zn[0].length===2){var sa=zn[0](pr,Ur),Nr=sa.url,Zn=sa.options;return ae()(ae()({},Zn),{},{url:Nr})}return zn[0](Ur)},zn[1]):Ct.interceptors.request.use(function(Ur){var pr=Ur.url;if(zn.length===2){var sa=zn(pr,Ur),Nr=sa.url,Zn=sa.options;return ae()(ae()({},Zn),{},{url:Nr})}return zn(Ur)})}),er=Rn==null?void 0:Rn.map(function(zn){return zn instanceof Array?Ct.interceptors.response.use(zn[0],zn[1]):Ct.interceptors.response.use(zn)});return new Promise(function(zn,Ur){Ct.request(ae()(ae()({},It),{},{url:dt})).then(function(pr){Mr==null||Mr.forEach(function(sa){Ct.interceptors.request.eject(sa)}),er==null||er.forEach(function(sa){Ct.interceptors.response.eject(sa)}),zn(nn?pr:pr.data)}).catch(function(pr){Mr==null||Mr.forEach(function(Zn){Ct.interceptors.request.eject(Zn)}),er==null||er.forEach(function(Zn){Ct.interceptors.response.eject(Zn)});try{var sa,Nr=kt==null||(sa=kt.errorConfig)===null||sa===void 0?void 0:sa.errorHandler;Nr&&Nr(pr,It,kt)}catch(Zn){Ur(Zn)}Ur(pr)})})},qn=function(){}},96662:function(b,y,e){"use strict";e.d(y,{J:function(){return t}});var a=e(58757),t=a.createContext(null)},64470:function(b,y,e){"use strict";e.d(y,{Mf:function(){return d}});var a=e(58757),t=e(96662),o=e(35667),s=function(){return a.useContext(t.J)},n=function(c){return _jsx(_Fragment,{children:c.accessible?c.children:c.fallback})},d=function(c){var m=s(),g=a.useMemo(function(){var M=function h(S,w,C){var z,Z,N=S.access,L=S;if(!N&&w&&(N=w,L=C),S.unaccessible=!1,typeof N=="string"){var $=m[N];typeof $=="function"?S.unaccessible=!$(L):typeof $=="boolean"?S.unaccessible=!$:typeof $=="undefined"&&(S.unaccessible=!0)}if((z=S.children)!==null&&z!==void 0&&z.length){var D=!S.children.reduce(function(j,G){return h(G,N,S),j||!G.unaccessible},!1);D&&(S.unaccessible=!0)}if((Z=S.routes)!==null&&Z!==void 0&&Z.length){var T=!S.routes.reduce(function(j,G){return h(G,N,S),j||!G.unaccessible},!1);T&&(S.unaccessible=!0)}return S};return c.map(function(h){return M(h)})},[c.length,m]);return g}},93325:function(b,y,e){"use strict";e.d(y,{_H:function(){return a._H},pD:function(){return L},wv:function(){return a.wv},Kd:function(){return a.Kd},i_:function(){return a.i_},YB:function(){return a.YB}});var a=e(16221),t=e(88205),o=e.n(t),s=e(2657),n=e(63900),d=e.n(n),l=e(62376),c=e.n(l),m=e(58757),g=e(73267),M=e(93430),h=e(85706),S=e(35667),w=["overlayClassName"],C=["globalIconClassName","postLocalesData","onItemClick","icon","style","reload"],z=function(D){var T=D.overlayClassName,j=c()(D,w);return(0,S.jsx)(g.Z,d()({overlayClassName:T},j))},Z=function(D){return D.reduce(function(T,j){return j.lang?_objectSpread(_objectSpread({},T),{},_defineProperty({},j.lang,j)):T},{})},N={"ar-EG":{lang:"ar-EG",label:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",icon:"\u{1F1EA}\u{1F1EC}",title:"\u0644\u063A\u0629"},"az-AZ":{lang:"az-AZ",label:"Az\u0259rbaycan dili",icon:"\u{1F1E6}\u{1F1FF}",title:"Dil"},"bg-BG":{lang:"bg-BG",label:"\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438 \u0435\u0437\u0438\u043A",icon:"\u{1F1E7}\u{1F1EC}",title:"\u0435\u0437\u0438\u043A"},"bn-BD":{lang:"bn-BD",label:"\u09AC\u09BE\u0982\u09B2\u09BE",icon:"\u{1F1E7}\u{1F1E9}",title:"\u09AD\u09BE\u09B7\u09BE"},"ca-ES":{lang:"ca-ES",label:"Catal\xE1",icon:"\u{1F1E8}\u{1F1E6}",title:"llengua"},"cs-CZ":{lang:"cs-CZ",label:"\u010Ce\u0161tina",icon:"\u{1F1E8}\u{1F1FF}",title:"Jazyk"},"da-DK":{lang:"da-DK",label:"Dansk",icon:"\u{1F1E9}\u{1F1F0}",title:"Sprog"},"de-DE":{lang:"de-DE",label:"Deutsch",icon:"\u{1F1E9}\u{1F1EA}",title:"Sprache"},"el-GR":{lang:"el-GR",label:"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",icon:"\u{1F1EC}\u{1F1F7}",title:"\u0393\u03BB\u03CE\u03C3\u03C3\u03B1"},"en-GB":{lang:"en-GB",label:"English",icon:"\u{1F1EC}\u{1F1E7}",title:"Language"},"en-US":{lang:"en-US",label:"English",icon:"\u{1F1FA}\u{1F1F8}",title:"Language"},"es-ES":{lang:"es-ES",label:"Espa\xF1ol",icon:"\u{1F1EA}\u{1F1F8}",title:"Idioma"},"et-EE":{lang:"et-EE",label:"Eesti",icon:"\u{1F1EA}\u{1F1EA}",title:"Keel"},"fa-IR":{lang:"fa-IR",label:"\u0641\u0627\u0631\u0633\u06CC",icon:"\u{1F1EE}\u{1F1F7}",title:"\u0632\u0628\u0627\u0646"},"fi-FI":{lang:"fi-FI",label:"Suomi",icon:"\u{1F1EB}\u{1F1EE}",title:"Kieli"},"fr-BE":{lang:"fr-BE",label:"Fran\xE7ais",icon:"\u{1F1E7}\u{1F1EA}",title:"Langue"},"fr-FR":{lang:"fr-FR",label:"Fran\xE7ais",icon:"\u{1F1EB}\u{1F1F7}",title:"Langue"},"ga-IE":{lang:"ga-IE",label:"Gaeilge",icon:"\u{1F1EE}\u{1F1EA}",title:"Teanga"},"he-IL":{lang:"he-IL",label:"\u05E2\u05D1\u05E8\u05D9\u05EA",icon:"\u{1F1EE}\u{1F1F1}",title:"\u05E9\u05E4\u05D4"},"hi-IN":{lang:"hi-IN",label:"\u0939\u093F\u0928\u094D\u0926\u0940, \u0939\u093F\u0902\u0926\u0940",icon:"\u{1F1EE}\u{1F1F3}",title:"\u092D\u093E\u0937\u093E: \u0939\u093F\u0928\u094D\u0926\u0940"},"hr-HR":{lang:"hr-HR",label:"Hrvatski jezik",icon:"\u{1F1ED}\u{1F1F7}",title:"Jezik"},"hu-HU":{lang:"hu-HU",label:"Magyar",icon:"\u{1F1ED}\u{1F1FA}",title:"Nyelv"},"hy-AM":{lang:"hu-HU",label:"\u0540\u0561\u0575\u0565\u0580\u0565\u0576",icon:"\u{1F1E6}\u{1F1F2}",title:"\u053C\u0565\u0566\u0578\u0582"},"id-ID":{lang:"id-ID",label:"Bahasa Indonesia",icon:"\u{1F1EE}\u{1F1E9}",title:"Bahasa"},"it-IT":{lang:"it-IT",label:"Italiano",icon:"\u{1F1EE}\u{1F1F9}",title:"Linguaggio"},"is-IS":{lang:"is-IS",label:"\xCDslenska",icon:"\u{1F1EE}\u{1F1F8}",title:"Tungum\xE1l"},"ja-JP":{lang:"ja-JP",label:"\u65E5\u672C\u8A9E",icon:"\u{1F1EF}\u{1F1F5}",title:"\u8A00\u8A9E"},"ku-IQ":{lang:"ku-IQ",label:"\u06A9\u0648\u0631\u062F\u06CC",icon:"\u{1F1EE}\u{1F1F6}",title:"Ziman"},"kn-IN":{lang:"kn-IN",label:"\u0C95\u0CA8\u0CCD\u0CA8\u0CA1",icon:"\u{1F1EE}\u{1F1F3}",title:"\u0CAD\u0CBE\u0CB7\u0CC6"},"ko-KR":{lang:"ko-KR",label:"\uD55C\uAD6D\uC5B4",icon:"\u{1F1F0}\u{1F1F7}",title:"\uC5B8\uC5B4"},"lv-LV":{lang:"lv-LV",label:"Latvie\u0161u valoda",icon:"\u{1F1F1}\u{1F1EE}",title:"Kalba"},"mk-MK":{lang:"mk-MK",label:"\u043C\u0430\u043A\u0435\u0434\u043E\u043D\u0441\u043A\u0438 \u0458\u0430\u0437\u0438\u043A",icon:"\u{1F1F2}\u{1F1F0}",title:"\u0408\u0430\u0437\u0438\u043A"},"mn-MN":{lang:"mn-MN",label:"\u041C\u043E\u043D\u0433\u043E\u043B \u0445\u044D\u043B",icon:"\u{1F1F2}\u{1F1F3}",title:"\u0425\u044D\u043B"},"ms-MY":{lang:"ms-MY",label:"\u0628\u0647\u0627\u0633 \u0645\u0644\u0627\u064A\u0648\u200E",icon:"\u{1F1F2}\u{1F1FE}",title:"Bahasa"},"nb-NO":{lang:"nb-NO",label:"Norsk",icon:"\u{1F1F3}\u{1F1F4}",title:"Spr\xE5k"},"ne-NP":{lang:"ne-NP",label:"\u0928\u0947\u092A\u093E\u0932\u0940",icon:"\u{1F1F3}\u{1F1F5}",title:"\u092D\u093E\u0937\u093E"},"nl-BE":{lang:"nl-BE",label:"Vlaams",icon:"\u{1F1E7}\u{1F1EA}",title:"Taal"},"nl-NL":{lang:"nl-NL",label:"Vlaams",icon:"\u{1F1F3}\u{1F1F1}",title:"Taal"},"pl-PL":{lang:"pl-PL",label:"Polski",icon:"\u{1F1F5}\u{1F1F1}",title:"J\u0119zyk"},"pt-BR":{lang:"pt-BR",label:"Portugu\xEAs",icon:"\u{1F1E7}\u{1F1F7}",title:"Idiomas"},"pt-PT":{lang:"pt-PT",label:"Portugu\xEAs",icon:"\u{1F1F5}\u{1F1F9}",title:"Idiomas"},"ro-RO":{lang:"ro-RO",label:"Rom\xE2n\u0103",icon:"\u{1F1F7}\u{1F1F4}",title:"Limba"},"ru-RU":{lang:"ru-RU",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",icon:"\u{1F1F7}\u{1F1FA}",title:"\u044F\u0437\u044B\u043A"},"sk-SK":{lang:"sk-SK",label:"Sloven\u010Dina",icon:"\u{1F1F8}\u{1F1F0}",title:"Jazyk"},"sr-RS":{lang:"sr-RS",label:"\u0441\u0440\u043F\u0441\u043A\u0438 \u0458\u0435\u0437\u0438\u043A",icon:"\u{1F1F8}\u{1F1F7}",title:"\u0408\u0435\u0437\u0438\u043A"},"sl-SI":{lang:"sl-SI",label:"Sloven\u0161\u010Dina",icon:"\u{1F1F8}\u{1F1F1}",title:"Jezik"},"sv-SE":{lang:"sv-SE",label:"Svenska",icon:"\u{1F1F8}\u{1F1EA}",title:"Spr\xE5k"},"ta-IN":{lang:"ta-IN",label:"\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD",icon:"\u{1F1EE}\u{1F1F3}",title:"\u0BAE\u0BCA\u0BB4\u0BBF"},"th-TH":{lang:"th-TH",label:"\u0E44\u0E17\u0E22",icon:"\u{1F1F9}\u{1F1ED}",title:"\u0E20\u0E32\u0E29\u0E32"},"tr-TR":{lang:"tr-TR",label:"T\xFCrk\xE7e",icon:"\u{1F1F9}\u{1F1F7}",title:"Dil"},"uk-UA":{lang:"uk-UA",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430",icon:"\u{1F1FA}\u{1F1F0}",title:"\u041C\u043E\u0432\u0430"},"vi-VN":{lang:"vi-VN",label:"Ti\u1EBFng Vi\u1EC7t",icon:"\u{1F1FB}\u{1F1F3}",title:"Ng\xF4n ng\u1EEF"},"zh-CN":{lang:"zh-CN",label:"\u7B80\u4F53\u4E2D\u6587",icon:"\u{1F1E8}\u{1F1F3}",title:"\u8BED\u8A00"},"zh-TW":{lang:"zh-TW",label:"\u7E41\u9AD4\u4E2D\u6587",icon:"\u{1F1ED}\u{1F1F0}",title:"\u8A9E\u8A00"}},L=function(D){var T,j=D.globalIconClassName,G=D.postLocalesData,k=D.onItemClick,te=D.icon,Y=D.style,q=D.reload,le=c()(D,C),X=(0,m.useState)(function(){return(0,a.Kd)()}),W=o()(X,2),x=W[0],O=W[1],_=function(qe){var Qe=qe.key;(0,a.i_)(Qe,q),O((0,a.Kd)())},U=(0,a.XZ)().map(function(Ge){return N[Ge]||{lang:Ge,label:Ge,icon:"\u{1F310}",title:Ge}}),A=(G==null?void 0:G(U))||U,V=k?function(Ge){return k(Ge)}:_,fe={minWidth:"160px"},pe={marginRight:"8px"},ge={selectedKeys:[x],onClick:V,items:A.map(function(Ge){return{key:Ge.lang||Ge.key,style:fe,label:(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)("span",{role:"img","aria-label":(Ge==null?void 0:Ge.label)||"en-US",style:pe,children:(Ge==null?void 0:Ge.icon)||"\u{1F310}"}),(Ge==null?void 0:Ge.label)||"en-US"]})}})},be;M.Z.startsWith("5.")||M.Z.startsWith("4.24.")?be={menu:ge}:M.Z.startsWith("3.")?be={overlay:(0,S.jsx)(h.Z,{children:ge.items.map(function(Ge){return(0,S.jsx)(h.Z.Item,{onClick:Ge.onClick,children:Ge.label},Ge.key)})})}:be={overlay:(0,S.jsx)(h.Z,d()({},ge))};var Te=d()({cursor:"pointer",padding:"12px",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:18,verticalAlign:"middle"},Y);return(0,S.jsx)(z,d()(d()(d()({},be),{},{placement:"bottomRight"},le),{},{children:(0,S.jsx)("span",{className:j,style:Te,children:(0,S.jsx)("i",{className:"anticon",title:(T=A[x])===null||T===void 0?void 0:T.title,children:te||(0,S.jsxs)("svg",{viewBox:"0 0 24 24",focusable:"false",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",children:[(0,S.jsx)("path",{d:"M0 0h24v24H0z",fill:"none"}),(0,S.jsx)("path",{d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",className:"css-c4d79v"})]})})})}))}},16221:function(b,y,e){"use strict";e.d(y,{_H:function(){return In},PZ:function(){return Kr},eU:function(){return j},B:function(){return hr},wv:function(){return $o},XZ:function(){return So},Mg:function(){return Wa},lw:function(){return qa},Kd:function(){return Ua},H8:function(){return Ar},i_:function(){return Xa},YB:function(){return Pn}});var a=e(62376),t=e.n(a),o=e(63900),s=e.n(o),n=e(77016),d=e.n(n),l=e(61697),c=e.n(l),m=e(1769),g=e.n(m),M=e(19881),h=e.n(M),S=e(58757),w=e.t(S,2),C=e(2657),z=e(10063),Z=e.n(z),N=Z()||z;function L(ft){return ft.displayName||ft.name||"Component"}var $=S.createContext(null),D=$.Consumer,T=$.Provider,j=T,G=$;function k(ft,Rt){var Ae=Rt||{},cn=Ae.intlPropName,An=cn===void 0?"intl":cn,hn=Ae.forwardRef,Xn=hn===void 0?!1:hn,nr=Ae.enforceContext,Wr=nr===void 0?!0:nr,Da=function(Qr){return React.createElement(D,null,function(ra){return Wr&&invariantIntlContext(ra),React.createElement(ft,Object.assign({},Qr,_defineProperty({},An,ra),{ref:Xn?Qr.forwardedRef:null}))})};return Da.displayName="injectIntl(".concat(L(ft),")"),Da.WrappedComponent=ft,N(Xn?React.forwardRef(function(oa,Qr){return React.createElement(Da,Object.assign({},oa,{forwardedRef:Qr}))}):Da,ft)}var te;(function(ft){ft[ft.literal=0]="literal",ft[ft.argument=1]="argument",ft[ft.number=2]="number",ft[ft.date=3]="date",ft[ft.time=4]="time",ft[ft.select=5]="select",ft[ft.plural=6]="plural",ft[ft.pound=7]="pound"})(te||(te={}));function Y(ft){return ft.type===te.literal}function q(ft){return ft.type===te.argument}function le(ft){return ft.type===te.number}function X(ft){return ft.type===te.date}function W(ft){return ft.type===te.time}function x(ft){return ft.type===te.select}function O(ft){return ft.type===te.plural}function _(ft){return ft.type===te.pound}function U(ft){return!!(ft&&typeof ft=="object"&&ft.type===0)}function A(ft){return!!(ft&&typeof ft=="object"&&ft.type===1)}function V(ft){return{type:te.literal,value:ft}}function fe(ft,Rt){return{type:te.number,value:ft,style:Rt}}var pe=function(){var ft=function(Rt,Ae){return ft=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(cn,An){cn.__proto__=An}||function(cn,An){for(var hn in An)An.hasOwnProperty(hn)&&(cn[hn]=An[hn])},ft(Rt,Ae)};return function(Rt,Ae){ft(Rt,Ae);function cn(){this.constructor=Rt}Rt.prototype=Ae===null?Object.create(Ae):(cn.prototype=Ae.prototype,new cn)}}(),ge=function(){return ge=Object.assign||function(ft){for(var Rt,Ae=1,cn=arguments.length;Ae0){for(ra=1,jr=1;raUo&&(Uo=Ft,dl=[]),dl.push(at))}function au(at,Gt){return new be(at,[],"",Gt)}function _i(at,Gt,Hn){return new be(be.buildMessage(at,Gt),at,Gt,Hn)}function El(){var at;return at=vl(),at}function vl(){var at,Gt;for(at=[],Gt=fu();Gt!==Ae;)at.push(Gt),Gt=fu();return at}function fu(){var at;return at=tc(),at===Ae&&(at=Bo(),at===Ae&&(at=ku(),at===Ae&&(at=vu(),at===Ae&&(at=us(),at===Ae&&(at=Uu()))))),at}function Nl(){var at,Gt,Hn;if(at=Ft,Gt=[],Hn=Zi(),Hn===Ae&&(Hn=iu(),Hn===Ae&&(Hn=gu())),Hn!==Ae)for(;Hn!==Ae;)Gt.push(Hn),Hn=Zi(),Hn===Ae&&(Hn=iu(),Hn===Ae&&(Hn=gu()));else Gt=Ae;return Gt!==Ae&&(Io=at,Gt=hn(Gt)),at=Gt,at}function tc(){var at,Gt;return at=Ft,Gt=Nl(),Gt!==Ae&&(Io=at,Gt=Xn(Gt)),at=Gt,at}function Uu(){var at,Gt;return at=Ft,ft.charCodeAt(Ft)===35?(Gt=nr,Ft++):(Gt=Ae,la===0&&Ra(Wr)),Gt!==Ae&&(Io=at,Gt=Da()),at=Gt,at}function Bo(){var at,Gt,Hn,ur,wa,fo;return la++,at=Ft,ft.charCodeAt(Ft)===123?(Gt=Qr,Ft++):(Gt=Ae,la===0&&Ra(ra)),Gt!==Ae?(Hn=yo(),Hn!==Ae?(ur=Il(),ur!==Ae?(wa=yo(),wa!==Ae?(ft.charCodeAt(Ft)===125?(fo=jr,Ft++):(fo=Ae,la===0&&Ra($r)),fo!==Ae?(Io=at,Gt=fa(ur),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae),la--,at===Ae&&(Gt=Ae,la===0&&Ra(oa)),at}function Ou(){var at,Gt,Hn,ur,wa;if(la++,at=Ft,Gt=[],Hn=Ft,ur=Ft,la++,wa=ts(),wa===Ae&&(to.test(ft.charAt(Ft))?(wa=ft.charAt(Ft),Ft++):(wa=Ae,la===0&&Ra(Ka))),la--,wa===Ae?ur=void 0:(Ft=ur,ur=Ae),ur!==Ae?(ft.length>Ft?(wa=ft.charAt(Ft),Ft++):(wa=Ae,la===0&&Ra(Qt)),wa!==Ae?(ur=[ur,wa],Hn=ur):(Ft=Hn,Hn=Ae)):(Ft=Hn,Hn=Ae),Hn!==Ae)for(;Hn!==Ae;)Gt.push(Hn),Hn=Ft,ur=Ft,la++,wa=ts(),wa===Ae&&(to.test(ft.charAt(Ft))?(wa=ft.charAt(Ft),Ft++):(wa=Ae,la===0&&Ra(Ka))),la--,wa===Ae?ur=void 0:(Ft=ur,ur=Ae),ur!==Ae?(ft.length>Ft?(wa=ft.charAt(Ft),Ft++):(wa=Ae,la===0&&Ra(Qt)),wa!==Ae?(ur=[ur,wa],Hn=ur):(Ft=Hn,Hn=Ae)):(Ft=Hn,Hn=Ae);else Gt=Ae;return Gt!==Ae?at=ft.substring(at,Ft):at=Gt,la--,at===Ae&&(Gt=Ae,la===0&&Ra(Na)),at}function Vl(){var at,Gt,Hn;return la++,at=Ft,ft.charCodeAt(Ft)===47?(Gt=Dn,Ft++):(Gt=Ae,la===0&&Ra(Jn)),Gt!==Ae?(Hn=Ou(),Hn!==Ae?(Io=at,Gt=fr(Hn),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae),la--,at===Ae&&(Gt=Ae,la===0&&Ra(Sn)),at}function ps(){var at,Gt,Hn,ur,wa;if(la++,at=Ft,Gt=yo(),Gt!==Ae)if(Hn=Ou(),Hn!==Ae){for(ur=[],wa=Vl();wa!==Ae;)ur.push(wa),wa=Vl();ur!==Ae?(Io=at,Gt=Jr(Hn,ur),at=Gt):(Ft=at,at=Ae)}else Ft=at,at=Ae;else Ft=at,at=Ae;return la--,at===Ae&&(Gt=Ae,la===0&&Ra(kr)),at}function Cl(){var at,Gt,Hn;if(at=Ft,Gt=[],Hn=ps(),Hn!==Ae)for(;Hn!==Ae;)Gt.push(Hn),Hn=ps();else Gt=Ae;return Gt!==Ae&&(Io=at,Gt=or(Gt)),at=Gt,at}function gl(){var at,Gt,Hn;return at=Ft,ft.substr(Ft,2)===Hr?(Gt=Hr,Ft+=2):(Gt=Ae,la===0&&Ra(ca)),Gt!==Ae?(Hn=Cl(),Hn!==Ae?(Io=at,Gt=Oa(Hn),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae),at===Ae&&(at=Ft,Io=Ft,Gt=Ia(),Gt?Gt=void 0:Gt=Ae,Gt!==Ae?(Hn=Nl(),Hn!==Ae?(Io=at,Gt=Xr(Hn),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae)),at}function Wt(){var at,Gt,Hn,ur,wa,fo,ci,ko,ns,oi,gi,Ao,To;return at=Ft,ft.charCodeAt(Ft)===123?(Gt=Qr,Ft++):(Gt=Ae,la===0&&Ra(ra)),Gt!==Ae?(Hn=yo(),Hn!==Ae?(ur=Il(),ur!==Ae?(wa=yo(),wa!==Ae?(ft.charCodeAt(Ft)===44?(fo=po,Ft++):(fo=Ae,la===0&&Ra(wo)),fo!==Ae?(ci=yo(),ci!==Ae?(ft.substr(Ft,6)===Ya?(ko=Ya,Ft+=6):(ko=Ae,la===0&&Ra(Co)),ko!==Ae?(ns=yo(),ns!==Ae?(oi=Ft,ft.charCodeAt(Ft)===44?(gi=po,Ft++):(gi=Ae,la===0&&Ra(wo)),gi!==Ae?(Ao=yo(),Ao!==Ae?(To=gl(),To!==Ae?(gi=[gi,Ao,To],oi=gi):(Ft=oi,oi=Ae)):(Ft=oi,oi=Ae)):(Ft=oi,oi=Ae),oi===Ae&&(oi=null),oi!==Ae?(gi=yo(),gi!==Ae?(ft.charCodeAt(Ft)===125?(Ao=jr,Ft++):(Ao=Ae,la===0&&Ra($r)),Ao!==Ae?(Io=at,Gt=co(ur,ko,oi),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae),at}function Oi(){var at,Gt,Hn,ur;if(at=Ft,ft.charCodeAt(Ft)===39?(Gt=Ca,Ft++):(Gt=Ae,la===0&&Ra(Za)),Gt!==Ae){if(Hn=[],ur=Zi(),ur===Ae&&(xo.test(ft.charAt(Ft))?(ur=ft.charAt(Ft),Ft++):(ur=Ae,la===0&&Ra(ei))),ur!==Ae)for(;ur!==Ae;)Hn.push(ur),ur=Zi(),ur===Ae&&(xo.test(ft.charAt(Ft))?(ur=ft.charAt(Ft),Ft++):(ur=Ae,la===0&&Ra(ei)));else Hn=Ae;Hn!==Ae?(ft.charCodeAt(Ft)===39?(ur=Ca,Ft++):(ur=Ae,la===0&&Ra(Za)),ur!==Ae?(Gt=[Gt,Hn,ur],at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae)}else Ft=at,at=Ae;if(at===Ae)if(at=[],Gt=Zi(),Gt===Ae&&(ri.test(ft.charAt(Ft))?(Gt=ft.charAt(Ft),Ft++):(Gt=Ae,la===0&&Ra(ao))),Gt!==Ae)for(;Gt!==Ae;)at.push(Gt),Gt=Zi(),Gt===Ae&&(ri.test(ft.charAt(Ft))?(Gt=ft.charAt(Ft),Ft++):(Gt=Ae,la===0&&Ra(ao)));else at=Ae;return at}function Gl(){var at,Gt;if(at=[],Mi.test(ft.charAt(Ft))?(Gt=ft.charAt(Ft),Ft++):(Gt=Ae,la===0&&Ra(ji)),Gt!==Ae)for(;Gt!==Ae;)at.push(Gt),Mi.test(ft.charAt(Ft))?(Gt=ft.charAt(Ft),Ft++):(Gt=Ae,la===0&&Ra(ji));else at=Ae;return at}function $i(){var at,Gt,Hn,ur;if(at=Ft,Gt=Ft,Hn=[],ur=Oi(),ur===Ae&&(ur=Gl()),ur!==Ae)for(;ur!==Ae;)Hn.push(ur),ur=Oi(),ur===Ae&&(ur=Gl());else Hn=Ae;return Hn!==Ae?Gt=ft.substring(Gt,Ft):Gt=Hn,Gt!==Ae&&(Io=at,Gt=Xo(Gt)),at=Gt,at}function _o(){var at,Gt,Hn;return at=Ft,ft.substr(Ft,2)===Hr?(Gt=Hr,Ft+=2):(Gt=Ae,la===0&&Ra(ca)),Gt!==Ae?(Hn=$i(),Hn!==Ae?(Io=at,Gt=Oa(Hn),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae),at===Ae&&(at=Ft,Io=Ft,Gt=Ho(),Gt?Gt=void 0:Gt=Ae,Gt!==Ae?(Hn=Nl(),Hn!==Ae?(Io=at,Gt=Xr(Hn),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae)),at}function go(){var at,Gt,Hn,ur,wa,fo,ci,ko,ns,oi,gi,Ao,To;return at=Ft,ft.charCodeAt(Ft)===123?(Gt=Qr,Ft++):(Gt=Ae,la===0&&Ra(ra)),Gt!==Ae?(Hn=yo(),Hn!==Ae?(ur=Il(),ur!==Ae?(wa=yo(),wa!==Ae?(ft.charCodeAt(Ft)===44?(fo=po,Ft++):(fo=Ae,la===0&&Ra(wo)),fo!==Ae?(ci=yo(),ci!==Ae?(ft.substr(Ft,4)===ui?(ko=ui,Ft+=4):(ko=Ae,la===0&&Ra(li)),ko===Ae&&(ft.substr(Ft,4)===Ci?(ko=Ci,Ft+=4):(ko=Ae,la===0&&Ra(Ni))),ko!==Ae?(ns=yo(),ns!==Ae?(oi=Ft,ft.charCodeAt(Ft)===44?(gi=po,Ft++):(gi=Ae,la===0&&Ra(wo)),gi!==Ae?(Ao=yo(),Ao!==Ae?(To=_o(),To!==Ae?(gi=[gi,Ao,To],oi=gi):(Ft=oi,oi=Ae)):(Ft=oi,oi=Ae)):(Ft=oi,oi=Ae),oi===Ae&&(oi=null),oi!==Ae?(gi=yo(),gi!==Ae?(ft.charCodeAt(Ft)===125?(Ao=jr,Ft++):(Ao=Ae,la===0&&Ra($r)),Ao!==Ae?(Io=at,Gt=co(ur,ko,oi),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae),at}function ku(){var at;return at=Wt(),at===Ae&&(at=go()),at}function vu(){var at,Gt,Hn,ur,wa,fo,ci,ko,ns,oi,gi,Ao,To,Wi,ys,wu;if(at=Ft,ft.charCodeAt(Ft)===123?(Gt=Qr,Ft++):(Gt=Ae,la===0&&Ra(ra)),Gt!==Ae)if(Hn=yo(),Hn!==Ae)if(ur=Il(),ur!==Ae)if(wa=yo(),wa!==Ae)if(ft.charCodeAt(Ft)===44?(fo=po,Ft++):(fo=Ae,la===0&&Ra(wo)),fo!==Ae)if(ci=yo(),ci!==Ae)if(ft.substr(Ft,6)===xi?(ko=xi,Ft+=6):(ko=Ae,la===0&&Ra(no)),ko===Ae&&(ft.substr(Ft,13)===Qa?(ko=Qa,Ft+=13):(ko=Ae,la===0&&Ra(ti))),ko!==Ae)if(ns=yo(),ns!==Ae)if(ft.charCodeAt(Ft)===44?(oi=po,Ft++):(oi=Ae,la===0&&Ra(wo)),oi!==Ae)if(gi=yo(),gi!==Ae)if(Ao=Ft,ft.substr(Ft,7)===ai?(To=ai,Ft+=7):(To=Ae,la===0&&Ra(jo)),To!==Ae?(Wi=yo(),Wi!==Ae?(ys=el(),ys!==Ae?(To=[To,Wi,ys],Ao=To):(Ft=Ao,Ao=Ae)):(Ft=Ao,Ao=Ae)):(Ft=Ao,Ao=Ae),Ao===Ae&&(Ao=null),Ao!==Ae)if(To=yo(),To!==Ae){if(Wi=[],ys=Ai(),ys!==Ae)for(;ys!==Ae;)Wi.push(ys),ys=Ai();else Wi=Ae;Wi!==Ae?(ys=yo(),ys!==Ae?(ft.charCodeAt(Ft)===125?(wu=jr,Ft++):(wu=Ae,la===0&&Ra($r)),wu!==Ae?(Io=at,Gt=Zo(ur,ko,Ao,Wi),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)}else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;return at}function us(){var at,Gt,Hn,ur,wa,fo,ci,ko,ns,oi,gi,Ao,To,Wi;if(at=Ft,ft.charCodeAt(Ft)===123?(Gt=Qr,Ft++):(Gt=Ae,la===0&&Ra(ra)),Gt!==Ae)if(Hn=yo(),Hn!==Ae)if(ur=Il(),ur!==Ae)if(wa=yo(),wa!==Ae)if(ft.charCodeAt(Ft)===44?(fo=po,Ft++):(fo=Ae,la===0&&Ra(wo)),fo!==Ae)if(ci=yo(),ci!==Ae)if(ft.substr(Ft,6)===Ii?(ko=Ii,Ft+=6):(ko=Ae,la===0&&Ra(Ri)),ko!==Ae)if(ns=yo(),ns!==Ae)if(ft.charCodeAt(Ft)===44?(oi=po,Ft++):(oi=Ae,la===0&&Ra(wo)),oi!==Ae)if(gi=yo(),gi!==Ae){if(Ao=[],To=Ei(),To!==Ae)for(;To!==Ae;)Ao.push(To),To=Ei();else Ao=Ae;Ao!==Ae?(To=yo(),To!==Ae?(ft.charCodeAt(Ft)===125?(Wi=jr,Ft++):(Wi=Ae,la===0&&Ra($r)),Wi!==Ae?(Io=at,Gt=ki(ur,Ao),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)}else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;else Ft=at,at=Ae;return at}function xl(){var at,Gt,Hn,ur;return at=Ft,Gt=Ft,ft.charCodeAt(Ft)===61?(Hn=ws,Ft++):(Hn=Ae,la===0&&Ra(ms)),Hn!==Ae?(ur=el(),ur!==Ae?(Hn=[Hn,ur],Gt=Hn):(Ft=Gt,Gt=Ae)):(Ft=Gt,Gt=Ae),Gt!==Ae?at=ft.substring(at,Ft):at=Gt,at===Ae&&(at=Is()),at}function Ei(){var at,Gt,Hn,ur,wa,fo,ci,ko;return at=Ft,Gt=yo(),Gt!==Ae?(Hn=Is(),Hn!==Ae?(ur=yo(),ur!==Ae?(ft.charCodeAt(Ft)===123?(wa=Qr,Ft++):(wa=Ae,la===0&&Ra(ra)),wa!==Ae?(Io=Ft,fo=Qs(Hn),fo?fo=void 0:fo=Ae,fo!==Ae?(ci=vl(),ci!==Ae?(ft.charCodeAt(Ft)===125?(ko=jr,Ft++):(ko=Ae,la===0&&Ra($r)),ko!==Ae?(Io=at,Gt=Ml(Hn,ci),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae),at}function Ai(){var at,Gt,Hn,ur,wa,fo,ci,ko;return at=Ft,Gt=yo(),Gt!==Ae?(Hn=xl(),Hn!==Ae?(ur=yo(),ur!==Ae?(ft.charCodeAt(Ft)===123?(wa=Qr,Ft++):(wa=Ae,la===0&&Ra(ra)),wa!==Ae?(Io=Ft,fo=Vn(Hn),fo?fo=void 0:fo=Ae,fo!==Ae?(ci=vl(),ci!==Ae?(ft.charCodeAt(Ft)===125?(ko=jr,Ft++):(ko=Ae,la===0&&Ra($r)),ko!==Ae?(Io=at,Gt=Vr(Hn,ci),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae)):(Ft=at,at=Ae),at}function ts(){var at,Gt;return la++,Br.test(ft.charAt(Ft))?(at=ft.charAt(Ft),Ft++):(at=Ae,la===0&&Ra(aa)),la--,at===Ae&&(Gt=Ae,la===0&&Ra(Or)),at}function as(){var at,Gt;return la++,za.test(ft.charAt(Ft))?(at=ft.charAt(Ft),Ft++):(at=Ae,la===0&&Ra(La)),la--,at===Ae&&(Gt=Ae,la===0&&Ra(Ta)),at}function yo(){var at,Gt,Hn;for(la++,at=Ft,Gt=[],Hn=ts();Hn!==Ae;)Gt.push(Hn),Hn=ts();return Gt!==Ae?at=ft.substring(at,Ft):at=Gt,la--,at===Ae&&(Gt=Ae,la===0&&Ra(Fo)),at}function el(){var at,Gt,Hn;return la++,at=Ft,ft.charCodeAt(Ft)===45?(Gt=Yo,Ft++):(Gt=Ae,la===0&&Ra(zi)),Gt===Ae&&(Gt=null),Gt!==Ae?(Hn=Al(),Hn!==Ae?(Io=at,Gt=Cs(Gt,Hn),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae),la--,at===Ae&&(Gt=Ae,la===0&&Ra(Jo)),at}function ou(){var at,Gt;return la++,ft.charCodeAt(Ft)===39?(at=Ca,Ft++):(at=Ae,la===0&&Ra(Za)),la--,at===Ae&&(Gt=Ae,la===0&&Ra(Qi)),at}function Zi(){var at,Gt;return la++,at=Ft,ft.substr(Ft,2)===qi?(Gt=qi,Ft+=2):(Gt=Ae,la===0&&Ra(qo)),Gt!==Ae&&(Io=at,Gt=tu()),at=Gt,la--,at===Ae&&(Gt=Ae,la===0&&Ra(js)),at}function iu(){var at,Gt,Hn,ur,wa,fo;if(at=Ft,ft.charCodeAt(Ft)===39?(Gt=Ca,Ft++):(Gt=Ae,la===0&&Ra(Za)),Gt!==Ae)if(Hn=Ws(),Hn!==Ae){for(ur=Ft,wa=[],ft.substr(Ft,2)===qi?(fo=qi,Ft+=2):(fo=Ae,la===0&&Ra(qo)),fo===Ae&&(xo.test(ft.charAt(Ft))?(fo=ft.charAt(Ft),Ft++):(fo=Ae,la===0&&Ra(ei)));fo!==Ae;)wa.push(fo),ft.substr(Ft,2)===qi?(fo=qi,Ft+=2):(fo=Ae,la===0&&Ra(qo)),fo===Ae&&(xo.test(ft.charAt(Ft))?(fo=ft.charAt(Ft),Ft++):(fo=Ae,la===0&&Ra(ei)));wa!==Ae?ur=ft.substring(ur,Ft):ur=wa,ur!==Ae?(ft.charCodeAt(Ft)===39?(wa=Ca,Ft++):(wa=Ae,la===0&&Ra(Za)),wa===Ae&&(wa=null),wa!==Ae?(Io=at,Gt=Sl(Hn,ur),at=Gt):(Ft=at,at=Ae)):(Ft=at,at=Ae)}else Ft=at,at=Ae;else Ft=at,at=Ae;return at}function gu(){var at,Gt,Hn,ur;return at=Ft,Gt=Ft,ft.length>Ft?(Hn=ft.charAt(Ft),Ft++):(Hn=Ae,la===0&&Ra(Qt)),Hn!==Ae?(Io=Ft,ur=ul(Hn),ur?ur=void 0:ur=Ae,ur!==Ae?(Hn=[Hn,ur],Gt=Hn):(Ft=Gt,Gt=Ae)):(Ft=Gt,Gt=Ae),Gt===Ae&&(ft.charCodeAt(Ft)===10?(Gt=Au,Ft++):(Gt=Ae,la===0&&Ra(cl))),Gt!==Ae?at=ft.substring(at,Ft):at=Gt,at}function Ws(){var at,Gt,Hn,ur;return at=Ft,Gt=Ft,ft.length>Ft?(Hn=ft.charAt(Ft),Ft++):(Hn=Ae,la===0&&Ra(Qt)),Hn!==Ae?(Io=Ft,ur=Xs(Hn),ur?ur=void 0:ur=Ae,ur!==Ae?(Hn=[Hn,ur],Gt=Hn):(Ft=Gt,Gt=Ae)):(Ft=Gt,Gt=Ae),Gt!==Ae?at=ft.substring(at,Ft):at=Gt,at}function Il(){var at,Gt;return la++,at=Ft,Gt=Al(),Gt===Ae&&(Gt=Is()),Gt!==Ae?at=ft.substring(at,Ft):at=Gt,la--,at===Ae&&(Gt=Ae,la===0&&Ra(Ps)),at}function Al(){var at,Gt,Hn,ur,wa;if(la++,at=Ft,ft.charCodeAt(Ft)===48?(Gt=Tl,Ft++):(Gt=Ae,la===0&&Ra(du)),Gt!==Ae&&(Io=at,Gt=rs()),at=Gt,at===Ae){if(at=Ft,Gt=Ft,xs.test(ft.charAt(Ft))?(Hn=ft.charAt(Ft),Ft++):(Hn=Ae,la===0&&Ra(Zs)),Hn!==Ae){for(ur=[],Ts.test(ft.charAt(Ft))?(wa=ft.charAt(Ft),Ft++):(wa=Ae,la===0&&Ra(nu));wa!==Ae;)ur.push(wa),Ts.test(ft.charAt(Ft))?(wa=ft.charAt(Ft),Ft++):(wa=Ae,la===0&&Ra(nu));ur!==Ae?(Hn=[Hn,ur],Gt=Hn):(Ft=Gt,Gt=Ae)}else Ft=Gt,Gt=Ae;Gt!==Ae&&(Io=at,Gt=_l(Gt)),at=Gt}return la--,at===Ae&&(Gt=Ae,la===0&&Ra(Js)),at}function Is(){var at,Gt,Hn,ur,wa;if(la++,at=Ft,Gt=[],Hn=Ft,ur=Ft,la++,wa=ts(),wa===Ae&&(wa=as()),la--,wa===Ae?ur=void 0:(Ft=ur,ur=Ae),ur!==Ae?(ft.length>Ft?(wa=ft.charAt(Ft),Ft++):(wa=Ae,la===0&&Ra(Qt)),wa!==Ae?(ur=[ur,wa],Hn=ur):(Ft=Hn,Hn=Ae)):(Ft=Hn,Hn=Ae),Hn!==Ae)for(;Hn!==Ae;)Gt.push(Hn),Hn=Ft,ur=Ft,la++,wa=ts(),wa===Ae&&(wa=as()),la--,wa===Ae?ur=void 0:(Ft=ur,ur=Ae),ur!==Ae?(ft.length>Ft?(wa=ft.charAt(Ft),Ft++):(wa=Ae,la===0&&Ra(Qt)),wa!==Ae?(ur=[ur,wa],Hn=ur):(Ft=Hn,Hn=Ae)):(Ft=Hn,Hn=Ae);else Gt=Ae;return Gt!==Ae?at=ft.substring(at,Ft):at=Gt,la--,at===Ae&&(Gt=Ae,la===0&&Ra(Ls)),at}var hs=["root"];function Du(){return hs.length>1}function Hs(){return hs[hs.length-1]==="plural"}function ma(){return Rt&&Rt.captureLocation?{location:qs()}:{}}if(fl=An(),fl!==Ae&&Ft===ft.length)return fl;throw fl!==Ae&&Ft1)throw new RangeError("Fraction-precision stems only accept a single optional option");An.stem.replace(R,function(Xn,nr,Wr){return Xn==="."?Rt.maximumFractionDigits=0:Wr==="+"?Rt.minimumFractionDigits=Wr.length:nr[0]==="#"?Rt.maximumFractionDigits=nr.length:(Rt.minimumFractionDigits=nr.length,Rt.maximumFractionDigits=nr.length+(typeof Wr=="string"?Wr.length:0)),""}),An.options.length&&(Rt=Ke(Ke({},Rt),ae(An.options[0])));continue}if(P.test(An.stem)){Rt=Ke(Ke({},Rt),ae(An.stem));continue}var hn=Q(An.stem);hn&&(Rt=Ke(Ke({},Rt),hn))}return Rt}var je=function(){var ft=function(Rt,Ae){return ft=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(cn,An){cn.__proto__=An}||function(cn,An){for(var hn in An)An.hasOwnProperty(hn)&&(cn[hn]=An[hn])},ft(Rt,Ae)};return function(Rt,Ae){ft(Rt,Ae);function cn(){this.constructor=Rt}Rt.prototype=Ae===null?Object.create(Ae):(cn.prototype=Ae.prototype,new cn)}}(),Ce=function(){for(var ft=0,Rt=0,Ae=arguments.length;Rt(.*?)<\/([0-9a-zA-Z-_]*?)>)|(<[0-9a-zA-Z-_]*?\/>)/,Re=Date.now()+"@@",st=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"];function tt(ft,Rt,Ae){var cn=ft.tagName,An=ft.outerHTML,hn=ft.textContent,Xn=ft.childNodes;if(!cn)return Oe(hn||"",Rt);cn=cn.toLowerCase();var nr=~st.indexOf(cn),Wr=Ae[cn];if(Wr&&nr)throw new Se(cn+" is a self-closing tag and can not be used, please use another tag name.");if(!Xn.length)return[An];var Da=Array.prototype.slice.call(Xn).reduce(function(oa,Qr){return oa.concat(tt(Qr,Rt,Ae))},[]);return Wr?typeof Wr=="function"?[Wr.apply(void 0,Da)]:[Wr]:Ce(["<"+cn+">"],Da,[""])}function Ye(ft,Rt,Ae,cn,An,hn){var Xn=re(ft,Rt,Ae,cn,An,void 0,hn),nr={},Wr=Xn.reduce(function(ra,jr){if(jr.type===0)return ra+=jr.value;var $r=Ne();return nr[$r]=jr.value,ra+=""+de+$r+de},"");if(!we.test(Wr))return Oe(Wr,nr);if(!An)throw new Se("Message has placeholders but no values was given");if(typeof DOMParser=="undefined")throw new Se("Cannot format XML message without DOMParser");J||(J=new DOMParser);var Da=J.parseFromString(''+Wr+"","text/html").getElementById(Re);if(!Da)throw new Se("Malformed HTML message "+Wr);var oa=Object.keys(An).filter(function(ra){return!!Da.getElementsByTagName(ra).length});if(!oa.length)return Oe(Wr,nr);var Qr=oa.filter(function(ra){return ra!==ra.toLowerCase()});if(Qr.length)throw new Se("HTML tag must be lowercased but the following tags are not: "+Qr.join(", "));return Array.prototype.slice.call(Da.childNodes).reduce(function(ra,jr){return ra.concat(tt(jr,nr,An))},[])}var ke=function(){return ke=Object.assign||function(ft){for(var Rt,Ae=1,cn=arguments.length;Ae<"']/g;function ze(ft){return(""+ft).replace(bt,function(Rt){return Yt[Rt.charCodeAt(0)]})}function nt(ft,Rt){var Ae=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return Rt.reduce(function(cn,An){return An in ft?cn[An]=ft[An]:An in Ae&&(cn[An]=Ae[An]),cn},{})}function St(ft){wt(ft,"[React Intl] Could not find required `intl` object. needs to exist in the component ancestry.")}function ut(ft,Rt){var Ae=Rt?` +`.concat(Rt.stack):"";return"[React Intl] ".concat(ft).concat(Ae)}function Vt(ft){}var Nt={formats:{},messages:{},timeZone:void 0,textComponent:S.Fragment,defaultLocale:"en",defaultFormats:{},onError:Vt};function At(){return{dateTime:{},number:{},message:{},relativeTime:{},pluralRules:{},list:{},displayNames:{}}}function Ie(){var ft=arguments.length>0&&arguments[0]!==void 0?arguments[0]:At(),Rt=Intl.RelativeTimeFormat,Ae=Intl.ListFormat,cn=Intl.DisplayNames;return{getDateTimeFormat:rt(Intl.DateTimeFormat,ft.dateTime),getNumberFormat:rt(Intl.NumberFormat,ft.number),getMessageFormat:rt(Ot,ft.message),getRelativeTimeFormat:rt(Rt,ft.relativeTime),getPluralRules:rt(Intl.PluralRules,ft.pluralRules),getListFormat:rt(Ae,ft.list),getDisplayNames:rt(cn,ft.displayNames)}}function Ee(ft,Rt,Ae,cn){var An=ft&&ft[Rt],hn;if(An&&(hn=An[Ae]),hn)return hn;cn(ut("No ".concat(Rt," format named: ").concat(Ae)))}var Mt=["localeMatcher","style","currency","currencyDisplay","unit","unitDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","currencyDisplay","currencySign","notation","signDisplay","unit","unitDisplay"];function jt(ft,Rt){var Ae=ft.locale,cn=ft.formats,An=ft.onError,hn=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Xn=hn.format,nr=Xn&&Ee(cn,"number",Xn,An)||{},Wr=nt(hn,Mt,nr);return Rt(Ae,Wr)}function He(ft,Rt,Ae){var cn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};try{return jt(ft,Rt,cn).format(Ae)}catch(An){ft.onError(ut("Error formatting number.",An))}return String(Ae)}function et(ft,Rt,Ae){var cn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};try{return jt(ft,Rt,cn).formatToParts(Ae)}catch(An){ft.onError(ut("Error formatting number.",An))}return[]}var Zt=["numeric","style"];function Ut(ft,Rt){var Ae=ft.locale,cn=ft.formats,An=ft.onError,hn=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Xn=hn.format,nr=!!Xn&&Ee(cn,"relative",Xn,An)||{},Wr=nt(hn,Zt,nr);return Rt(Ae,Wr)}function Jt(ft,Rt,Ae,cn){var An=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{};cn||(cn="second");var hn=Intl.RelativeTimeFormat;hn||ft.onError(ut(`Intl.RelativeTimeFormat is not available in this environment. +Try polyfilling it using "@formatjs/intl-relativetimeformat" +`));try{return Ut(ft,Rt,An).format(Ae,cn)}catch(Xn){ft.onError(ut("Error formatting relative time.",Xn))}return String(Ae)}var ln=["localeMatcher","formatMatcher","timeZone","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName"];function Mn(ft,Rt,Ae){var cn=ft.locale,An=ft.formats,hn=ft.onError,Xn=ft.timeZone,nr=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},Wr=nr.format,Da=Object.assign(Object.assign({},Xn&&{timeZone:Xn}),Wr&&Ee(An,Rt,Wr,hn)),oa=nt(nr,ln,Da);return Rt==="time"&&!oa.hour&&!oa.minute&&!oa.second&&(oa=Object.assign(Object.assign({},oa),{hour:"numeric",minute:"numeric"})),Ae(cn,oa)}function gn(ft,Rt,Ae){var cn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},An=typeof Ae=="string"?new Date(Ae||0):Ae;try{return Mn(ft,"date",Rt,cn).format(An)}catch(hn){ft.onError(ut("Error formatting date.",hn))}return String(An)}function Yn(ft,Rt,Ae){var cn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},An=typeof Ae=="string"?new Date(Ae||0):Ae;try{return Mn(ft,"time",Rt,cn).format(An)}catch(hn){ft.onError(ut("Error formatting time.",hn))}return String(An)}function Gn(ft,Rt,Ae){var cn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},An=typeof Ae=="string"?new Date(Ae||0):Ae;try{return Mn(ft,"date",Rt,cn).formatToParts(An)}catch(hn){ft.onError(ut("Error formatting date.",hn))}return[]}function ar(ft,Rt,Ae){var cn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},An=typeof Ae=="string"?new Date(Ae||0):Ae;try{return Mn(ft,"time",Rt,cn).formatToParts(An)}catch(hn){ft.onError(ut("Error formatting time.",hn))}return[]}var gr=["localeMatcher","type"];function zt(ft,Rt,Ae){var cn=ft.locale,An=ft.onError,hn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};Intl.PluralRules||An(ut(`Intl.PluralRules is not available in this environment. +Try polyfilling it using "@formatjs/intl-pluralrules" +`));var Xn=nt(hn,gr);try{return Rt(cn,Xn).select(Ae)}catch(nr){An(ut("Error formatting plural.",nr))}return"other"}var qt=e(34485),rn=e.n(qt);function dn(ft,Rt){return Object.keys(ft).reduce(function(Ae,cn){return Ae[cn]=Object.assign({timeZone:Rt},ft[cn]),Ae},{})}function Cn(ft,Rt){var Ae=Object.keys(Object.assign(Object.assign({},ft),Rt));return Ae.reduce(function(cn,An){return cn[An]=Object.assign(Object.assign({},ft[An]||{}),Rt[An]||{}),cn},{})}function on(ft,Rt){if(!Rt)return ft;var Ae=Ot.formats;return Object.assign(Object.assign(Object.assign({},Ae),ft),{date:Cn(dn(Ae.date,Rt),dn(ft.date||{},Rt)),time:Cn(dn(Ae.time,Rt),dn(ft.time||{},Rt))})}var pt=function(Rt){return S.createElement.apply(w,[S.Fragment,null].concat(rn()(Rt)))};function mt(ft,Rt){var Ae=ft.locale,cn=ft.formats,An=ft.messages,hn=ft.defaultLocale,Xn=ft.defaultFormats,nr=ft.onError,Wr=ft.timeZone,Da=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{id:""},oa=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},Qr=Da.id,ra=Da.defaultMessage;wt(!!Qr,"[React Intl] An `id` must be provided to format a message.");var jr=An&&An[String(Qr)];cn=on(cn,Wr),Xn=on(Xn,Wr);var $r=[];if(jr)try{var fa=Rt.getMessageFormat(jr,Ae,cn,{formatters:Rt});$r=fa.formatHTMLMessage(oa)}catch(to){nr(ut('Error formatting message: "'.concat(Qr,'" for locale: "').concat(Ae,'"')+(ra?", using default message as fallback.":""),to))}else(!ra||Ae&&Ae.toLowerCase()!==hn.toLowerCase())&&nr(ut('Missing message: "'.concat(Qr,'" for locale: "').concat(Ae,'"')+(ra?", using default message as fallback.":"")));if(!$r.length&&ra)try{var Na=Rt.getMessageFormat(ra,hn,Xn);$r=Na.formatHTMLMessage(oa)}catch(to){nr(ut('Error formatting the default message for: "'.concat(Qr,'"'),to))}return $r.length?$r.length===1&&typeof $r[0]=="string"?$r[0]||ra||String(Qr):pt($r):(nr(ut('Cannot format message: "'.concat(Qr,'", ')+"using message ".concat(jr||ra?"source":"id"," as fallback."))),typeof jr=="string"?jr||ra||String(Qr):ra||String(Qr))}function sn(ft,Rt){var Ae=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{id:""},cn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},An=Object.keys(cn).reduce(function(hn,Xn){var nr=cn[Xn];return hn[Xn]=typeof nr=="string"?ze(nr):nr,hn},{});return mt(ft,Rt,Ae,An)}var Kt=e(57761),tn=e.n(Kt),mn=e(16962),fn=e.n(mn),kn=["localeMatcher","type","style"],qn=Date.now();function ct(ft){return"".concat(qn,"_").concat(ft,"_").concat(qn)}function dt(ft,Rt,Ae){var cn=ft.locale,An=ft.onError,hn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},Xn=Intl.ListFormat;Xn||An(ut(`Intl.ListFormat is not available in this environment. +Try polyfilling it using "@formatjs/intl-listformat" +`));var nr=nt(hn,kn);try{var Wr={},Da=Ae.map(function(Qr,ra){if(fn()(Qr)==="object"){var jr=ct(ra);return Wr[jr]=Qr,jr}return String(Qr)});if(!Object.keys(Wr).length)return Rt(cn,nr).format(Da);var oa=Rt(cn,nr).formatToParts(Da);return oa.reduce(function(Qr,ra){var jr=ra.value;return Wr[jr]?Qr.push(Wr[jr]):typeof Qr[Qr.length-1]=="string"?Qr[Qr.length-1]+=jr:Qr.push(jr),Qr},[])}catch(Qr){An(ut("Error formatting list.",Qr))}return Ae}var It=["localeMatcher","style","type","fallback"];function Ct(ft,Rt,Ae){var cn=ft.locale,An=ft.onError,hn=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},Xn=Intl.DisplayNames;Xn||An(ut(`Intl.DisplayNames is not available in this environment. +Try polyfilling it using "@formatjs/intl-displaynames" +`));var nr=nt(hn,It);try{return Rt(cn,nr).of(Ae)}catch(Wr){An(ut("Error formatting display name.",Wr))}}var kt=tn()||Kt;function un(ft){return{locale:ft.locale,timeZone:ft.timeZone,formats:ft.formats,textComponent:ft.textComponent,messages:ft.messages,defaultLocale:ft.defaultLocale,defaultFormats:ft.defaultFormats,onError:ft.onError}}function nn(ft,Rt){var Ae=Ie(Rt),cn=Object.assign(Object.assign({},Nt),ft),An=cn.locale,hn=cn.defaultLocale,Xn=cn.onError;return An?!Intl.NumberFormat.supportedLocalesOf(An).length&&Xn?Xn(ut('Missing locale data for locale: "'.concat(An,'" in Intl.NumberFormat. Using default locale: "').concat(hn,'" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details'))):!Intl.DateTimeFormat.supportedLocalesOf(An).length&&Xn&&Xn(ut('Missing locale data for locale: "'.concat(An,'" in Intl.DateTimeFormat. Using default locale: "').concat(hn,'" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details'))):(Xn&&Xn(ut('"locale" was not configured, using "'.concat(hn,'" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/API.md#intlshape for more details'))),cn.locale=cn.defaultLocale||"en"),Object.assign(Object.assign({},cn),{formatters:Ae,formatNumber:He.bind(null,cn,Ae.getNumberFormat),formatNumberToParts:et.bind(null,cn,Ae.getNumberFormat),formatRelativeTime:Jt.bind(null,cn,Ae.getRelativeTimeFormat),formatDate:gn.bind(null,cn,Ae.getDateTimeFormat),formatDateToParts:Gn.bind(null,cn,Ae.getDateTimeFormat),formatTime:Yn.bind(null,cn,Ae.getDateTimeFormat),formatTimeToParts:ar.bind(null,cn,Ae.getDateTimeFormat),formatPlural:zt.bind(null,cn,Ae.getPluralRules),formatMessage:mt.bind(null,cn,Ae),formatHTMLMessage:sn.bind(null,cn,Ae),formatList:dt.bind(null,cn,Ae.getListFormat),formatDisplayName:Ct.bind(null,cn,Ae.getDisplayNames)})}var xn=function(ft){g()(Ae,ft);var Rt=h()(Ae);function Ae(){var cn;return d()(this,Ae),cn=Rt.apply(this,arguments),cn.cache=At(),cn.state={cache:cn.cache,intl:nn(un(cn.props),cn.cache),prevConfig:un(cn.props)},cn}return c()(Ae,[{key:"render",value:function(){return St(this.state.intl),S.createElement(j,{value:this.state.intl},this.props.children)}}],[{key:"getDerivedStateFromProps",value:function(An,hn){var Xn=hn.prevConfig,nr=hn.cache,Wr=un(An);return kt(Xn,Wr)?null:{intl:nn(Wr,nr),prevConfig:Wr}}}]),Ae}(S.PureComponent);xn.displayName="IntlProvider",xn.defaultProps=Nt;var Rn=e(23042),Mr=e(87308),er=e.n(Mr),zn=e(62118),Ur=e.n(zn),pr=function(ft,Rt){var Ae={};for(var cn in ft)Object.prototype.hasOwnProperty.call(ft,cn)&&Rt.indexOf(cn)<0&&(Ae[cn]=ft[cn]);if(ft!=null&&typeof Object.getOwnPropertySymbols=="function")for(var An=0,cn=Object.getOwnPropertySymbols(ft);An1&&arguments[1]!==void 0?arguments[1]:!0,cn=function(){if(Ua()!==Rt){if(navigator.cookieEnabled&&typeof window.localStorage!="undefined"&&Fn&&window.localStorage.setItem("umi_locale",Rt||""),Mo(Rt),Ae)window.location.reload();else if(hr.emit(Kr,Rt),window.dispatchEvent){var hn=new Event("languagechange");window.dispatchEvent(hn)}}};cn()},No=!0,$o=function(Rt,Ae){return No&&(Ur()(!1,`Using this API will cause automatic refresh when switching languages, please use useIntl or injectIntl. + +\u4F7F\u7528\u6B64 api \u4F1A\u9020\u6210\u5207\u6362\u8BED\u8A00\u7684\u65F6\u5019\u65E0\u6CD5\u81EA\u52A8\u5237\u65B0\uFF0C\u8BF7\u4F7F\u7528 useIntl \u6216 injectIntl\u3002 + +http://j.mp/37Fkd5Q + `),No=!1),Wn||Mo(Ua()),Wn.formatMessage(Rt,Ae)},So=function(){return Object.keys(Ar)}},47338:function(b,y,e){"use strict";e.d(y,{t:function(){return N},z:function(){return Z}});var a=e(88205),t=e.n(a),o=e(61697),s=e.n(o),n=e(77016),d=e.n(n),l=e(2657),c=e.n(l),m=e(44204),g=e.n(m),M=e(58757),h=e(35667),S=M.createContext(null),w=s()(function L(){var $=this;d()(this,L),c()(this,"callbacks",{}),c()(this,"data",{}),c()(this,"update",function(D){$.callbacks[D]&&$.callbacks[D].forEach(function(T){try{var j=$.data[D];T(j)}catch(G){T(void 0)}})})});function C(L){var $=L.hook,D=L.onUpdate,T=L.namespace,j=(0,M.useRef)(D),G=(0,M.useRef)(!1),k;try{k=$()}catch(te){console.error("plugin-model: Invoking '".concat(T||"unknown","' model failed:"),te)}return(0,M.useMemo)(function(){j.current(k)},[]),(0,M.useEffect)(function(){G.current?j.current(k):G.current=!0}),null}var z=new w;function Z(L){return(0,h.jsxs)(S.Provider,{value:{dispatcher:z},children:[Object.keys(L.models).map(function($){return(0,h.jsx)(C,{hook:L.models[$],namespace:$,onUpdate:function(T){z.data[$]=T,z.update($)}},$)}),L.children]})}function N(L,$){var D=(0,M.useContext)(S),T=D.dispatcher,j=(0,M.useRef)($);j.current=$;var G=(0,M.useState)(function(){return j.current?j.current(T.data[L]):T.data[L]}),k=t()(G,2),te=k[0],Y=k[1],q=(0,M.useRef)(te);q.current=te;var le=(0,M.useRef)(!1);return(0,M.useEffect)(function(){return le.current=!0,function(){le.current=!1}},[]),(0,M.useEffect)(function(){var X,W=function(O){if(!le.current)setTimeout(function(){T.data[L]=O,T.update(L)});else{var _=j.current?j.current(O):O,U=q.current;g()(_,U)||(q.current=_,Y(_))}};return(X=T.callbacks)[L]||(X[L]=new Set),T.callbacks[L].add(W),T.update(L),function(){T.callbacks[L].delete(W)}},[L]),te}},76180:function(b,y,e){"use strict";e.d(y,{AD:function(){return H},JJ:function(){return ye},EX:function(){return P},BP:function(){return xe},pB:function(){return ce},G3:function(){return Ne},YZ:function(){return J},J1:function(){return de},L8:function(){return $e},Ss:function(){return R},zY:function(){return ne},oC:function(){return we},gS:function(){return Ke},po:function(){return Ce},a5:function(){return Se},j3:function(){return re},YC:function(){return We},iP:function(){return Q},oM:function(){return ie},JQ:function(){return ae},Wp:function(){return je},$j:function(){return se},uP:function(){return me},Uf:function(){return Oe}});var a=e(2657),t=e.n(a),o=e(58757),s=Object.defineProperty,n=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,c=(tt,Ye,ke)=>Ye in tt?s(tt,Ye,{enumerable:!0,configurable:!0,writable:!0,value:ke}):tt[Ye]=ke,m=(tt,Ye)=>{for(var ke in Ye||(Ye={}))d.call(Ye,ke)&&c(tt,ke,Ye[ke]);if(n)for(var ke of n(Ye))l.call(Ye,ke)&&c(tt,ke,Ye[ke]);return tt};const g=tt=>o.createElement("svg",m({className:"classification_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},tt),o.createElement("path",{d:"M797.723 912.007h-149.1c-59.634 0-109.325-49.691-109.325-109.326V539.325h263.356c59.635 0 109.326 49.69 109.326 109.325v149.073c0 29.804-9.944 54.65-29.804 79.495-29.83 24.818-54.703 34.762-84.48 34.762zm-422.373 0H226.277c-64.593 0-114.257-49.691-114.257-109.326V653.608c0-29.803 9.917-59.634 34.762-79.494 19.86-19.887 49.691-34.79 79.495-34.79h258.398v263.357c0 29.804-9.943 54.65-29.803 79.495-24.846 19.887-49.691 29.83-79.522 29.83zm422.373-422.373H534.339V226.277c0-29.804 9.97-59.634 34.79-79.495 19.887-19.86 49.69-34.762 79.521-34.762h149.073c59.608 4.932 109.298 54.623 109.298 114.257V375.35c0 29.83-9.916 54.676-29.803 79.495-24.846 24.845-49.691 34.762-79.495 34.762zm-313.048 0H221.32c-59.635 0-109.326-49.691-109.326-109.326V231.235c0-29.803 9.944-59.607 34.79-79.494 19.86-24.819 49.69-34.762 74.536-34.762h149.073c59.634 0 109.298 49.664 109.298 109.298v263.384h4.958v-.027z"}));var M="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTc5Ny43MjMgOTEyLjAwN2gtMTQ5LjFjLTU5LjYzNCAwLTEwOS4zMjUtNDkuNjkxLTEwOS4zMjUtMTA5LjMyNlY1MzkuMzI1aDI2My4zNTZjNTkuNjM1IDAgMTA5LjMyNiA0OS42OSAxMDkuMzI2IDEwOS4zMjV2MTQ5LjA3M2MwIDI5LjgwNC05Ljk0NCA1NC42NS0yOS44MDQgNzkuNDk1LTI5LjgzIDI0LjgxOC01NC43MDMgMzQuNzYyLTg0LjQ4IDM0Ljc2MnptLTQyMi4zNzMgMEgyMjYuMjc3Yy02NC41OTMgMC0xMTQuMjU3LTQ5LjY5MS0xMTQuMjU3LTEwOS4zMjZWNjUzLjYwOGMwLTI5LjgwMyA5LjkxNy01OS42MzQgMzQuNzYyLTc5LjQ5NCAxOS44Ni0xOS44ODcgNDkuNjkxLTM0Ljc5IDc5LjQ5NS0zNC43OWgyNTguMzk4djI2My4zNTdjMCAyOS44MDQtOS45NDMgNTQuNjUtMjkuODAzIDc5LjQ5NS0yNC44NDYgMTkuODg3LTQ5LjY5MSAyOS44My03OS41MjIgMjkuODN6bTQyMi4zNzMtNDIyLjM3M0g1MzQuMzM5VjIyNi4yNzdjMC0yOS44MDQgOS45Ny01OS42MzQgMzQuNzktNzkuNDk1IDE5Ljg4Ny0xOS44NiA0OS42OS0zNC43NjIgNzkuNTIxLTM0Ljc2MmgxNDkuMDczYzU5LjYwOCA0LjkzMiAxMDkuMjk4IDU0LjYyMyAxMDkuMjk4IDExNC4yNTdWMzc1LjM1YzAgMjkuODMtOS45MTYgNTQuNjc2LTI5LjgwMyA3OS40OTUtMjQuODQ2IDI0Ljg0NS00OS42OTEgMzQuNzYyLTc5LjQ5NSAzNC43NjJ6bS0zMTMuMDQ4IDBIMjIxLjMyYy01OS42MzUgMC0xMDkuMzI2LTQ5LjY5MS0xMDkuMzI2LTEwOS4zMjZWMjMxLjIzNWMwLTI5LjgwMyA5Ljk0NC01OS42MDcgMzQuNzktNzkuNDk0IDE5Ljg2LTI0LjgxOSA0OS42OS0zNC43NjIgNzQuNTM2LTM0Ljc2MmgxNDkuMDczYzU5LjYzNCAwIDEwOS4yOTggNDkuNjY0IDEwOS4yOTggMTA5LjI5OHYyNjMuMzg0aDQuOTU4di0uMDI3eiIvPjwvc3ZnPg==",h=Object.defineProperty,S=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable,z=(tt,Ye,ke)=>Ye in tt?h(tt,Ye,{enumerable:!0,configurable:!0,writable:!0,value:ke}):tt[Ye]=ke,Z=(tt,Ye)=>{for(var ke in Ye||(Ye={}))w.call(Ye,ke)&&z(tt,ke,Ye[ke]);if(S)for(var ke of S(Ye))C.call(Ye,ke)&&z(tt,ke,Ye[ke]);return tt};const N=tt=>o.createElement("svg",Z({className:"datasetDetection_svg__icon",viewBox:"0 0 1092 1024",xmlns:"http://www.w3.org/2000/svg",width:213.281,height:200},tt),o.createElement("path",{d:"m514.859 116.928 318.336 130.624-1.28 3.2 2.88-1.152v448l-320 128-320-128v-448l2.816 1.152-1.28-3.2 318.528-130.624zm-256 227.2v310.144l224 89.6V434.24h1.28l-225.28-90.112zm512 0L545.323 434.24h1.408v309.632l224-89.6V344.128zm-256.064-158.08-236.352 97.024L514.795 377.6l236.288-94.528-236.288-97.024zM132.523 728.064v160h160v64h-224v-224h64zm830.272 0v224h-224v-64h160v-160h64zm-670.272-672v64h-160v160h-64v-224h224zm670.272 0v224h-64v-160h-160v-64h224z"}),o.createElement("path",{d:"M4.267 0h1024v1024h-1024z",fill:"none"}));var L="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwOTIgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjEzLjI4MSIgaGVpZ2h0PSIyMDAiPjxwYXRoIGQ9Im01MTQuODU5IDExNi45MjggMzE4LjMzNiAxMzAuNjI0LTEuMjggMy4yIDIuODgtMS4xNTJ2NDQ4bC0zMjAgMTI4LTMyMC0xMjh2LTQ0OGwyLjgxNiAxLjE1Mi0xLjI4LTMuMiAzMTguNTI4LTEzMC42MjR6bS0yNTYgMjI3LjJ2MzEwLjE0NGwyMjQgODkuNlY0MzQuMjRoMS4yOGwtMjI1LjI4LTkwLjExMnptNTEyIDBMNTQ1LjMyMyA0MzQuMjRoMS40MDh2MzA5LjYzMmwyMjQtODkuNlYzNDQuMTI4em0tMjU2LjA2NC0xNTguMDgtMjM2LjM1MiA5Ny4wMjRMNTE0Ljc5NSAzNzcuNmwyMzYuMjg4LTk0LjUyOC0yMzYuMjg4LTk3LjAyNHpNMTMyLjUyMyA3MjguMDY0djE2MGgxNjB2NjRoLTIyNHYtMjI0aDY0em04MzAuMjcyIDB2MjI0aC0yMjR2LTY0aDE2MHYtMTYwaDY0em0tNjcwLjI3Mi02NzJ2NjRoLTE2MHYxNjBoLTY0di0yMjRoMjI0em02NzAuMjcyIDB2MjI0aC02NHYtMTYwaC0xNjB2LTY0aDIyNHoiLz48cGF0aCBkPSJNNC4yNjcgMGgxMDI0djEwMjRoLTEwMjR6IiBmaWxsPSJub25lIi8+PC9zdmc+",$=Object.defineProperty,D=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable,G=(tt,Ye,ke)=>Ye in tt?$(tt,Ye,{enumerable:!0,configurable:!0,writable:!0,value:ke}):tt[Ye]=ke,k=(tt,Ye)=>{for(var ke in Ye||(Ye={}))T.call(Ye,ke)&&G(tt,ke,Ye[ke]);if(D)for(var ke of D(Ye))j.call(Ye,ke)&&G(tt,ke,Ye[ke]);return tt};const te=tt=>o.createElement("svg",k({className:"datasetSegment_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},tt),o.createElement("path",{d:"M179.2 524.288h678.912a25.6 25.6 0 0 0 0-51.2H179.2a25.6 25.6 0 0 0 0 51.2zm700.672-245.504v-56.32l-164.864 156.16H774.4l105.472-99.84zm0 73.216-27.904 26.624h27.904V352zm-242.176 26.624 242.176-229.376v-15.616h-43.264L578.304 378.624h59.392zm-136.96 0 258.56-244.992h-59.392L441.6 378.624h59.136zm-136.704 0 258.304-244.992h-59.392l-258.56 244.992h59.648zm-136.96 0 258.56-244.992H426.24L167.68 378.624h59.392zm62.72-244.992L156.16 260.352v55.808l192.512-182.528h-58.88zm-133.632 0v53.504l56.32-53.504h-56.32zm618.24 742.4 105.472-99.584v-56.576l-164.864 156.16H774.4zm105.472 0v-26.368l-27.904 26.368h27.904zm-301.568 0h59.392l242.176-229.376v-15.36h-43.264L578.304 876.032zm121.6-244.736L441.6 876.032h59.136l258.56-244.736h-59.392zm-136.96 0-258.56 244.736h59.648l258.304-244.736h-59.392zm-136.704 0L167.68 876.032h59.392l258.56-244.736H426.24zm-136.448 0L156.16 758.016v55.808l192.512-182.528h-58.88zM156.16 684.544l56.32-53.248h-56.32v53.248z"}));var Y="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE3OS4yIDUyNC4yODhoNjc4LjkxMmEyNS42IDI1LjYgMCAwIDAgMC01MS4ySDE3OS4yYTI1LjYgMjUuNiAwIDAgMCAwIDUxLjJ6bTcwMC42NzItMjQ1LjUwNHYtNTYuMzJsLTE2NC44NjQgMTU2LjE2SDc3NC40bDEwNS40NzItOTkuODR6bTAgNzMuMjE2LTI3LjkwNCAyNi42MjRoMjcuOTA0VjM1MnptLTI0Mi4xNzYgMjYuNjI0IDI0Mi4xNzYtMjI5LjM3NnYtMTUuNjE2aC00My4yNjRMNTc4LjMwNCAzNzguNjI0aDU5LjM5MnptLTEzNi45NiAwIDI1OC41Ni0yNDQuOTkyaC01OS4zOTJMNDQxLjYgMzc4LjYyNGg1OS4xMzZ6bS0xMzYuNzA0IDAgMjU4LjMwNC0yNDQuOTkyaC01OS4zOTJsLTI1OC41NiAyNDQuOTkyaDU5LjY0OHptLTEzNi45NiAwIDI1OC41Ni0yNDQuOTkySDQyNi4yNEwxNjcuNjggMzc4LjYyNGg1OS4zOTJ6bTYyLjcyLTI0NC45OTJMMTU2LjE2IDI2MC4zNTJ2NTUuODA4bDE5Mi41MTItMTgyLjUyOGgtNTguODh6bS0xMzMuNjMyIDB2NTMuNTA0bDU2LjMyLTUzLjUwNGgtNTYuMzJ6bTYxOC4yNCA3NDIuNCAxMDUuNDcyLTk5LjU4NHYtNTYuNTc2bC0xNjQuODY0IDE1Ni4xNkg3NzQuNHptMTA1LjQ3MiAwdi0yNi4zNjhsLTI3LjkwNCAyNi4zNjhoMjcuOTA0em0tMzAxLjU2OCAwaDU5LjM5MmwyNDIuMTc2LTIyOS4zNzZ2LTE1LjM2aC00My4yNjRMNTc4LjMwNCA4NzYuMDMyem0xMjEuNi0yNDQuNzM2TDQ0MS42IDg3Ni4wMzJoNTkuMTM2bDI1OC41Ni0yNDQuNzM2aC01OS4zOTJ6bS0xMzYuOTYgMC0yNTguNTYgMjQ0LjczNmg1OS42NDhsMjU4LjMwNC0yNDQuNzM2aC01OS4zOTJ6bS0xMzYuNzA0IDBMMTY3LjY4IDg3Ni4wMzJoNTkuMzkybDI1OC41Ni0yNDQuNzM2SDQyNi4yNHptLTEzNi40NDggMEwxNTYuMTYgNzU4LjAxNnY1NS44MDhsMTkyLjUxMi0xODIuNTI4aC01OC44OHpNMTU2LjE2IDY4NC41NDRsNTYuMzItNTMuMjQ4aC01Ni4zMnY1My4yNDh6Ii8+PC9zdmc+",q=Object.defineProperty,le=Object.getOwnPropertySymbols,X=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable,x=(tt,Ye,ke)=>Ye in tt?q(tt,Ye,{enumerable:!0,configurable:!0,writable:!0,value:ke}):tt[Ye]=ke,O=(tt,Ye)=>{for(var ke in Ye||(Ye={}))X.call(Ye,ke)&&x(tt,ke,Ye[ke]);if(le)for(var ke of le(Ye))W.call(Ye,ke)&&x(tt,ke,Ye[ke]);return tt};const _=tt=>o.createElement("svg",O({className:"datasetMatting_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},tt),o.createElement("path",{d:"M832 288h-96v-96c0-52.9-43.1-96-96-96H192c-52.9 0-96 43.1-96 96v448c0 52.9 43.1 96 96 96h96v96c0 52.9 43.1 96 96 96h448c52.9 0 96-43.1 96-96V384c0-52.9-43.1-96-96-96zM160 640V192c0-17.6 14.4-32 32-32h448c17.6 0 32 14.4 32 32v96h-32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v288c0 17.6-14.4 32-32 32H352v-32c0-17.7-14.3-32-32-32s-32 14.3-32 32v32h-96c-17.6 0-32-14.4-32-32zm704 192c0 17.6-14.4 32-32 32H384c-17.6 0-32-14.4-32-32v-96h288c52.9 0 96-43.1 96-96V352h96c17.6 0 32 14.4 32 32v448z"}),o.createElement("path",{d:"M320 576c17.7 0 32-14.3 32-32v-64c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32zm160-224h64c17.7 0 32-14.3 32-32s-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-160 64c17.7 0 32-14.3 32-32 0-17.6 14.4-32 32-32 17.7 0 32-14.3 32-32s-14.3-32-32-32c-52.9 0-96 43.1-96 96 0 17.7 14.3 32 32 32z"}));var U="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTgzMiAyODhoLTk2di05NmMwLTUyLjktNDMuMS05Ni05Ni05NkgxOTJjLTUyLjkgMC05NiA0My4xLTk2IDk2djQ0OGMwIDUyLjkgNDMuMSA5NiA5NiA5Nmg5NnY5NmMwIDUyLjkgNDMuMSA5NiA5NiA5Nmg0NDhjNTIuOSAwIDk2LTQzLjEgOTYtOTZWMzg0YzAtNTIuOS00My4xLTk2LTk2LTk2ek0xNjAgNjQwVjE5MmMwLTE3LjYgMTQuNC0zMiAzMi0zMmg0NDhjMTcuNiAwIDMyIDE0LjQgMzIgMzJ2OTZoLTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDMydjI4OGMwIDE3LjYtMTQuNCAzMi0zMiAzMkgzNTJ2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjMyaC05NmMtMTcuNiAwLTMyLTE0LjQtMzItMzJ6bTcwNCAxOTJjMCAxNy42LTE0LjQgMzItMzIgMzJIMzg0Yy0xNy42IDAtMzItMTQuNC0zMi0zMnYtOTZoMjg4YzUyLjkgMCA5Ni00My4xIDk2LTk2VjM1Mmg5NmMxNy42IDAgMzIgMTQuNCAzMiAzMnY0NDh6Ii8+PHBhdGggZD0iTTMyMCA1NzZjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyem0xNjAtMjI0aDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyaC02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptLTE2MCA2NGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTE3LjYgMTQuNC0zMiAzMi0zMiAxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmMtNTIuOSAwLTk2IDQzLjEtOTYgOTYgMCAxNy43IDE0LjMgMzIgMzIgMzJ6Ii8+PC9zdmc+",A=Object.defineProperty,V=Object.getOwnPropertySymbols,fe=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable,ge=(tt,Ye,ke)=>Ye in tt?A(tt,Ye,{enumerable:!0,configurable:!0,writable:!0,value:ke}):tt[Ye]=ke,be=(tt,Ye)=>{for(var ke in Ye||(Ye={}))fe.call(Ye,ke)&&ge(tt,ke,Ye[ke]);if(V)for(var ke of V(Ye))pe.call(Ye,ke)&&ge(tt,ke,Ye[ke]);return tt};const Te=tt=>o.createElement("svg",be({className:"datasetKeypoint_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},tt),o.createElement("path",{d:"M938.667 298.667c0 70.613-57.387 128-128 128s-128-57.387-128-128c0-1.92 0-3.627.213-5.334L501.12 238.72a107.03 107.03 0 0 1-63.787 55.253l69.334 138.24c15.36-3.626 31.573-5.546 48-5.546C672.213 426.667 768 522.453 768 640s-95.787 213.333-213.333 213.333c-85.334 0-159.147-50.56-193.067-123.093l-34.133 22.613c8.96 17.28 13.866 36.907 13.866 57.814 0 70.613-57.386 128-128 128s-128-57.387-128-128 57.387-128 128-128c34.774 0 66.134 13.653 88.96 36.053l44.8-29.867c-3.84-15.573-5.76-32-5.76-48.853 0-85.973 51.2-160.213 124.587-193.92L391.68 297.6A106.475 106.475 0 0 1 298.667 192c0-58.88 47.786-106.667 106.666-106.667S512 133.12 512 192c0 1.707 0 3.627-.213 5.333l180.053 53.974a127.957 127.957 0 0 1 118.827-80.64c70.613 0 128 57.386 128 128z"}));var Ge="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTkzOC42NjcgMjk4LjY2N2MwIDcwLjYxMy01Ny4zODcgMTI4LTEyOCAxMjhzLTEyOC01Ny4zODctMTI4LTEyOGMwLTEuOTIgMC0zLjYyNy4yMTMtNS4zMzRMNTAxLjEyIDIzOC43MmExMDcuMDMgMTA3LjAzIDAgMCAxLTYzLjc4NyA1NS4yNTNsNjkuMzM0IDEzOC4yNGMxNS4zNi0zLjYyNiAzMS41NzMtNS41NDYgNDgtNS41NDZDNjcyLjIxMyA0MjYuNjY3IDc2OCA1MjIuNDUzIDc2OCA2NDBzLTk1Ljc4NyAyMTMuMzMzLTIxMy4zMzMgMjEzLjMzM2MtODUuMzM0IDAtMTU5LjE0Ny01MC41Ni0xOTMuMDY3LTEyMy4wOTNsLTM0LjEzMyAyMi42MTNjOC45NiAxNy4yOCAxMy44NjYgMzYuOTA3IDEzLjg2NiA1Ny44MTQgMCA3MC42MTMtNTcuMzg2IDEyOC0xMjggMTI4cy0xMjgtNTcuMzg3LTEyOC0xMjggNTcuMzg3LTEyOCAxMjgtMTI4YzM0Ljc3NCAwIDY2LjEzNCAxMy42NTMgODguOTYgMzYuMDUzbDQ0LjgtMjkuODY3Yy0zLjg0LTE1LjU3My01Ljc2LTMyLTUuNzYtNDguODUzIDAtODUuOTczIDUxLjItMTYwLjIxMyAxMjQuNTg3LTE5My45MkwzOTEuNjggMjk3LjZBMTA2LjQ3NSAxMDYuNDc1IDAgMCAxIDI5OC42NjcgMTkyYzAtNTguODggNDcuNzg2LTEwNi42NjcgMTA2LjY2Ni0xMDYuNjY3UzUxMiAxMzMuMTIgNTEyIDE5MmMwIDEuNzA3IDAgMy42MjctLjIxMyA1LjMzM2wxODAuMDUzIDUzLjk3NGExMjcuOTU3IDEyNy45NTcgMCAwIDEgMTE4LjgyNy04MC42NGM3MC42MTMgMCAxMjggNTcuMzg2IDEyOCAxMjh6Ii8+PC9zdmc+",qe,Qe,ht,Et,gt="Deep Data Space",Ht="https://img.alicdn.com/tfs/TB1YHEpwUT1gK0jSZFhXXaAtVXa-28-27.svg",$e=50,Xe=null,rt=null,Ke=8,ye=function(tt){return tt.Classification="Classification",tt.Detection="Detection",tt.Segmentation="Segmentation",tt.Matting="Matting",tt.KeyPoints="KeyPoints",tt.Mask="Mask",tt}({}),ne=function(tt){return tt.showAnnotations="showAnnotations",tt.showAllCategory="showAllCategory",tt.showImgDesc="showImgDesc",tt.showBoxText="showBoxText",tt.showSegFilling="showSegFilling",tt.showSegContour="showSegContour",tt.showMattingColorFill="showMattingColorFill",tt.showKeyPointsLine="showKeyPointsLine",tt.showKeyPointsBox="showKeyPointsBox",tt}({}),H=(qe={},t()(qe,ye.Classification,g),t()(qe,ye.Detection,N),t()(qe,ye.Segmentation,te),t()(qe,ye.Matting,_),t()(qe,ye.KeyPoints,Te),t()(qe,ye.Mask,_),qe),R=(Qe={},t()(Qe,ne.showAnnotations,"lab.displayOption.showAnnotations"),t()(Qe,ne.showAllCategory,"lab.displayOption.showAllCategory"),t()(Qe,ne.showImgDesc,"lab.displayOption.showImgDesc"),t()(Qe,ne.showBoxText,"lab.displayOption.showBoxText"),t()(Qe,ne.showSegFilling,"lab.displayOption.showSegFilling"),t()(Qe,ne.showSegContour,"lab.displayOption.showSegContour"),t()(Qe,ne.showMattingColorFill,"lab.displayOption.showMattingColorFill"),t()(Qe,ne.showKeyPointsLine,"lab.displayOption.showKeyPointsLine"),t()(Qe,ne.showKeyPointsBox,"lab.displayOption.showKeyPointsBox"),Qe),P=[ne.showAnnotations,ne.showAllCategory,ne.showImgDesc],ae=[[0],[2],[5],[10],[1,5,3],[5,2,10]],Q=[1,.4,.6,.8,.85,.9],ie=[1,1.5,1.75,2,2.25,2.5],me=function(tt){return tt.Overlay="dataset.diffMode.overlay",tt.Tiled="dataset.diffMode.tiled",tt}({}),je=[me.Overlay,me.Tiled],Ce=function(tt){return tt[tt.all=-1]="all",tt[tt.unflaged=0]="unflaged",tt[tt.picked=1]="picked",tt[tt.rejected=2]="rejected",tt}({}),Se=(ht={},t()(ht,Ce.all,"transparent"),t()(ht,Ce.unflaged,"#8C8C8C"),t()(ht,Ce.picked,"#52C41A"),t()(ht,Ce.rejected,"#F5222D"),ht),We=[{value:Ce.picked,tip:"save as 'positive'"},{value:Ce.rejected,tip:"save as 'negative'"},{value:Ce.unflaged,tip:"save as 'unset'"}],re=[{value:Ce.all,name:"all"},{value:Ce.unflaged,name:"unset"},{value:Ce.picked,name:"positive"},{value:Ce.rejected,name:"negative"}],se=function(tt){return tt.gt="GT",tt.user="User",tt.pred="Pred",tt}({}),J=function(tt){return tt.fn="fn",tt.fp="fp",tt}({}),de=[{value:J.fn,name:"FN count"},{value:J.fp,name:"FP count"}],xe=function(tt){return tt.ok="OK",tt.fn="FN",tt.fp="FP",tt}({}),ce=(Et={},t()(Et,xe.ok,""),t()(Et,xe.fn,"rgba(255,0,0,0.4)"),t()(Et,xe.fp,"rgba(0,0,255,0.4)"),Et),Ne=[{value:se.gt,name:"GT - Matched"},{value:xe.fn,name:"GT - FN"},{value:se.pred,name:"Prediction - Matched"},{value:xe.fp,name:"Prediction - FP"}],Oe=function(tt){return tt.AUTH_TOKEN="auth_token",tt}({}),we=function(tt){return tt.Active="active",tt.Inactive="inactive",tt.Activating="activating",tt}({}),Re=function(tt){return tt.Upload="self_uploaded",tt.DirectUrl="direct_url",tt}({}),st=function(tt){return tt.Waiting="waiting",tt.Running="running",tt.Success="success",tt.Failed="failed",tt.Fail="fail",tt}({})},35459:function(b,y,e){"use strict";e.d(y,{JE:function(){return m},ZA:function(){return c},gZ:function(){return l},j$:function(){return g},mu:function(){return d},tz:function(){return n}});var a=e(2657),t=e.n(a),o,s,n=function(M){return M.Waiting="waiting",M.Initializing="initializing",M.Working="working",M.Reviewing="reviewing",M.Rejected="rejected",M.Accepted="accepted",M.Exported="exported",M}({}),d=(o={},t()(o,n.Waiting,{text:"proj.statusMap.waiting",color:"default"}),t()(o,n.Initializing,{text:"proj.statusMap.initializing",color:"default"}),t()(o,n.Working,{text:"proj.statusMap.working",color:"processing"}),t()(o,n.Reviewing,{text:"proj.statusMap.reviewing",color:"warning"}),t()(o,n.Rejected,{text:"proj.statusMap.rejected",color:"error"}),t()(o,n.Accepted,{text:"proj.statusMap.accepted",color:"success"}),t()(o,n.Exported,{text:"proj.statusMap.exported",color:"default"}),o),l=function(M){return M.Waiting="waiting",M.Working="working",M.Reviewing="reviewing",M.Rejected="rejected",M.Accepted="accepted",M}({}),c=(s={},t()(s,l.Waiting,{text:"proj.eTaskStatus.waiting",color:"default"}),t()(s,l.Working,{text:"proj.eTaskStatus.working",color:"processing"}),t()(s,l.Reviewing,{text:"proj.eTaskStatus.reviewing",color:"warning"}),t()(s,l.Rejected,{text:"proj.eTaskStatus.rejected",color:"error"}),t()(s,l.Accepted,{text:"proj.eTaskStatus.accepted",color:"success"}),s),m=function(M){return M.Accept="accept",M.Reject="reject",M.ForceAccept="force_accept",M}({}),g=function(M){return M.Labeling="labeling",M.Reviewing="reviewing",M.Rejected="rejected",M.Accepted="accepted",M}({})},1239:function(b,y,e){"use strict";e.d(y,{Oc:function(){return d},vb:function(){return n}});var a=e(2657),t=e.n(a),o=e(97375),s,n=function(c){return c.Owner="owner",c.Manager="manager",c.LabelLeader="label_leader",c.ReviewLeader="review_leader",c.Labeler="labeler",c.Reviewer="reviewer",c}({}),d=function(c){return c[c.ProjectEdit=0]="ProjectEdit",c[c.ProjectInfo=1]="ProjectInfo",c[c.ProjectInit=2]="ProjectInit",c[c.ProjectQa=3]="ProjectQa",c[c.ProjectExport=4]="ProjectExport",c[c.AssignLeader=100]="AssignLeader",c[c.TaskQa=101]="TaskQa",c[c.AssignLabeler=102]="AssignLabeler",c[c.AssignReviewer=103]="AssignReviewer",c[c.RestartTask=104]="RestartTask",c[c.StartLabel=105]="StartLabel",c[c.StartReview=106]="StartReview",c[c.CommitReviewTask=107]="CommitReviewTask",c[c.View=108]="View",c}({}),l=(s={},t()(s,n.Owner,[d.ProjectEdit,d.ProjectQa,d.View,d.ProjectExport]),t()(s,n.Manager,[d.ProjectInit,d.ProjectInfo,d.AssignLeader,d.TaskQa,d.View]),t()(s,n.LabelLeader,[d.AssignLabeler,d.RestartTask,d.View]),t()(s,n.ReviewLeader,[d.AssignReviewer,d.View]),t()(s,n.Labeler,[d.StartLabel]),t()(s,n.Reviewer,[d.StartReview,d.CommitReviewTask]),s);y.ZP=function(){var c=(0,o.useModel)("user"),m=c.user,g=function(S,w){if(!m.userId||!S)return[];var C=[];if(m.userId===S.owner.id&&C.push(n.Owner),S.managers.find(function(N){return N.id===m.userId})&&C.push(n.Manager),w){var z,Z;((z=w.labelLeader)===null||z===void 0?void 0:z.userId)===m.userId&&C.push(n.LabelLeader),((Z=w.reviewLeader)===null||Z===void 0?void 0:Z.userId)===m.userId&&C.push(n.ReviewLeader),w.labelers.find(function(N){return N.userId===m.userId})&&C.push(n.Labeler),w.reviewers.find(function(N){return N.userId===m.userId})&&C.push(n.Reviewer)}return C},M=function(){var S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],w=arguments.length>1?arguments[1]:void 0,C=[];return S.forEach(function(z){var Z=l[z];Z.forEach(function(N){C.includes(N)||C.push(N)})}),C.includes(w)};return{getUserRoles:g,checkPermission:M}}},32694:function(b,y,e){"use strict";e.d(y,{u:function(){return Z}});var a=e(24454),t=e.n(a),o=e(34485),s=e.n(o),n=e(56592),d=e.n(n),l=e(88205),c=e.n(l),m=e(97375),g=e(65246),M=e(7986),h=e(91290),S=e(53357),w=e(84045),C=e(23707),z=20,Z=function(L){return L[L.labelLeader=0]="labelLeader",L[L.reviewLeader=1]="reviewLeader",L[L.labeler=2]="labeler",L[L.reviewer=3]="reviewer",L[L.reassign=4]="reassign",L}({}),N={show:!1,types:[],tasks:[],initialValues:{}};y.Z=function(){var L=(0,m.useModel)("user"),$=L.user,D=(0,g.x)({list:[],total:0,selectedTaskIds:[]}),T=c()(D,2),j=T[0],G=T[1],k=(0,g.x)({page:1,pageSize:z}),te=c()(k,2),Y=te[0],q=te[1],le=(0,g.x)(void 0),X=c()(le,2),W=X[0],x=X[1],O=(0,g.x)(N),_=c()(O,2),U=_[0],A=_[1],V=(0,M.Z)(function(ye,ne){return G(function(H){H.list=[]}),(0,h.ZJ)({projectId:(0,C.Oe)(),pageNum:ye||Y.page,pageSize:ne||Y.pageSize})},{manual:!0,debounceWait:100,refreshDeps:[Y.page,Y.pageSize],onSuccess:function(ne){var H=ne.taskList,R=ne.total;G(function(P){P.list=H,P.total=R,P.selectedTaskIds=[]})},onError:function(){}}),fe=V.loading,pe=V.run,ge=(0,M.Z)(function(){return(0,h.NT)((0,C.Oe)())},{manual:!0,debounceWait:100,refreshDeps:[Y.page,Y.pageSize],onSuccess:function(ne){G(function(H){H.projectDetail=ne,H.isPm=!!ne.managers.find(function(R){return R.id===$.userId})})},onError:function(){}}),be=ge.run,Te=function(ne,H){q(function(R){R.page=H===R.pageSize?ne:1,R.pageSize=H}),pe(ne,H)},Ge=function(ne){G(function(H){H.selectedTaskIds=ne})},qe=function(ne){if(j.projectDetail){var H=ne||j.selectedTaskIds,R=[],P={},ae=j.list.find(function(me){return me.id===H[0]});if(j.projectDetail.labelTimes>0){var Q;R.push(Z.labelLeader),P.labelLeaderId=ae==null||(Q=ae.labelLeader)===null||Q===void 0?void 0:Q.userId}if(j.projectDetail.reviewTimes>0){var ie;R.push(Z.reviewLeader),P.reviewLeaderId=ae==null||(ie=ae.reviewLeader)===null||ie===void 0?void 0:ie.userId}A(function(me){me.show=!0,me.types=R,me.tasks=j.list.filter(function(je){return H.includes(je.id)}),me.initialValues=P})}},Qe=function(ne,H){if(j.projectDetail){var R={};if(H.includes(Z.labeler)){var P;R.labelerIds=(P=ne.labelers)===null||P===void 0?void 0:P.map(function(Q){return Q.userId})}if(H.includes(Z.reviewer)){var ae;R.reviewerIds=(ae=ne.reviewers)===null||ae===void 0?void 0:ae.map(function(Q){return Q.userId})}A(function(Q){Q.show=!0,Q.types=H,Q.tasks=[ne],Q.initialValues=R})}},ht=function(ne,H){A(function(R){R.show=!0,R.types=[Z.reassign],R.tasks=[ne],R.reassignTarget=H})},Et=function(){A(N)},gt=function(){var ye=d()(t()().mark(function ne(H){var R,P,ae,Q,ie;return t()().wrap(function(je){for(;;)switch(je.prev=je.next){case 0:if(R=H.keyWords,P=R===void 0?"":R,ae=[],Q=U.tasks,ie=U.types,Q.forEach(function(Ce){var Se=[];ie.includes(Z.labelLeader)&&Se.push(Ce.labelLeader),ie.includes(Z.reviewLeader)&&Se.push(Ce.reviewLeader),ie.includes(Z.labeler)&&Se.push.apply(Se,s()(Ce.labelers)),ie.includes(Z.reviewer)&&Se.push.apply(Se,s()(Ce.reviewers)),Se.forEach(function(We){We&&!ae.find(function(re){return We.userId===re.id})&&ae.push({id:We.userId,name:We.userName})})}),!P){je.next=8;break}return je.next=7,(0,h.Qm)({name:P});case 7:ae=je.sent.userList.map(function(Ce){return{name:Ce.name,id:Ce.id}});case 8:return je.abrupt("return",ae.map(function(Ce){return{label:Ce.name,value:Ce.id}}));case 9:case"end":return je.stop()}},ne)}));return function(H){return ye.apply(this,arguments)}}(),Ht=function(){var ye=d()(t()().mark(function ne(H){var R,P,ae,Q,ie,me;return t()().wrap(function(Ce){for(;;)switch(Ce.prev=Ce.next){case 0:if(R=U.initialValues,!(U.types.includes(Z.labelLeader)||U.types.includes(Z.reviewLeader))){Ce.next=16;break}if(!(H.labelLeaderId!==R.labelLeaderId||H.reviewLeaderId!==R.reviewLeaderId)){Ce.next=14;break}return Ce.prev=3,Ce.next=6,(0,h.nu)({projectId:((P=j.projectDetail)===null||P===void 0?void 0:P.id)||"",taskIds:U.tasks.map(function(Se){return Se.id}),labelLeaderId:H.labelLeaderId!==R.labelLeaderId?H.labelLeaderId:void 0,reviewLeaderId:H.reviewLeaderId!==R.reviewLeaderId?H.reviewLeaderId:void 0});case 6:pe(),w.ZP.success((0,S._w)("proj.assignModalFinish.assignLeader")),Ce.next=14;break;case 10:return Ce.prev=10,Ce.t0=Ce.catch(3),console.error(Ce.t0),Ce.abrupt("return",Promise.resolve(!1));case 14:Ce.next=43;break;case 16:if(Q=U.tasks[0],!(U.types.includes(Z.labeler)||U.types.includes(Z.reviewer))){Ce.next=31;break}return Ce.prev=18,Ce.next=21,(0,h.zb)(Q.id,H);case 21:pe(),w.ZP.success((0,S._w)("proj.assignModalFinish.assignWorker")),Ce.next=29;break;case 25:return Ce.prev=25,Ce.t1=Ce.catch(18),console.error(Ce.t1),Ce.abrupt("return",Promise.resolve(!1));case 29:Ce.next=43;break;case 31:if(!(U.types.includes(Z.reassign)&&H.reassigner!==((ae=U.reassignTarget)===null||ae===void 0?void 0:ae.userId))){Ce.next=43;break}return Ce.prev=32,Ce.next=35,(0,h.xv)(Q.id,{oldWorkerId:((ie=U.reassignTarget)===null||ie===void 0?void 0:ie.userId)||"",newWorkerId:H.reassigner||"",role:((me=U.reassignTarget)===null||me===void 0?void 0:me.role)||""});case 35:pe(),w.ZP.success((0,S._w)("proj.assignModalFinish.reassignWorker")),Ce.next=43;break;case 39:return Ce.prev=39,Ce.t2=Ce.catch(32),console.error(Ce.t2),Ce.abrupt("return",Promise.resolve(!1));case 43:return Et(),Ce.abrupt("return",Promise.resolve(!1));case 45:case"end":return Ce.stop()}},ne,null,[[3,10],[18,25],[32,39]])}));return function(H){return ye.apply(this,arguments)}}(),$e=function(){var ye=d()(t()().mark(function ne(H){return t()().wrap(function(P){for(;;)switch(P.prev=P.next){case 0:return P.prev=0,P.next=3,(0,h.vo)(H.id);case 3:pe(),w.ZP.success((0,S._w)("proj.assignModalFinish.restarTask")),P.next=11;break;case 7:return P.prev=7,P.t0=P.catch(0),console.error(P.t0),P.abrupt("return",Promise.resolve(!1));case 11:case"end":return P.stop()}},ne,null,[[0,7]])}));return function(H){return ye.apply(this,arguments)}}(),Xe=function(){var ye=d()(t()().mark(function ne(H){return t()().wrap(function(P){for(;;)switch(P.prev=P.next){case 0:return P.prev=0,P.next=3,(0,h.$x)(H.id);case 3:pe(),w.ZP.success((0,S._w)("proj.assignModalFinish.commiTask")),P.next=11;break;case 7:return P.prev=7,P.t0=P.catch(0),console.error(P.t0),P.abrupt("return",Promise.resolve(!1));case 11:case"end":return P.stop()}},ne,null,[[0,7]])}));return function(H){return ye.apply(this,arguments)}}(),rt=function(){var ye=d()(t()().mark(function ne(H,R){return t()().wrap(function(ae){for(;;)switch(ae.prev=ae.next){case 0:return ae.prev=0,ae.next=3,(0,h.d5)(H.id,{action:R});case 3:w.ZP.success((0,S._w)("proj.assignModalFinish.changeTaskStatus")),pe(),ae.next=11;break;case 7:return ae.prev=7,ae.t0=ae.catch(0),console.error(ae.t0),ae.abrupt("return",Promise.reject(!1));case 11:case"end":return ae.stop()}},ne,null,[[0,7]])}));return function(H,R){return ye.apply(this,arguments)}}(),Ke=function(ne){q(function(H){Object.assign(H,{page:1,pageSize:z},ne)}),be(),pe()};return{pageData:j,pageState:Y,loading:fe,onPageChange:Te,onSelectChange:Ge,onInitPageState:Ke,taskDetailModalIndex:W,setTaskDetailModalIndex:x,assignModal:U,assignLeaders:qe,assignWorker:Qe,reassignWorker:ht,onCloseAssignModal:Et,userLintRequest:gt,assignModalFinish:Ht,restartTask:$e,commitReviewTask:Xe,onChangeTaskResult:rt}}},54518:function(b,y,e){"use strict";e.d(y,{I:function(){return L}});var a=e(24454),t=e.n(a),o=e(56592),s=e.n(o),n=e(63900),d=e.n(n),l=e(88205),c=e.n(l),m=e(97375),g=e(65246),M=e(7986),h=e(91290),S=e(84045),w=e(53357),C=e(35459),z=e(39378),Z=e.n(z),N=20,L="proj.editModal.setWorkflowNow",$={show:!1,current:0,initialValues:{basics:{},settings:{},workflowInitNow:[],hadBatchSize:!1,hadReviewer:!1}};y.Z=function(){var D=(0,m.useModel)("user"),T=D.user,j=(0,m.useModel)("Project.auth"),G=j.getUserRoles,k=(0,g.x)({list:[],total:0}),te=c()(k,2),Y=te[0],q=te[1],le=(0,g.x)({page:1,pageSize:N}),X=c()(le,2),W=X[0],x=X[1],O=(0,g.x)($),_=c()(O,2),U=_[0],A=_[1],V=(0,M.Z)(function($e,Xe){return q(function(rt){rt.list=[]}),(0,h.eK)({pageNum:$e||W.page,pageSize:Xe||W.pageSize})},{manual:!0,debounceWait:100,refreshDeps:[W.page,W.pageSize],onSuccess:function(Xe){var rt=Xe.projectList,Ke=Xe.total;q({list:rt.map(function(ye){return d()(d()({},ye),{},{userRoles:G(ye)})}),total:Ke})},onError:function(){}}),fe=V.loading,pe=V.run,ge=function(Xe,rt){x(function(Ke){Ke.page=rt===Ke.pageSize?Xe:1,Ke.pageSize=rt}),pe(Xe,rt)},be=function(){A(function(Xe){Xe.show=!0})},Te=function(Xe,rt){A(function(Ke){var ye=Xe.name,ne=Xe.description,H=Xe.categories,R=Xe.datasets,P=Xe.preLabel,ae=Xe.managers,Q=Xe.batchSize,ie=Xe.reviewTimes,me=Xe.status;Ke.show=!0,Ke.targetProject=Xe,Ke.current=rt?1:0,Ke.initialValues.basics={name:ye,description:ne,categories:H,preLabel:P,datasetIds:R.map(function(je){return je.id}),managerIds:ae.map(function(je){return je.id})},Ke.initialValues.settings=me!==C.tz.Waiting?{batchSize:Q>0?Q:void 0}:{},Ke.initialValues.workflowInitNow=[(0,w._w)(L)],Ke.initialValues.hadBatchSize=Q>0,Ke.initialValues.hadReviewer=ie>0})},Ge=function(){A($)},qe=function(Xe){A(function(rt){Xe===0&&(rt.current=0)})},Qe=function(Xe){return A(function(rt){var Ke;rt.disableInitProject=!((Ke=Xe.basics.managerIds)!==null&&Ke!==void 0&&Ke.includes(T.userId)),rt.current=1}),Promise.resolve(!1)},ht=function(){var $e=s()(t()().mark(function Xe(rt){var Ke,ye,ne,H,R,P,ae,Q;return t()().wrap(function(me){for(;;)switch(me.prev=me.next){case 0:if(ne=!1,H=(Ke=U.targetProject)===null||Ke===void 0?void 0:Ke.id,H){me.next=18;break}return me.prev=3,me.next=6,(0,h.o9)(rt.basics);case 6:R=me.sent,H=R.id,A(function(je){je.targetProject=R}),ne=!0,S.ZP.success((0,w._w)("proj.projectModalFinish.new")),me.next=16;break;case 13:me.prev=13,me.t0=me.catch(3),console.error(me.t0);case 16:me.next=30;break;case 18:if(P=U.initialValues.basics,ae=P.description,Q=P.managerIds,!(rt.basics.description!==ae||!(0,z.isEqual)(rt.basics.managerIds,Q))){me.next=30;break}return me.prev=20,me.next=23,(0,h.NV)(H,rt.basics);case 23:ne=!0,S.ZP.success((0,w._w)("proj.projectModalFinish.edit")),me.next=30;break;case 27:me.prev=27,me.t1=me.catch(20),console.error(me.t1);case 30:if(!((!U.targetProject||((ye=U.targetProject)===null||ye===void 0?void 0:ye.status)===C.tz.Waiting)&&rt.workflowInitNow&&rt.workflowInitNow.length)){me.next=41;break}return me.prev=31,me.next=34,(0,h.mN)(H,{batchSize:rt.hadBatchSize?rt.settings.batchSize:0,labelTimes:1,reviewTimes:rt.hadReviewer?1:0});case 34:ne=!0,S.ZP.success((0,w._w)("proj.projectModalFinish.init")),me.next=41;break;case 38:me.prev=38,me.t2=me.catch(31),console.error(me.t2);case 41:return ne&&pe(),Ge(),me.abrupt("return",Promise.resolve(!1));case 44:case"end":return me.stop()}},Xe,null,[[3,13],[20,27],[31,38]])}));return function(rt){return $e.apply(this,arguments)}}(),Et=function(){var $e=s()(t()().mark(function Xe(rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.prev=0,ne.next=3,(0,h.lw)(rt.id,{action:Ke});case 3:S.ZP.success((0,w._w)("proj.projectModalFinish.change")),pe(),ne.next=11;break;case 7:return ne.prev=7,ne.t0=ne.catch(0),console.error(ne.t0),ne.abrupt("return",Promise.reject(!1));case 11:case"end":return ne.stop()}},Xe,null,[[0,7]])}));return function(rt,Ke){return $e.apply(this,arguments)}}(),gt=function(){var $e=s()(t()().mark(function Xe(rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.prev=0,ne.next=3,(0,h.Cd)(rt,{labelName:Ke==null?void 0:Ke.labelName});case 3:S.ZP.success((0,w._w)("proj.exportModal.submitSuccess",{name:Ke==null?void 0:Ke.labelName})),pe(),ne.next=10;break;case 7:ne.prev=7,ne.t0=ne.catch(0),console.error(ne.t0);case 10:case"end":return ne.stop()}},Xe,null,[[0,7]])}));return function(rt,Ke){return $e.apply(this,arguments)}}(),Ht=function(Xe){x(function(rt){Object.assign(rt,{page:1,pageSize:N},Xe)}),pe()};return{pageData:Y,pageState:W,loading:fe,onPageChange:ge,onInitPageState:Ht,projectModal:U,onNewProject:be,onEditProject:Te,closeProjectModal:Ge,onProjectModalCurrentChange:qe,projectModalNext:Qe,projectModalFinish:ht,onChangeProjectResult:Et,onExportLabelProject:gt}}},93059:function(b,y,e){"use strict";e.d(y,{D:function(){return T}});var a=e(63900),t=e.n(a),o=e(24454),s=e.n(o),n=e(56592),d=e.n(n),l=e(34485),c=e.n(l),m=e(88205),g=e.n(m),M=e(65246),h=e(7986),S=e(91290),w=e(35459),C=e(58757),z=e(84045),Z=e(88662),N=e(97375),L=e(23707),$=e(53357),D=100,T={Init:0,More:1};y.Z=function(){var j=(0,N.useModel)("user"),G=j.user,k=(0,N.useModel)("global"),te=k.setLoading,Y=(0,M.x)({taskRoles:[],categoryList:[],list:[],curIndex:-1,page:1,pageSize:D,total:0,editorMode:Z.je.View}),q=g()(Y,2),le=q[0],X=q[1],W=(0,M.x)({status:w.j$.Labeling,taskStatus:w.gZ.Working}),x=g()(W,2),O=x[0],_=x[1],U=(0,C.useMemo)(function(){return(0,L.BQ)("projectId")||""},[window.location.search]),A=(0,C.useMemo)(function(){return(0,L.BQ)("taskId")||""},[window.location.search]),V=(0,C.useMemo)(function(){var je;return(je=le.taskRoles)===null||je===void 0?void 0:je.find(function(Ce){return Ce.id===O.roleId})},[le.taskRoles,O.roleId]),fe=(0,C.useMemo)(function(){return V&&G.userId===(V==null?void 0:V.userId)?[V.role]:[]},[G.userId,V]),pe=(0,C.useMemo)(function(){var je;return((je=le.list)===null||je===void 0?void 0:je.map(function(Ce){var Se=[],We="";return O.status===w.j$.Labeling&&!Ce.labeled?Ce.defaultLabels&&Ce.defaultLabels.annotations&&Se.push.apply(Se,c()(Ce.defaultLabels.annotations)):Ce.labels.forEach(function(re){We=re.id,Se.push.apply(Se,c()(re.annotations))}),{id:Ce.id,url:Ce.url,urlFullRes:Ce.urlFullRes,labelId:We,objects:Se}}))||[]},[le.list,O.status]),ge=function(){var je=d()(s()().mark(function Ce(Se,We){var re,se,J,de;return s()().wrap(function(ce){for(;;)switch(ce.prev=ce.next){case 0:if(!le.loadingImagesType){ce.next=2;break}return ce.abrupt("return",Promise.reject(null));case 2:return X(function(Ne){Ne.loadingImagesType=Se,Se===T.Init&&(Ne.list=[])}),ce.prev=3,ce.next=6,(0,S.zO)((0,L.BQ)("taskId")||"",{status:We.status||O.status,roleId:We.roleId||O.roleId,pageNum:We.page,pageSize:le.pageSize});case 6:re=ce.sent,se=re.imageList,J=re.total,de=re.pageNum,X(function(Ne){Ne.list=Ne.list.concat(se),Ne.page=de,Ne.total=J,Ne.loadingImagesType=void 0}),ce.next=17;break;case 13:return ce.prev=13,ce.t0=ce.catch(3),X(function(Ne){Ne.loadingImagesType=void 0}),ce.abrupt("return",Promise.reject(ce.t0));case 17:case"end":return ce.stop()}},Ce,null,[[3,13]])}));return function(Se,We){return je.apply(this,arguments)}}(),be=(0,h.Z)(function(){return Promise.all([(0,S.Cb)((0,L.BQ)("taskId")||""),(0,S.Iu)((0,L.BQ)("taskId")||"")])},{manual:!0,debounceWait:60,onSuccess:function(Ce){var Se=g()(Ce,2),We=Se[0],re=Se[1];X(function(se){se.categoryList=re.categoryList,se.taskRoles=We.roleList}),_(function(se){We.roleList.length&&(!se.roleId||!We.roleList.find(function(J){return J.id===se.roleId}))&&(se.roleId=We.roleList[0].id)})},onError:function(){}}),Te=be.loading,Ge=be.run,qe=function(){var Ce=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Promise.all([Ge(),ge(T.Init,t()(t()({},Ce),{},{page:1}))])},Qe=function(){var je=d()(s()().mark(function Ce(){return s()().wrap(function(We){for(;;)switch(We.prev=We.next){case 0:if(!(le.list.length0&&(re.curIndex=re.curIndex-1)}),We.abrupt("return",Promise.resolve());case 2:case"end":return We.stop()}},Ce)}));return function(){return je.apply(this,arguments)}}(),$e=function(){var je=d()(s()().mark(function Ce(){return s()().wrap(function(We){for(;;)switch(We.prev=We.next){case 0:if(!(le.curIndex=0;return{pageData:le,pageState:O,loading:Te||le.loadingImagesType===T.Init,loadPageData:qe,loadMore:Qe,onInitPageState:Q,projectId:U,taskId:A,curRole:V,userRoles:fe,tabItems:ie,labelImages:pe,isEditorVisible:me,onStatusTabChange:ht,onRoleChange:Et,clickItem:gt,onExitEditor:ne,onPrevImage:Ht,onNextImage:$e,onLabelSave:H,onReviewResult:R,onReviewAccept:P,onReviewReject:ae,onEnterEdit:Xe,onStartLabel:rt,onStartRework:Ke,onStartReview:ye}}},91290:function(b,y,e){"use strict";e.d(y,{$x:function(){return fe},Cb:function(){return ge},Cd:function(){return $},Iu:function(){return Te},J9:function(){return T},Jg:function(){return gt},NT:function(){return g},NV:function(){return z},Qm:function(){return G},ZJ:function(){return te},d5:function(){return A},eK:function(){return c},lw:function(){return N},mN:function(){return w},nQ:function(){return ht},nu:function(){return q},o9:function(){return h},vo:function(){return _},xv:function(){return x},zO:function(){return qe},zb:function(){return X}});var a=e(24454),t=e.n(a),o=e(63900),s=e.n(o),n=e(56592),d=e.n(n),l=e(97375);function c($e,Xe){return m.apply(this,arguments)}function m(){return m=d()(t()().mark(function $e(Xe,rt){return t()().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",(0,l.request)("/api/v1/label_projects",s()({method:"GET",params:Xe},rt||{})));case 1:case"end":return ye.stop()}},$e)})),m.apply(this,arguments)}function g($e,Xe){return M.apply(this,arguments)}function M(){return M=d()(t()().mark(function $e(Xe,rt){return t()().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",(0,l.request)("/api/v1/label_projects/".concat(Xe),s()({method:"GET"},rt||{})));case 1:case"end":return ye.stop()}},$e)})),M.apply(this,arguments)}function h($e,Xe){return S.apply(this,arguments)}function S(){return S=d()(t()().mark(function $e(Xe,rt){return t()().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",(0,l.request)("/api/v1/label_projects",s()({method:"POST",data:s()({},Xe)},rt||{})));case 1:case"end":return ye.stop()}},$e)})),S.apply(this,arguments)}function w($e,Xe,rt){return C.apply(this,arguments)}function C(){return C=d()(t()().mark(function $e(Xe,rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.abrupt("return",(0,l.request)("/api/v1/label_project_configs/".concat(Xe),s()({method:"POST",data:s()({},rt)},Ke||{})));case 1:case"end":return ne.stop()}},$e)})),C.apply(this,arguments)}function z($e,Xe,rt){return Z.apply(this,arguments)}function Z(){return Z=d()(t()().mark(function $e(Xe,rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.abrupt("return",(0,l.request)("/api/v1/label_projects/".concat(Xe),s()({method:"POST",data:s()({},rt)},Ke||{})));case 1:case"end":return ne.stop()}},$e)})),Z.apply(this,arguments)}function N($e,Xe,rt){return L.apply(this,arguments)}function L(){return L=d()(t()().mark(function $e(Xe,rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.abrupt("return",(0,l.request)("/api/v1/label_project_qa/".concat(Xe),s()({method:"POST",data:s()({},rt)},Ke||{})));case 1:case"end":return ne.stop()}},$e)})),L.apply(this,arguments)}function $($e,Xe,rt){return D.apply(this,arguments)}function D(){return D=d()(t()().mark(function $e(Xe,rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.abrupt("return",(0,l.request)("/api/v1/label_project_export/".concat(Xe),s()({method:"POST",data:s()({},rt)},Ke||{})));case 1:case"end":return ne.stop()}},$e)})),D.apply(this,arguments)}function T($e,Xe){return j.apply(this,arguments)}function j(){return j=d()(t()().mark(function $e(Xe,rt){return t()().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",(0,l.request)("/api/v1/dataset_name_lints",s()({method:"GET",params:Xe},rt||{})));case 1:case"end":return ye.stop()}},$e)})),j.apply(this,arguments)}function G($e,Xe){return k.apply(this,arguments)}function k(){return k=d()(t()().mark(function $e(Xe,rt){return t()().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",(0,l.request)("/api/v1/user_name_lints",s()({method:"GET",params:Xe},rt||{})));case 1:case"end":return ye.stop()}},$e)})),k.apply(this,arguments)}function te($e,Xe){return Y.apply(this,arguments)}function Y(){return Y=d()(t()().mark(function $e(Xe,rt){return t()().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",(0,l.request)("/api/v1/label_tasks",s()({method:"GET",params:Xe},rt||{})));case 1:case"end":return ye.stop()}},$e)})),Y.apply(this,arguments)}function q($e,Xe){return le.apply(this,arguments)}function le(){return le=d()(t()().mark(function $e(Xe,rt){return t()().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",(0,l.request)("/api/v1/label_task_leaders",s()({method:"POST",data:s()({},Xe)},rt||{})));case 1:case"end":return ye.stop()}},$e)})),le.apply(this,arguments)}function X($e,Xe,rt){return W.apply(this,arguments)}function W(){return W=d()(t()().mark(function $e(Xe,rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.abrupt("return",(0,l.request)("/api/v1/label_task_workers/".concat(Xe),s()({method:"POST",data:s()({},rt)},Ke||{})));case 1:case"end":return ne.stop()}},$e)})),W.apply(this,arguments)}function x($e,Xe,rt){return O.apply(this,arguments)}function O(){return O=d()(t()().mark(function $e(Xe,rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.abrupt("return",(0,l.request)("/api/v1/label_task_reassign/".concat(Xe),s()({method:"POST",data:s()({},rt)},Ke||{})));case 1:case"end":return ne.stop()}},$e)})),O.apply(this,arguments)}function _($e,Xe){return U.apply(this,arguments)}function U(){return U=d()(t()().mark(function $e(Xe,rt){return t()().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",(0,l.request)("/api/v1/label_task_restart/".concat(Xe),s()({method:"POST"},rt||{})));case 1:case"end":return ye.stop()}},$e)})),U.apply(this,arguments)}function A($e,Xe,rt){return V.apply(this,arguments)}function V(){return V=d()(t()().mark(function $e(Xe,rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.abrupt("return",(0,l.request)("/api/v1/label_task_qa/".concat(Xe),s()({method:"POST",data:s()({},rt)},Ke||{})));case 1:case"end":return ne.stop()}},$e)})),V.apply(this,arguments)}function fe($e,Xe){return pe.apply(this,arguments)}function pe(){return pe=d()(t()().mark(function $e(Xe,rt){return t()().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",(0,l.request)("/api/v1/label_task_review_commit/".concat(Xe),s()({method:"POST"},rt||{})));case 1:case"end":return ye.stop()}},$e)})),pe.apply(this,arguments)}function ge($e,Xe){return be.apply(this,arguments)}function be(){return be=d()(t()().mark(function $e(Xe,rt){return t()().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",(0,l.request)("/api/v1/label_task_roles/".concat(Xe),s()({method:"GET"},rt||{})));case 1:case"end":return ye.stop()}},$e)})),be.apply(this,arguments)}function Te($e,Xe){return Ge.apply(this,arguments)}function Ge(){return Ge=d()(t()().mark(function $e(Xe,rt){return t()().wrap(function(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",(0,l.request)("/api/v1/label_task_configs/".concat(Xe),s()({method:"GET"},rt||{})));case 1:case"end":return ye.stop()}},$e)})),Ge.apply(this,arguments)}function qe($e,Xe,rt){return Qe.apply(this,arguments)}function Qe(){return Qe=d()(t()().mark(function $e(Xe,rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.abrupt("return",(0,l.request)("/api/v1/label_task_images/".concat(Xe),s()({method:"GET",params:rt},Ke||{})));case 1:case"end":return ne.stop()}},$e)})),Qe.apply(this,arguments)}function ht($e,Xe,rt){return Et.apply(this,arguments)}function Et(){return Et=d()(t()().mark(function $e(Xe,rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.abrupt("return",(0,l.request)("/api/v1/label_task_image_labels/".concat(Xe),s()({method:"POST",data:s()({},rt)},Ke||{hideCodeErrorMsg:!0})));case 1:case"end":return ne.stop()}},$e)})),Et.apply(this,arguments)}function gt($e,Xe,rt){return Ht.apply(this,arguments)}function Ht(){return Ht=d()(t()().mark(function $e(Xe,rt,Ke){return t()().wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:return ne.abrupt("return",(0,l.request)("/api/v1/label_task_image_reviews/".concat(Xe),s()({method:"POST",data:s()({},rt)},Ke||{hideCodeErrorMsg:!0})));case 1:case"end":return ne.stop()}},$e)})),Ht.apply(this,arguments)}},74595:function(b,y,e){"use strict";e.d(y,{B8:function(){return g},JC:function(){return h},WR:function(){return M},i0:function(){return c},iE:function(){return m}});var a=e(63900),t=e.n(a),o=e(34485),s=e.n(o),n=e(76180),d=e(39378),l=e.n(d),c=function(w){var C=0;return(0,d.includes)(w,"Classification")&&(C=1),(0,d.includes)(w,"Detection")&&(C=2),(0,d.includes)(w,"Segmentation")&&(C=3),(0,d.includes)(w,"Matting")&&(C=4),(0,d.includes)(w,"KeyPoints")&&(C=5),e(14677)("./card_cover_".concat(C,".png"))},m=function(w,C,z){if(!w||!C||z)return{colorAplha:n.iP[0],strokeDash:n.JQ[0],lineWidth:n.oM[0]};var Z=C.indexOf(w);return{colorAplha:n.iP[Z]||n.iP[0],strokeDash:n.JQ[Z]||n.JQ[0],lineWidth:n.oM[Z]||n.oM[0]}},g=function(w,C){var z=[],Z=[],N=w.filter(function(L){return n.EX.includes(L)});return C===n.JJ.Detection?(z=[n.zY.showBoxText],Z=z):C===n.JJ.Segmentation?(z=[n.zY.showSegFilling,n.zY.showSegContour],Z=z):C===n.JJ.Matting?z=[n.zY.showMattingColorFill]:C===n.JJ.KeyPoints&&(z=[n.zY.showKeyPointsLine,n.zY.showKeyPointsBox],Z=z),[[].concat(s()(n.EX),s()(z)),[].concat(s()(N),s()(Z))]},M=function(w,C,z){var Z=[];return z===n.JJ.Matting&&Z.push({id:"origin",name:"Origin image",source:n.$j.gt,comparePrecisions:[],confidenceRange:[0,1]}),C.length&&C.forEach(function(N){var L=w.find(function($){return $.id===N});L&&Z.push(t()({},L))}),Z},h=function(w,C,z){var Z=[];return C.length?(w.forEach(function(N){z===n.JJ.Matting&&Z.push(t()({},N)),Z.push.apply(Z,s()(new Array(C.length).fill({}).map(function(L,$){var D=t()({},N);return D.curLabelId=C[$],D})))}),Z):w}},17410:function(b,y,e){"use strict";e.d(y,{v_:function(){return Ar},yj:function(){return Nr},Uu:function(){return na},ru:function(){return br},Zo:function(){return pa},QD:function(){return hr},Yq:function(){return rr},Ze:function(){return In},gr:function(){return Pn},jB:function(){return Gr},HE:function(){return cr},ft:function(){return Ur},GI:function(){return Kr},t:function(){return ha},Fv:function(){return sa},vL:function(){return pr},TR:function(){return Ea},VC:function(){return Fn},ef:function(){return Wn},Xn:function(){return Zr},oP:function(){return Zn}});var a=e(2657),t=e.n(a),o=e(58757),s=Object.defineProperty,n=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,c=(Pt,an,pn)=>an in Pt?s(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,m=(Pt,an)=>{for(var pn in an||(an={}))d.call(an,pn)&&c(Pt,pn,an[pn]);if(n)for(var pn of n(an))l.call(an,pn)&&c(Pt,pn,an[pn]);return Pt};const g=Pt=>o.createElement("svg",m({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",height:"1em",width:"1em"},Pt),o.createElement("path",{d:"M3 11h8V3H3v8zm2-6h4v4H5V5zm8-2v8h8V3h-8zm6 6h-4V5h4v4zM3 21h8v-8H3v8zm2-6h4v4H5v-4zm13-2h-2v3h-3v2h3v3h2v-3h3v-2h-3z"}));var M="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgaGVpZ2h0PSIxZW0iIHdpZHRoPSIxZW0iPjxwYXRoIGQ9Ik0zIDExaDhWM0gzdjh6bTItNmg0djRINVY1em04LTJ2OGg4VjNoLTh6bTYgNmgtNFY1aDR2NHpNMyAyMWg4di04SDN2OHptMi02aDR2NEg1di00em0xMy0yaC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zeiIvPjwvc3ZnPg==",h=Object.defineProperty,S=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable,z=(Pt,an,pn)=>an in Pt?h(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,Z=(Pt,an)=>{for(var pn in an||(an={}))w.call(an,pn)&&z(Pt,pn,an[pn]);if(S)for(var pn of S(an))C.call(an,pn)&&z(Pt,pn,an[pn]);return Pt};const N=Pt=>o.createElement("svg",Z({className:"delete_all_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16},Pt),o.createElement("path",{d:"M864 192v576h64V192c0-70.4-57.6-128-128-128H352v64h448c35.2 0 64 28.8 64 64z"}),o.createElement("path",{d:"M672 192H224c-70.4 0-128 57.6-128 128v512c0 70.4 57.6 128 128 128h448c70.4 0 128-57.6 128-128V320c0-70.4-57.6-128-128-128zm-73.235 489.51c12.445 12.445 12.445 32.81 0 45.255s-32.81 12.445-45.255 0L448 621.255l-105.51 105.51c-12.445 12.445-32.81 12.445-45.255 0s-12.445-32.81 0-45.255L402.745 576l-105.51-105.51c-12.445-12.445-12.445-32.81 0-45.255s32.81-12.445 45.255 0L448 530.745l105.51-105.51c12.445-12.445 32.81-12.445 45.255 0s12.445 32.81 0 45.255L493.255 576l105.51 105.51z"}));var L="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik04NjQgMTkydjU3Nmg2NFYxOTJjMC03MC40LTU3LjYtMTI4LTEyOC0xMjhIMzUydjY0aDQ0OGMzNS4yIDAgNjQgMjguOCA2NCA2NHoiLz48cGF0aCBkPSJNNjcyIDE5MkgyMjRjLTcwLjQgMC0xMjggNTcuNi0xMjggMTI4djUxMmMwIDcwLjQgNTcuNiAxMjggMTI4IDEyOGg0NDhjNzAuNCAwIDEyOC01Ny42IDEyOC0xMjhWMzIwYzAtNzAuNC01Ny42LTEyOC0xMjgtMTI4em0tNzMuMjM1IDQ4OS41MWMxMi40NDUgMTIuNDQ1IDEyLjQ0NSAzMi44MSAwIDQ1LjI1NXMtMzIuODEgMTIuNDQ1LTQ1LjI1NSAwTDQ0OCA2MjEuMjU1bC0xMDUuNTEgMTA1LjUxYy0xMi40NDUgMTIuNDQ1LTMyLjgxIDEyLjQ0NS00NS4yNTUgMHMtMTIuNDQ1LTMyLjgxIDAtNDUuMjU1TDQwMi43NDUgNTc2bC0xMDUuNTEtMTA1LjUxYy0xMi40NDUtMTIuNDQ1LTEyLjQ0NS0zMi44MSAwLTQ1LjI1NXMzMi44MS0xMi40NDUgNDUuMjU1IDBMNDQ4IDUzMC43NDVsMTA1LjUxLTEwNS41MWMxMi40NDUtMTIuNDQ1IDMyLjgxLTEyLjQ0NSA0NS4yNTUgMHMxMi40NDUgMzIuODEgMCA0NS4yNTVMNDkzLjI1NSA1NzZsMTA1LjUxIDEwNS41MXoiLz48L3N2Zz4=",$=Object.defineProperty,D=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable,G=(Pt,an,pn)=>an in Pt?$(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,k=(Pt,an)=>{for(var pn in an||(an={}))T.call(an,pn)&&G(Pt,pn,an[pn]);if(D)for(var pn of D(an))j.call(an,pn)&&G(Pt,pn,an[pn]);return Pt};const te=Pt=>o.createElement("svg",k({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},Pt),o.createElement("defs",null,o.createElement("style",null,".magic_svg__cls-1{fill:#fff}")),o.createElement("path",{className:"magic_svg__cls-1",d:"M26.08 18.47V16.6c0-.58.27-1.19 1-1.25s1.05.45 1.06 1.29v1.83h1.92c.76 0 1.25.46 1.19 1.08a1 1 0 0 1-1.18 1h-1.91v1.74c0 .91-.39 1.41-1.06 1.39s-1-.49-1-1.42v-1.71h-1.91c-.71 0-1.21-.29-1.21-1s.5-1 1.21-1ZM12.81 6.47h1.59a1 1 0 0 1 1 1 1 1 0 0 1-1 1.07h-1.58v1.5c0 .68-.38 1.11-1.07 1.1a1 1 0 0 1-1-1.08V8.54H9.29c-.68 0-1.13-.36-1.12-1s.46-1 1.14-1h1.44V5.01a1 1 0 1 1 2.06 0c.02.38 0 .87 0 1.46ZM19.93 24.67c.11-1.56.33-2 1.05-2s1 .44 1.12 2c.8.17 2.09-.2 2 1.22-.07 1.15-1.14.89-2 .95-.18.8.22 2.11-1.2 2-1.18-.07-.89-1.19-1-2-.84-.09-1.91.21-2-1.06-.07-.7.39-.94 2.03-1.11ZM30.2 6l-2.51-2.49a2.15 2.15 0 0 0-3.06 0L3.27 24.92a2.2 2.2 0 0 0 0 3.08l2.51 2.51a2.17 2.17 0 0 0 3.06 0L30.2 9.09a2.19 2.19 0 0 0 0-3.09ZM29 8.47l-4.39 4.39a.94.94 0 0 1-1.35 0l-2.28-2.28a1 1 0 0 1 0-1.36l4.38-4.39a1 1 0 0 1 1.36 0L29 7.11a1 1 0 0 1 0 1.36Z"}));var Y="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmZ9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjYuMDggMTguNDdWMTYuNmMwLS41OC4yNy0xLjE5IDEtMS4yNXMxLjA1LjQ1IDEuMDYgMS4yOXYxLjgzaDEuOTJjLjc2IDAgMS4yNS40NiAxLjE5IDEuMDhhMSAxIDAgMCAxLTEuMTggMWgtMS45MXYxLjc0YzAgLjkxLS4zOSAxLjQxLTEuMDYgMS4zOXMtMS0uNDktMS0xLjQydi0xLjcxaC0xLjkxYy0uNzEgMC0xLjIxLS4yOS0xLjIxLTFzLjUtMSAxLjIxLTFaTTEyLjgxIDYuNDdoMS41OWExIDEgMCAwIDEgMSAxIDEgMSAwIDAgMS0xIDEuMDdoLTEuNTh2MS41YzAgLjY4LS4zOCAxLjExLTEuMDcgMS4xYTEgMSAwIDAgMS0xLTEuMDhWOC41NEg5LjI5Yy0uNjggMC0xLjEzLS4zNi0xLjEyLTFzLjQ2LTEgMS4xNC0xaDEuNDRWNS4wMWExIDEgMCAxIDEgMi4wNiAwYy4wMi4zOCAwIC44NyAwIDEuNDZaTTE5LjkzIDI0LjY3Yy4xMS0xLjU2LjMzLTIgMS4wNS0yczEgLjQ0IDEuMTIgMmMuOC4xNyAyLjA5LS4yIDIgMS4yMi0uMDcgMS4xNS0xLjE0Ljg5LTIgLjk1LS4xOC44LjIyIDIuMTEtMS4yIDItMS4xOC0uMDctLjg5LTEuMTktMS0yLS44NC0uMDktMS45MS4yMS0yLTEuMDYtLjA3LS43LjM5LS45NCAyLjAzLTEuMTFaTTMwLjIgNmwtMi41MS0yLjQ5YTIuMTUgMi4xNSAwIDAgMC0zLjA2IDBMMy4yNyAyNC45MmEyLjIgMi4yIDAgMCAwIDAgMy4wOGwyLjUxIDIuNTFhMi4xNyAyLjE3IDAgMCAwIDMuMDYgMEwzMC4yIDkuMDlhMi4xOSAyLjE5IDAgMCAwIDAtMy4wOVpNMjkgOC40N2wtNC4zOSA0LjM5YS45NC45NCAwIDAgMS0xLjM1IDBsLTIuMjgtMi4yOGExIDEgMCAwIDEgMC0xLjM2bDQuMzgtNC4zOWExIDEgMCAwIDEgMS4zNiAwTDI5IDcuMTFhMSAxIDAgMCAxIDAgMS4zNloiLz48L3N2Zz4=",q=Object.defineProperty,le=Object.getOwnPropertySymbols,X=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable,x=(Pt,an,pn)=>an in Pt?q(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,O=(Pt,an)=>{for(var pn in an||(an={}))X.call(an,pn)&&x(Pt,pn,an[pn]);if(le)for(var pn of le(an))W.call(an,pn)&&x(Pt,pn,an[pn]);return Pt};const _=Pt=>o.createElement("svg",O({viewBox:"0 0 33 33",xmlns:"http://www.w3.org/2000/svg"},Pt),o.createElement("g",{clipPath:"url(#mask-ai_svg__a)"},o.createElement("path",{d:"M15.278 33H6.753c-1.77 0-2.435-.664-2.103-2.436.443-1.993.886-3.985 1.218-5.978.11-.665.443-.886 1.107-.886h16.718c.664 0 .996.332 1.107.886.443 1.993.886 3.985 1.218 5.978.332 1.772-.222 2.436-2.104 2.436h-8.636ZM15.39 20.6H7.306c-.996 0-1.107-.11-1.107-1.218v-1.66c0-1.218.554-1.772 1.882-1.772h3.432c.665 0 .997-.221.886-.886V5.432c0-1.66.886-2.99 2.325-3.321 1.993-.554 3.764.996 3.764 3.21v9.3c0 1.44 0 1.329 1.33 1.329h3.21c1.107 0 1.66.554 1.66 1.66v1.994c0 .775-.332.996-.996.996H15.39Z"})),o.createElement("path",{d:"M26.928 11.296h-3.492l-.6 1.704h-1.428l2.988-8.352h1.584L28.968 13h-1.44l-.6-1.704Zm-.384-1.116-1.356-3.876-1.368 3.876h2.724Zm5.091-5.52V13h-1.368V4.66h1.368Z"}),o.createElement("defs",null,o.createElement("clipPath",{id:"mask-ai_svg__a"},o.createElement("path",{transform:"translate(0 2)",d:"M0 0h31v31H0z"}))));var U="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzMgMzMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTUuMjc4IDMzSDYuNzUzYy0xLjc3IDAtMi40MzUtLjY2NC0yLjEwMy0yLjQzNi40NDMtMS45OTMuODg2LTMuOTg1IDEuMjE4LTUuOTc4LjExLS42NjUuNDQzLS44ODYgMS4xMDctLjg4NmgxNi43MThjLjY2NCAwIC45OTYuMzMyIDEuMTA3Ljg4Ni40NDMgMS45OTMuODg2IDMuOTg1IDEuMjE4IDUuOTc4LjMzMiAxLjc3Mi0uMjIyIDIuNDM2LTIuMTA0IDIuNDM2aC04LjYzNlpNMTUuMzkgMjAuNkg3LjMwNmMtLjk5NiAwLTEuMTA3LS4xMS0xLjEwNy0xLjIxOHYtMS42NmMwLTEuMjE4LjU1NC0xLjc3MiAxLjg4Mi0xLjc3MmgzLjQzMmMuNjY1IDAgLjk5Ny0uMjIxLjg4Ni0uODg2VjUuNDMyYzAtMS42Ni44ODYtMi45OSAyLjMyNS0zLjMyMSAxLjk5My0uNTU0IDMuNzY0Ljk5NiAzLjc2NCAzLjIxdjkuM2MwIDEuNDQgMCAxLjMyOSAxLjMzIDEuMzI5aDMuMjFjMS4xMDcgMCAxLjY2LjU1NCAxLjY2IDEuNjZ2MS45OTRjMCAuNzc1LS4zMzIuOTk2LS45OTYuOTk2SDE1LjM5WiIvPjwvZz48cGF0aCBkPSJNMjYuOTI4IDExLjI5NmgtMy40OTJsLS42IDEuNzA0aC0xLjQyOGwyLjk4OC04LjM1MmgxLjU4NEwyOC45NjggMTNoLTEuNDRsLS42LTEuNzA0Wm0tLjM4NC0xLjExNi0xLjM1Ni0zLjg3Ni0xLjM2OCAzLjg3NmgyLjcyNFptNS4wOTEtNS41MlYxM2gtMS4zNjhWNC42NmgxLjM2OFoiLz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMikiIGQ9Ik0wIDBoMzF2MzFIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",A=Object.defineProperty,V=Object.getOwnPropertySymbols,fe=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable,ge=(Pt,an,pn)=>an in Pt?A(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,be=(Pt,an)=>{for(var pn in an||(an={}))fe.call(an,pn)&&ge(Pt,pn,an[pn]);if(V)for(var pn of V(an))pe.call(an,pn)&&ge(Pt,pn,an[pn]);return Pt};const Te=Pt=>o.createElement("svg",be({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34 34"},Pt),o.createElement("path",{className:"mask_svg__cls-1",d:"M17.29 31.49H9.44c-1.68 0-2.24-.66-1.92-2.28.36-1.83.77-3.66 1.13-5.49a.9.9 0 0 1 1-.84h15.39a.91.91 0 0 1 1 .85c.37 1.83.78 3.65 1.13 5.48.32 1.62-.24 2.28-1.92 2.28-2.63.01-5.25 0-7.96 0ZM17.39 20.05H9.92c-1 0-1.09-.12-1.09-1.06v-1.72a1.36 1.36 0 0 1 1.44-1.46h3.51c.56 0 .74-.19.73-.74 0-2.89.05-5.78 0-8.67C14.43 3.93 16 2.94 17.38 3s2.93 1 2.87 3.48c-.07 2.84 0 5.68 0 8.52 0 .64.16.89.84.86 1.09-.05 2.19 0 3.29 0a1.4 1.4 0 0 1 1.56 1.57v1.8c0 .6-.36.89-1 .89Z"}),o.createElement("path",{style:{fill:"none"},d:"M2.89 2.83h28.35v28.35H2.89z"}));var Ge="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNCAzNCI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTcuMjkgMzEuNDlIOS40NGMtMS42OCAwLTIuMjQtLjY2LTEuOTItMi4yOC4zNi0xLjgzLjc3LTMuNjYgMS4xMy01LjQ5YS45LjkgMCAwIDEgMS0uODRoMTUuMzlhLjkxLjkxIDAgMCAxIDEgLjg1Yy4zNyAxLjgzLjc4IDMuNjUgMS4xMyA1LjQ4LjMyIDEuNjItLjI0IDIuMjgtMS45MiAyLjI4LTIuNjMuMDEtNS4yNSAwLTcuOTYgMFpNMTcuMzkgMjAuMDVIOS45MmMtMSAwLTEuMDktLjEyLTEuMDktMS4wNnYtMS43MmExLjM2IDEuMzYgMCAwIDEgMS40NC0xLjQ2aDMuNTFjLjU2IDAgLjc0LS4xOS43My0uNzQgMC0yLjg5LjA1LTUuNzggMC04LjY3QzE0LjQzIDMuOTMgMTYgMi45NCAxNy4zOCAzczIuOTMgMSAyLjg3IDMuNDhjLS4wNyAyLjg0IDAgNS42OCAwIDguNTIgMCAuNjQuMTYuODkuODQuODYgMS4wOS0uMDUgMi4xOSAwIDMuMjkgMGExLjQgMS40IDAgMCAxIDEuNTYgMS41N3YxLjhjMCAuNi0uMzYuODktMSAuODlaIi8+PHBhdGggc3R5bGU9ImZpbGw6bm9uZSIgZD0iTTIuODkgMi44M2gyOC4zNXYyOC4zNUgyLjg5eiIvPjwvc3ZnPg==",qe=Object.defineProperty,Qe=Object.getOwnPropertySymbols,ht=Object.prototype.hasOwnProperty,Et=Object.prototype.propertyIsEnumerable,gt=(Pt,an,pn)=>an in Pt?qe(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,Ht=(Pt,an)=>{for(var pn in an||(an={}))ht.call(an,pn)&>(Pt,pn,an[pn]);if(Qe)for(var pn of Qe(an))Et.call(an,pn)&>(Pt,pn,an[pn]);return Pt};const $e=Pt=>o.createElement("svg",Ht({viewBox:"0 0 35 31",xmlns:"http://www.w3.org/2000/svg"},Pt),o.createElement("g",{clipPath:"url(#polygon-ai_svg__a)"},o.createElement("path",{d:"M27.125 23.25c-.534 0-1.042.108-1.505.303l-5.444-6.17a3.854 3.854 0 0 0-.008-3.782l5.403-6.178c.477.21 1.002.327 1.554.327A3.88 3.88 0 0 0 31 3.875 3.88 3.88 0 0 0 27.125 0a3.88 3.88 0 0 0-3.653 2.583H7.528A3.88 3.88 0 0 0 3.875 0 3.88 3.88 0 0 0 0 3.875a3.88 3.88 0 0 0 2.583 3.653v15.944A3.88 3.88 0 0 0 0 27.125 3.88 3.88 0 0 0 3.875 31a3.88 3.88 0 0 0 3.653-2.583h15.944A3.88 3.88 0 0 0 27.125 31 3.88 3.88 0 0 0 31 27.125a3.88 3.88 0 0 0-3.875-3.875ZM7.528 5.167h15.944c.06.168.132.332.213.488l-5.46 6.245a3.854 3.854 0 0 0-1.433-.275 3.88 3.88 0 0 0-3.875 3.875 3.88 3.88 0 0 0 3.875 3.875c.511 0 1-.1 1.448-.282l5.471 6.202a3.937 3.937 0 0 0-.239.538H7.528a3.894 3.894 0 0 0-2.361-2.36V7.527a3.894 3.894 0 0 0 2.36-2.361Z"})),o.createElement("path",{d:"M28.928 17.296h-3.492l-.6 1.704h-1.428l2.988-8.352h1.584L30.968 19h-1.44l-.6-1.704Zm-.384-1.116-1.356-3.876-1.368 3.876h2.724Zm5.091-5.52V19h-1.368v-8.34h1.368Z"}),o.createElement("defs",null,o.createElement("clipPath",{id:"polygon-ai_svg__a"},o.createElement("path",{d:"M0 0h31v31H0z"}))));var Xe="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzUgMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjcuMTI1IDIzLjI1Yy0uNTM0IDAtMS4wNDIuMTA4LTEuNTA1LjMwM2wtNS40NDQtNi4xN2EzLjg1NCAzLjg1NCAwIDAgMC0uMDA4LTMuNzgybDUuNDAzLTYuMTc4Yy40NzcuMjEgMS4wMDIuMzI3IDEuNTU0LjMyN0EzLjg4IDMuODggMCAwIDAgMzEgMy44NzUgMy44OCAzLjg4IDAgMCAwIDI3LjEyNSAwYTMuODggMy44OCAwIDAgMC0zLjY1MyAyLjU4M0g3LjUyOEEzLjg4IDMuODggMCAwIDAgMy44NzUgMCAzLjg4IDMuODggMCAwIDAgMCAzLjg3NWEzLjg4IDMuODggMCAwIDAgMi41ODMgMy42NTN2MTUuOTQ0QTMuODggMy44OCAwIDAgMCAwIDI3LjEyNSAzLjg4IDMuODggMCAwIDAgMy44NzUgMzFhMy44OCAzLjg4IDAgMCAwIDMuNjUzLTIuNTgzaDE1Ljk0NEEzLjg4IDMuODggMCAwIDAgMjcuMTI1IDMxIDMuODggMy44OCAwIDAgMCAzMSAyNy4xMjVhMy44OCAzLjg4IDAgMCAwLTMuODc1LTMuODc1Wk03LjUyOCA1LjE2N2gxNS45NDRjLjA2LjE2OC4xMzIuMzMyLjIxMy40ODhsLTUuNDYgNi4yNDVhMy44NTQgMy44NTQgMCAwIDAtMS40MzMtLjI3NSAzLjg4IDMuODggMCAwIDAtMy44NzUgMy44NzUgMy44OCAzLjg4IDAgMCAwIDMuODc1IDMuODc1Yy41MTEgMCAxLS4xIDEuNDQ4LS4yODJsNS40NzEgNi4yMDJhMy45MzcgMy45MzcgMCAwIDAtLjIzOS41MzhINy41MjhhMy44OTQgMy44OTQgMCAwIDAtMi4zNjEtMi4zNlY3LjUyN2EzLjg5NCAzLjg5NCAwIDAgMCAyLjM2LTIuMzYxWiIvPjwvZz48cGF0aCBkPSJNMjguOTI4IDE3LjI5NmgtMy40OTJsLS42IDEuNzA0aC0xLjQyOGwyLjk4OC04LjM1MmgxLjU4NEwzMC45NjggMTloLTEuNDRsLS42LTEuNzA0Wm0tLjM4NC0xLjExNi0xLjM1Ni0zLjg3Ni0xLjM2OCAzLjg3NmgyLjcyNFptNS4wOTEtNS41MlYxOWgtMS4zNjh2LTguMzRoMS4zNjhaIi8+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBkPSJNMCAwaDMxdjMxSDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",rt=Object.defineProperty,Ke=Object.getOwnPropertySymbols,ye=Object.prototype.hasOwnProperty,ne=Object.prototype.propertyIsEnumerable,H=(Pt,an,pn)=>an in Pt?rt(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,R=(Pt,an)=>{for(var pn in an||(an={}))ye.call(an,pn)&&H(Pt,pn,an[pn]);if(Ke)for(var pn of Ke(an))ne.call(an,pn)&&H(Pt,pn,an[pn]);return Pt};const P=Pt=>o.createElement("svg",R({viewBox:"0 0 31 31",xmlns:"http://www.w3.org/2000/svg"},Pt),o.createElement("g",{clipPath:"url(#polygon_svg__a)"},o.createElement("path",{d:"M27.125 23.25c-.534 0-1.042.108-1.505.303l-5.444-6.17a3.854 3.854 0 0 0-.008-3.782l5.403-6.178c.477.21 1.002.327 1.554.327A3.88 3.88 0 0 0 31 3.875 3.88 3.88 0 0 0 27.125 0a3.88 3.88 0 0 0-3.653 2.583H7.528A3.88 3.88 0 0 0 3.875 0 3.88 3.88 0 0 0 0 3.875a3.88 3.88 0 0 0 2.583 3.653v15.944A3.88 3.88 0 0 0 0 27.125 3.88 3.88 0 0 0 3.875 31a3.88 3.88 0 0 0 3.653-2.583h15.944A3.88 3.88 0 0 0 27.125 31 3.88 3.88 0 0 0 31 27.125a3.88 3.88 0 0 0-3.875-3.875ZM7.528 5.167h15.944c.06.168.132.332.213.488l-5.46 6.245a3.854 3.854 0 0 0-1.433-.275 3.88 3.88 0 0 0-3.875 3.875 3.88 3.88 0 0 0 3.875 3.875c.511 0 1-.1 1.448-.282l5.471 6.202a3.937 3.937 0 0 0-.239.538H7.528a3.894 3.894 0 0 0-2.361-2.36V7.527a3.894 3.894 0 0 0 2.36-2.361Z"})),o.createElement("defs",null,o.createElement("clipPath",{id:"polygon_svg__a"},o.createElement("path",{d:"M0 0h31v31H0z"}))));var ae="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzEgMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjcuMTI1IDIzLjI1Yy0uNTM0IDAtMS4wNDIuMTA4LTEuNTA1LjMwM2wtNS40NDQtNi4xN2EzLjg1NCAzLjg1NCAwIDAgMC0uMDA4LTMuNzgybDUuNDAzLTYuMTc4Yy40NzcuMjEgMS4wMDIuMzI3IDEuNTU0LjMyN0EzLjg4IDMuODggMCAwIDAgMzEgMy44NzUgMy44OCAzLjg4IDAgMCAwIDI3LjEyNSAwYTMuODggMy44OCAwIDAgMC0zLjY1MyAyLjU4M0g3LjUyOEEzLjg4IDMuODggMCAwIDAgMy44NzUgMCAzLjg4IDMuODggMCAwIDAgMCAzLjg3NWEzLjg4IDMuODggMCAwIDAgMi41ODMgMy42NTN2MTUuOTQ0QTMuODggMy44OCAwIDAgMCAwIDI3LjEyNSAzLjg4IDMuODggMCAwIDAgMy44NzUgMzFhMy44OCAzLjg4IDAgMCAwIDMuNjUzLTIuNTgzaDE1Ljk0NEEzLjg4IDMuODggMCAwIDAgMjcuMTI1IDMxIDMuODggMy44OCAwIDAgMCAzMSAyNy4xMjVhMy44OCAzLjg4IDAgMCAwLTMuODc1LTMuODc1Wk03LjUyOCA1LjE2N2gxNS45NDRjLjA2LjE2OC4xMzIuMzMyLjIxMy40ODhsLTUuNDYgNi4yNDVhMy44NTQgMy44NTQgMCAwIDAtMS40MzMtLjI3NSAzLjg4IDMuODggMCAwIDAtMy44NzUgMy44NzUgMy44OCAzLjg4IDAgMCAwIDMuODc1IDMuODc1Yy41MTEgMCAxLS4xIDEuNDQ4LS4yODJsNS40NzEgNi4yMDJhMy45MzcgMy45MzcgMCAwIDAtLjIzOS41MzhINy41MjhhMy44OTQgMy44OTQgMCAwIDAtMi4zNjEtMi4zNlY3LjUyN2EzLjg5NCAzLjg5NCAwIDAgMCAyLjM2LTIuMzYxWiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGQ9Ik0wIDBoMzF2MzFIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",Q=Object.defineProperty,ie=Object.getOwnPropertySymbols,me=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable,Ce=(Pt,an,pn)=>an in Pt?Q(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,Se=(Pt,an)=>{for(var pn in an||(an={}))me.call(an,pn)&&Ce(Pt,pn,an[pn]);if(ie)for(var pn of ie(an))je.call(an,pn)&&Ce(Pt,pn,an[pn]);return Pt};const We=Pt=>o.createElement("svg",Se({viewBox:"0 0 29 29",xmlns:"http://www.w3.org/2000/svg"},Pt),o.createElement("path",{d:"M27.32 6.07a1 1 0 0 0 1-1V1.01a1 1 0 0 0-1-1.001h-4.05a1 1 0 0 0-1 1v1H6.06v-1a1 1 0 0 0-1-1H1a1 1 0 0 0-1 1v4.05a1 1 0 0 0 1 1h1V22.26H1a1 1 0 0 0-1 1v4.05a1 1 0 0 0 1 1h4.05a1 1 0 0 0 1-1v-1h16.2v1a1 1 0 0 0 1 1h4.05a1 1 0 0 0 1-1v-4.03a1 1 0 0 0-1-1h-1V6.07h1.02Zm-3 16.2h-1a1 1 0 0 0-1 1v1H6.06v-1a1 1 0 0 0-1-1h-1V6.07h1a1 1 0 0 0 1-1v-1h16.2v1a1 1 0 0 0 1 1h1l.06 16.2Z"}),o.createElement("path",{d:"M13.928 17.305h-3.492l-.6 1.704H8.408l2.988-8.352h1.584l2.988 8.352h-1.44l-.6-1.704Zm-.384-1.116-1.356-3.876-1.368 3.876h2.724Zm5.091-5.52v8.34h-1.368v-8.34h1.368Z"}));var re="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjkgMjkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI3LjMyIDYuMDdhMSAxIDAgMCAwIDEtMVYxLjAxYTEgMSAwIDAgMC0xLTEuMDAxaC00LjA1YTEgMSAwIDAgMC0xIDF2MUg2LjA2di0xYTEgMSAwIDAgMC0xLTFIMWExIDEgMCAwIDAtMSAxdjQuMDVhMSAxIDAgMCAwIDEgMWgxVjIyLjI2SDFhMSAxIDAgMCAwLTEgMXY0LjA1YTEgMSAwIDAgMCAxIDFoNC4wNWExIDEgMCAwIDAgMS0xdi0xaDE2LjJ2MWExIDEgMCAwIDAgMSAxaDQuMDVhMSAxIDAgMCAwIDEtMXYtNC4wM2ExIDEgMCAwIDAtMS0xaC0xVjYuMDdoMS4wMlptLTMgMTYuMmgtMWExIDEgMCAwIDAtMSAxdjFINi4wNnYtMWExIDEgMCAwIDAtMS0xaC0xVjYuMDdoMWExIDEgMCAwIDAgMS0xdi0xaDE2LjJ2MWExIDEgMCAwIDAgMSAxaDFsLjA2IDE2LjJaIi8+PHBhdGggZD0iTTEzLjkyOCAxNy4zMDVoLTMuNDkybC0uNiAxLjcwNEg4LjQwOGwyLjk4OC04LjM1MmgxLjU4NGwyLjk4OCA4LjM1MmgtMS40NGwtLjYtMS43MDRabS0uMzg0LTEuMTE2LTEuMzU2LTMuODc2LTEuMzY4IDMuODc2aDIuNzI0Wm01LjA5MS01LjUydjguMzRoLTEuMzY4di04LjM0aDEuMzY4WiIvPjwvc3ZnPg==",se=Object.defineProperty,J=Object.getOwnPropertySymbols,de=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable,ce=(Pt,an,pn)=>an in Pt?se(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,Ne=(Pt,an)=>{for(var pn in an||(an={}))de.call(an,pn)&&ce(Pt,pn,an[pn]);if(J)for(var pn of J(an))xe.call(an,pn)&&ce(Pt,pn,an[pn]);return Pt};const Oe=Pt=>o.createElement("svg",Ne({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},Pt),o.createElement("path",{className:"rectangle_svg__cls-1",d:"M30.17 8.91a1 1 0 0 0 1-1V3.85a1 1 0 0 0-1-1h-4.05a1 1 0 0 0-1 1v1H8.91v-1a1 1 0 0 0-1-1H3.85a1 1 0 0 0-1 1V7.9a1 1 0 0 0 1 1h1v16.2h-1a1 1 0 0 0-1 1v4.05a1 1 0 0 0 1 1H7.9a1 1 0 0 0 1-1v-1h16.2v1a1 1 0 0 0 1 1h4.05a1 1 0 0 0 1-1v-4.03a1 1 0 0 0-1-1h-1V8.91Zm-3 16.2h-1a1 1 0 0 0-1 1v1H8.91v-1a1 1 0 0 0-1-1h-1V8.91h1a1 1 0 0 0 1-1v-1h16.2v1a1 1 0 0 0 1 1h1Z"}),o.createElement("path",{className:"rectangle_svg__cls-2",fill:"none",d:"M2.83 2.83h28.35v28.35H2.83z"}));var we="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMzAuMTcgOC45MWExIDEgMCAwIDAgMS0xVjMuODVhMSAxIDAgMCAwLTEtMWgtNC4wNWExIDEgMCAwIDAtMSAxdjFIOC45MXYtMWExIDEgMCAwIDAtMS0xSDMuODVhMSAxIDAgMCAwLTEgMVY3LjlhMSAxIDAgMCAwIDEgMWgxdjE2LjJoLTFhMSAxIDAgMCAwLTEgMXY0LjA1YTEgMSAwIDAgMCAxIDFINy45YTEgMSAwIDAgMCAxLTF2LTFoMTYuMnYxYTEgMSAwIDAgMCAxIDFoNC4wNWExIDEgMCAwIDAgMS0xdi00LjAzYTEgMSAwIDAgMC0xLTFoLTFWOC45MVptLTMgMTYuMmgtMWExIDEgMCAwIDAtMSAxdjFIOC45MXYtMWExIDEgMCAwIDAtMS0xaC0xVjguOTFoMWExIDEgMCAwIDAgMS0xdi0xaDE2LjJ2MWExIDEgMCAwIDAgMSAxaDFaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBmaWxsPSJub25lIiBkPSJNMi44MyAyLjgzaDI4LjM1djI4LjM1SDIuODN6Ii8+PC9zdmc+",Re=Object.defineProperty,st=Object.getOwnPropertySymbols,tt=Object.prototype.hasOwnProperty,Ye=Object.prototype.propertyIsEnumerable,ke=(Pt,an,pn)=>an in Pt?Re(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,Be=(Pt,an)=>{for(var pn in an||(an={}))tt.call(an,pn)&&ke(Pt,pn,an[pn]);if(st)for(var pn of st(an))Ye.call(an,pn)&&ke(Pt,pn,an[pn]);return Pt};const it=Pt=>o.createElement("svg",Be({className:"redo_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16},Pt),o.createElement("path",{d:"m1017.173 430.08-477.866-307.2c-6.827-3.413-13.654-3.413-17.067 0-6.827 3.413-10.24 6.827-10.24 13.653v187.734c-341.333 10.24-508.587 337.92-512 563.2v3.413c0 6.827 6.827 13.653 17.067 13.653s17.066-6.826 17.066-17.066c3.414-51.2 228.694-279.894 477.867-290.134v187.734c0 6.826 3.413 13.653 10.24 13.653 6.827 3.413 13.653 3.413 17.067 0l477.866-341.333c3.414-3.414 6.827-10.24 6.827-13.654s-3.413-10.24-6.827-13.653z",fill:"#fff"}));var Ve="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Im0xMDE3LjE3MyA0MzAuMDgtNDc3Ljg2Ni0zMDcuMmMtNi44MjctMy40MTMtMTMuNjU0LTMuNDEzLTE3LjA2NyAwLTYuODI3IDMuNDEzLTEwLjI0IDYuODI3LTEwLjI0IDEzLjY1M3YxODcuNzM0Yy0zNDEuMzMzIDEwLjI0LTUwOC41ODcgMzM3LjkyLTUxMiA1NjMuMnYzLjQxM2MwIDYuODI3IDYuODI3IDEzLjY1MyAxNy4wNjcgMTMuNjUzczE3LjA2Ni02LjgyNiAxNy4wNjYtMTcuMDY2YzMuNDE0LTUxLjIgMjI4LjY5NC0yNzkuODk0IDQ3Ny44NjctMjkwLjEzNHYxODcuNzM0YzAgNi44MjYgMy40MTMgMTMuNjUzIDEwLjI0IDEzLjY1MyA2LjgyNyAzLjQxMyAxMy42NTMgMy40MTMgMTcuMDY3IDBsNDc3Ljg2Ni0zNDEuMzMzYzMuNDE0LTMuNDE0IDYuODI3LTEwLjI0IDYuODI3LTEzLjY1NHMtMy40MTMtMTAuMjQtNi44MjctMTMuNjUzeiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==",xt=Object.defineProperty,_t=Object.getOwnPropertySymbols,Ot=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable,Yt=(Pt,an,pn)=>an in Pt?xt(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,bt=(Pt,an)=>{for(var pn in an||(an={}))Ot.call(an,pn)&&Yt(Pt,pn,an[pn]);if(_t)for(var pn of _t(an))wt.call(an,pn)&&Yt(Pt,pn,an[pn]);return Pt};const ze=Pt=>o.createElement("svg",bt({className:"repeat_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16},Pt),o.createElement("path",{d:"M0 448c0 35.4 28.6 64 64 64s64-28.6 64-64c0-106 86-192 192-192h320v64c0 25.8 15.6 49.2 39.6 59.2s51.4 4.4 69.8-13.8l128-128c25-25 25-65.6 0-90.6l-128-128C731 .4 703.6-5 679.6 5S640 38.2 640 64v64H320C143.2 128 0 271.2 0 448zm1024 128c0-35.4-28.6-64-64-64s-64 28.6-64 64c0 106-86 192-192 192H384v-64c0-25.8-15.6-49.2-39.6-59.2s-51.4-4.4-69.8 13.8l-128 128c-25 25-25 65.6 0 90.6l128 128c18.4 18.4 45.8 23.8 69.8 13.8s39.6-33.2 39.6-59.2V896h320c176.8 0 320-143.2 320-320z",fill:"#fff"}));var nt="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik0wIDQ0OGMwIDM1LjQgMjguNiA2NCA2NCA2NHM2NC0yOC42IDY0LTY0YzAtMTA2IDg2LTE5MiAxOTItMTkyaDMyMHY2NGMwIDI1LjggMTUuNiA0OS4yIDM5LjYgNTkuMnM1MS40IDQuNCA2OS44LTEzLjhsMTI4LTEyOGMyNS0yNSAyNS02NS42IDAtOTAuNmwtMTI4LTEyOEM3MzEgLjQgNzAzLjYtNSA2NzkuNiA1UzY0MCAzOC4yIDY0MCA2NHY2NEgzMjBDMTQzLjIgMTI4IDAgMjcxLjIgMCA0NDh6bTEwMjQgMTI4YzAtMzUuNC0yOC42LTY0LTY0LTY0cy02NCAyOC42LTY0IDY0YzAgMTA2LTg2IDE5Mi0xOTIgMTkySDM4NHYtNjRjMC0yNS44LTE1LjYtNDkuMi0zOS42LTU5LjJzLTUxLjQtNC40LTY5LjggMTMuOGwtMTI4IDEyOGMtMjUgMjUtMjUgNjUuNiAwIDkwLjZsMTI4IDEyOGMxOC40IDE4LjQgNDUuOCAyMy44IDY5LjggMTMuOHMzOS42LTMzLjIgMzkuNi01OS4yVjg5NmgzMjBjMTc2LjggMCAzMjAtMTQzLjIgMzIwLTMyMHoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",St=Object.defineProperty,ut=Object.getOwnPropertySymbols,Vt=Object.prototype.hasOwnProperty,Nt=Object.prototype.propertyIsEnumerable,At=(Pt,an,pn)=>an in Pt?St(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,Ie=(Pt,an)=>{for(var pn in an||(an={}))Vt.call(an,pn)&&At(Pt,pn,an[pn]);if(ut)for(var pn of ut(an))Nt.call(an,pn)&&At(Pt,pn,an[pn]);return Pt};const Ee=Pt=>o.createElement("svg",Ie({viewBox:"0 0 31 35",xmlns:"http://www.w3.org/2000/svg"},Pt),o.createElement("g",{clipPath:"url(#skeleton-ai_svg__a)"},o.createElement("path",{d:"M25.833 19.5a5.161 5.161 0 0 0-4.097 2.023l-.09-.039a6.459 6.459 0 0 0-7.762-8.237l-.118-.222a5.16 5.16 0 1 0-2.297 1.18l.094.176a6.448 6.448 0 0 0-1.465 8.654l-2.435 2.277a5.167 5.167 0 1 0 1.88 1.78l2.374-2.22a6.45 6.45 0 0 0 8.446-1.125l.36.154a5.167 5.167 0 1 0 5.11-4.401ZM7.75 9.167a2.583 2.583 0 1 1 5.167 0 2.583 2.583 0 0 1-5.167 0Zm-2.583 23.25a2.583 2.583 0 1 1 0-5.166 2.583 2.583 0 0 1 0 5.166ZM15.5 23.375a3.874 3.874 0 0 1-2.067-7.148l.526-.28a3.876 3.876 0 1 1 1.54 7.428Zm10.333 3.875a2.583 2.583 0 1 1 0-5.165 2.583 2.583 0 0 1 0 5.165Z"})),o.createElement("path",{d:"M24.928 11.296h-3.492l-.6 1.704h-1.428l2.988-8.352h1.584L26.968 13h-1.44l-.6-1.704Zm-.384-1.116-1.356-3.876-1.368 3.876h2.724Zm5.091-5.52V13h-1.368V4.66h1.368Z"}),o.createElement("defs",null,o.createElement("clipPath",{id:"skeleton-ai_svg__a"},o.createElement("path",{transform:"translate(0 4)",d:"M0 0h31v31H0z"}))));var Mt="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzEgMzUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjUuODMzIDE5LjVhNS4xNjEgNS4xNjEgMCAwIDAtNC4wOTcgMi4wMjNsLS4wOS0uMDM5YTYuNDU5IDYuNDU5IDAgMCAwLTcuNzYyLTguMjM3bC0uMTE4LS4yMjJhNS4xNiA1LjE2IDAgMSAwLTIuMjk3IDEuMThsLjA5NC4xNzZhNi40NDggNi40NDggMCAwIDAtMS40NjUgOC42NTRsLTIuNDM1IDIuMjc3YTUuMTY3IDUuMTY3IDAgMSAwIDEuODggMS43OGwyLjM3NC0yLjIyYTYuNDUgNi40NSAwIDAgMCA4LjQ0Ni0xLjEyNWwuMzYuMTU0YTUuMTY3IDUuMTY3IDAgMSAwIDUuMTEtNC40MDFaTTcuNzUgOS4xNjdhMi41ODMgMi41ODMgMCAxIDEgNS4xNjcgMCAyLjU4MyAyLjU4MyAwIDAgMS01LjE2NyAwWm0tMi41ODMgMjMuMjVhMi41ODMgMi41ODMgMCAxIDEgMC01LjE2NiAyLjU4MyAyLjU4MyAwIDAgMSAwIDUuMTY2Wk0xNS41IDIzLjM3NWEzLjg3NCAzLjg3NCAwIDAgMS0yLjA2Ny03LjE0OGwuNTI2LS4yOGEzLjg3NiAzLjg3NiAwIDEgMSAxLjU0IDcuNDI4Wm0xMC4zMzMgMy44NzVhMi41ODMgMi41ODMgMCAxIDEgMC01LjE2NSAyLjU4MyAyLjU4MyAwIDAgMSAwIDUuMTY1WiIvPjwvZz48cGF0aCBkPSJNMjQuOTI4IDExLjI5NmgtMy40OTJsLS42IDEuNzA0aC0xLjQyOGwyLjk4OC04LjM1MmgxLjU4NEwyNi45NjggMTNoLTEuNDRsLS42LTEuNzA0Wm0tLjM4NC0xLjExNi0xLjM1Ni0zLjg3Ni0xLjM2OCAzLjg3NmgyLjcyNFptNS4wOTEtNS41MlYxM2gtMS4zNjhWNC42NmgxLjM2OFoiLz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgNCkiIGQ9Ik0wIDBoMzF2MzFIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",jt=Object.defineProperty,He=Object.getOwnPropertySymbols,et=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable,Ut=(Pt,an,pn)=>an in Pt?jt(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,Jt=(Pt,an)=>{for(var pn in an||(an={}))et.call(an,pn)&&Ut(Pt,pn,an[pn]);if(He)for(var pn of He(an))Zt.call(an,pn)&&Ut(Pt,pn,an[pn]);return Pt};const ln=Pt=>o.createElement("svg",Jt({viewBox:"0 0 31 31",xmlns:"http://www.w3.org/2000/svg"},Pt),o.createElement("g",{clipPath:"url(#skeleton_svg__a)"},o.createElement("path",{d:"M25.833 15.5a5.161 5.161 0 0 0-4.097 2.023l-.09-.039a6.459 6.459 0 0 0-7.762-8.237l-.118-.222a5.16 5.16 0 1 0-2.297 1.18l.094.176a6.448 6.448 0 0 0-1.465 8.654l-2.435 2.277a5.167 5.167 0 1 0 1.88 1.78l2.374-2.22a6.45 6.45 0 0 0 8.446-1.125l.36.154a5.167 5.167 0 1 0 5.11-4.401ZM7.75 5.167a2.583 2.583 0 1 1 5.167 0 2.583 2.583 0 0 1-5.167 0Zm-2.583 23.25a2.583 2.583 0 1 1 0-5.166 2.583 2.583 0 0 1 0 5.166ZM15.5 19.375a3.874 3.874 0 0 1-2.067-7.148l.526-.28a3.876 3.876 0 1 1 1.54 7.428Zm10.333 3.875a2.583 2.583 0 1 1 0-5.165 2.583 2.583 0 0 1 0 5.165Z"})),o.createElement("defs",null,o.createElement("clipPath",{id:"skeleton_svg__a"},o.createElement("path",{d:"M0 0h31v31H0z"}))));var Mn="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzEgMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjUuODMzIDE1LjVhNS4xNjEgNS4xNjEgMCAwIDAtNC4wOTcgMi4wMjNsLS4wOS0uMDM5YTYuNDU5IDYuNDU5IDAgMCAwLTcuNzYyLTguMjM3bC0uMTE4LS4yMjJhNS4xNiA1LjE2IDAgMSAwLTIuMjk3IDEuMThsLjA5NC4xNzZhNi40NDggNi40NDggMCAwIDAtMS40NjUgOC42NTRsLTIuNDM1IDIuMjc3YTUuMTY3IDUuMTY3IDAgMSAwIDEuODggMS43OGwyLjM3NC0yLjIyYTYuNDUgNi40NSAwIDAgMCA4LjQ0Ni0xLjEyNWwuMzYuMTU0YTUuMTY3IDUuMTY3IDAgMSAwIDUuMTEtNC40MDFaTTcuNzUgNS4xNjdhMi41ODMgMi41ODMgMCAxIDEgNS4xNjcgMCAyLjU4MyAyLjU4MyAwIDAgMS01LjE2NyAwWm0tMi41ODMgMjMuMjVhMi41ODMgMi41ODMgMCAxIDEgMC01LjE2NiAyLjU4MyAyLjU4MyAwIDAgMSAwIDUuMTY2Wk0xNS41IDE5LjM3NWEzLjg3NCAzLjg3NCAwIDAgMS0yLjA2Ny03LjE0OGwuNTI2LS4yOGEzLjg3NiAzLjg3NiAwIDEgMSAxLjU0IDcuNDI4Wm0xMC4zMzMgMy44NzVhMi41ODMgMi41ODMgMCAxIDEgMC01LjE2NSAyLjU4MyAyLjU4MyAwIDAgMSAwIDUuMTY1WiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGQ9Ik0wIDBoMzF2MzFIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",gn=Object.defineProperty,Yn=Object.getOwnPropertySymbols,Gn=Object.prototype.hasOwnProperty,ar=Object.prototype.propertyIsEnumerable,gr=(Pt,an,pn)=>an in Pt?gn(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,zt=(Pt,an)=>{for(var pn in an||(an={}))Gn.call(an,pn)&&gr(Pt,pn,an[pn]);if(Yn)for(var pn of Yn(an))ar.call(an,pn)&&gr(Pt,pn,an[pn]);return Pt};const qt=Pt=>o.createElement("svg",zt({viewBox:"0 0 49 49",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Pt),o.createElement("g",{clipPath:"url(#text-prompt_svg__a)"},o.createElement("path",{d:"M24.5 49C38.031 49 49 38.031 49 24.5S38.031 0 24.5 0 0 10.969 0 24.5 10.969 49 24.5 49Z",fill:"#CCDCFF"}),o.createElement("path",{d:"M4.64 16.275v16.45H24.5l9.93-8.225-9.93-8.225H4.64Z",fill:"#fff"}),o.createElement("path",{d:"M24.5 16.275h19.86v16.45H24.5v-16.45Z",fill:"#E8E8E8"}),o.createElement("path",{d:"M15.06 13.87v-3.243H6.646v3.242h2.586v21.262H6.646v3.242h8.414v-3.242h-2.585V13.869h2.585Z",fill:"#5C5B68"}),o.createElement("path",{d:"M15.69 26.757h6.247v2.871H15.69v-2.87Z",fill:"#397DEA"}),o.createElement("path",{d:"M25.24 26.757h6.247v2.871H25.24v-2.87ZM34.79 26.757h6.247v2.871H34.79v-2.87Z",fill:"#2C5DBF"})),o.createElement("defs",null,o.createElement("clipPath",{id:"text-prompt_svg__a"},o.createElement("path",{fill:"#fff",d:"M0 0h49v49H0z"}))));var rn="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDkgNDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjQuNSA0OUMzOC4wMzEgNDkgNDkgMzguMDMxIDQ5IDI0LjVTMzguMDMxIDAgMjQuNSAwIDAgMTAuOTY5IDAgMjQuNSAxMC45NjkgNDkgMjQuNSA0OVoiIGZpbGw9IiNDQ0RDRkYiLz48cGF0aCBkPSJNNC42NCAxNi4yNzV2MTYuNDVIMjQuNWw5LjkzLTguMjI1LTkuOTMtOC4yMjVINC42NFoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMjQuNSAxNi4yNzVoMTkuODZ2MTYuNDVIMjQuNXYtMTYuNDVaIiBmaWxsPSIjRThFOEU4Ii8+PHBhdGggZD0iTTE1LjA2IDEzLjg3di0zLjI0M0g2LjY0NnYzLjI0MmgyLjU4NnYyMS4yNjJINi42NDZ2My4yNDJoOC40MTR2LTMuMjQyaC0yLjU4NVYxMy44NjloMi41ODVaIiBmaWxsPSIjNUM1QjY4Ii8+PHBhdGggZD0iTTE1LjY5IDI2Ljc1N2g2LjI0N3YyLjg3MUgxNS42OXYtMi44N1oiIGZpbGw9IiMzOTdERUEiLz48cGF0aCBkPSJNMjUuMjQgMjYuNzU3aDYuMjQ3djIuODcxSDI1LjI0di0yLjg3Wk0zNC43OSAyNi43NTdoNi4yNDd2Mi44NzFIMzQuNzl2LTIuODdaIiBmaWxsPSIjMkM1REJGIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGg0OXY0OUgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==",dn=Object.defineProperty,Cn=Object.getOwnPropertySymbols,on=Object.prototype.hasOwnProperty,pt=Object.prototype.propertyIsEnumerable,mt=(Pt,an,pn)=>an in Pt?dn(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,sn=(Pt,an)=>{for(var pn in an||(an={}))on.call(an,pn)&&mt(Pt,pn,an[pn]);if(Cn)for(var pn of Cn(an))pt.call(an,pn)&&mt(Pt,pn,an[pn]);return Pt};const Kt=Pt=>o.createElement("svg",sn({className:"undo_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16},Pt),o.createElement("path",{d:"M512 324.267V136.533c0-6.826-3.413-13.653-10.24-13.653-6.827-3.413-13.653-3.413-17.067 0L6.827 430.08C3.413 433.493 0 436.907 0 443.733s3.413 10.24 6.827 13.654L484.693 798.72c6.827 3.413 13.654 3.413 17.067 0 6.827-3.413 10.24-10.24 10.24-13.653V597.333c249.173 10.24 474.453 235.52 477.867 290.134 0 10.24 6.826 17.066 17.066 17.066S1024 897.707 1024 887.467c-3.413-225.28-170.667-552.96-512-563.2z",fill:"#fff"}));var tn="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik01MTIgMzI0LjI2N1YxMzYuNTMzYzAtNi44MjYtMy40MTMtMTMuNjUzLTEwLjI0LTEzLjY1My02LjgyNy0zLjQxMy0xMy42NTMtMy40MTMtMTcuMDY3IDBMNi44MjcgNDMwLjA4QzMuNDEzIDQzMy40OTMgMCA0MzYuOTA3IDAgNDQzLjczM3MzLjQxMyAxMC4yNCA2LjgyNyAxMy42NTRMNDg0LjY5MyA3OTguNzJjNi44MjcgMy40MTMgMTMuNjU0IDMuNDEzIDE3LjA2NyAwIDYuODI3LTMuNDEzIDEwLjI0LTEwLjI0IDEwLjI0LTEzLjY1M1Y1OTcuMzMzYzI0OS4xNzMgMTAuMjQgNDc0LjQ1MyAyMzUuNTIgNDc3Ljg2NyAyOTAuMTM0IDAgMTAuMjQgNi44MjYgMTcuMDY2IDE3LjA2NiAxNy4wNjZTMTAyNCA4OTcuNzA3IDEwMjQgODg3LjQ2N2MtMy40MTMtMjI1LjI4LTE3MC42NjctNTUyLjk2LTUxMi01NjMuMnoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",mn=Object.defineProperty,fn=Object.getOwnPropertySymbols,kn=Object.prototype.hasOwnProperty,qn=Object.prototype.propertyIsEnumerable,ct=(Pt,an,pn)=>an in Pt?mn(Pt,an,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Pt[an]=pn,dt=(Pt,an)=>{for(var pn in an||(an={}))kn.call(an,pn)&&ct(Pt,pn,an[pn]);if(fn)for(var pn of fn(an))qn.call(an,pn)&&ct(Pt,pn,an[pn]);return Pt};const It=Pt=>o.createElement("svg",dt({viewBox:"0 0 49 49",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Pt),o.createElement("g",{clipPath:"url(#visual-prompt_svg__a)"},o.createElement("path",{d:"M24.5 49C38.031 49 49 38.031 49 24.5S38.031 0 24.5 0 0 10.969 0 24.5 10.969 49 24.5 49Z",fill:"#CCDCFF"}),o.createElement("path",{d:"M24.5 40.84h-2.393v-7.178H24.5l.808 3.648-.808 3.53Z",fill:"#87ADFF"}),o.createElement("path",{d:"M24.5 33.662h2.393v7.177H24.5v-7.177Z",fill:"#165DFF"}),o.createElement("path",{d:"M24.5 42.514h-5.742V40.6H24.5l.642.957-.642.957Z",fill:"#165DFF"}),o.createElement("path",{d:"M24.5 40.6h5.742v1.914H24.5V40.6Z",fill:"#0E57FF"}),o.createElement("path",{d:"M25.765 23.118 24.5 13.32H6.316v18.183l18.184.563 1.265-8.948Z",fill:"#fff"}),o.createElement("path",{d:"M24.5 13.32v18.746l18.184-.563V13.32H24.5Z",fill:"#EAEDF4"}),o.createElement("path",{d:"m24.5 33.896.808-1.196-.808-1.197H6.316v2.393H24.5Z",fill:"#165DFF"}),o.createElement("path",{d:"M24.5 31.503h18.184v2.393H24.5v-2.393Z",fill:"#0E57FF"}),o.createElement("path",{d:"m36.198 24.423-3.163-1.054 1.055 3.163.527-.527 1.912 1.912 1.054-1.055-1.912-1.912.527-.527Z",fill:"#5C5B68"}),o.createElement("path",{d:"m19.034 19.3 3.474.608 1.992 2.548 1.48 2.73-1.48 3.517-5.466-3.156V19.3Z",fill:"#87ADFF"}),o.createElement("path",{d:"M29.966 25.547v-6.311l-3.399.786-2.067 2.434v6.247l5.466-3.156Z",fill:"#165DFF"}),o.createElement("path",{d:"m19.034 19.3 5.466 3.156 1.241-3.33L24.5 16.08l-5.466 3.22Z",fill:"#C1D4FD"}),o.createElement("path",{d:"M24.5 16.08v6.376l5.466-3.22L24.5 16.08Z",fill:"#A9C3FC"})),o.createElement("defs",null,o.createElement("clipPath",{id:"visual-prompt_svg__a"},o.createElement("path",{fill:"#fff",d:"M0 0h49v49H0z"}))));var Ct="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDkgNDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMjQuNSA0OUMzOC4wMzEgNDkgNDkgMzguMDMxIDQ5IDI0LjVTMzguMDMxIDAgMjQuNSAwIDAgMTAuOTY5IDAgMjQuNSAxMC45NjkgNDkgMjQuNSA0OVoiIGZpbGw9IiNDQ0RDRkYiLz48cGF0aCBkPSJNMjQuNSA0MC44NGgtMi4zOTN2LTcuMTc4SDI0LjVsLjgwOCAzLjY0OC0uODA4IDMuNTNaIiBmaWxsPSIjODdBREZGIi8+PHBhdGggZD0iTTI0LjUgMzMuNjYyaDIuMzkzdjcuMTc3SDI0LjV2LTcuMTc3WiIgZmlsbD0iIzE2NURGRiIvPjxwYXRoIGQ9Ik0yNC41IDQyLjUxNGgtNS43NDJWNDAuNkgyNC41bC42NDIuOTU3LS42NDIuOTU3WiIgZmlsbD0iIzE2NURGRiIvPjxwYXRoIGQ9Ik0yNC41IDQwLjZoNS43NDJ2MS45MTRIMjQuNVY0MC42WiIgZmlsbD0iIzBFNTdGRiIvPjxwYXRoIGQ9Ik0yNS43NjUgMjMuMTE4IDI0LjUgMTMuMzJINi4zMTZ2MTguMTgzbDE4LjE4NC41NjMgMS4yNjUtOC45NDhaIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTI0LjUgMTMuMzJ2MTguNzQ2bDE4LjE4NC0uNTYzVjEzLjMySDI0LjVaIiBmaWxsPSIjRUFFREY0Ii8+PHBhdGggZD0ibTI0LjUgMzMuODk2LjgwOC0xLjE5Ni0uODA4LTEuMTk3SDYuMzE2djIuMzkzSDI0LjVaIiBmaWxsPSIjMTY1REZGIi8+PHBhdGggZD0iTTI0LjUgMzEuNTAzaDE4LjE4NHYyLjM5M0gyNC41di0yLjM5M1oiIGZpbGw9IiMwRTU3RkYiLz48cGF0aCBkPSJtMzYuMTk4IDI0LjQyMy0zLjE2My0xLjA1NCAxLjA1NSAzLjE2My41MjctLjUyNyAxLjkxMiAxLjkxMiAxLjA1NC0xLjA1NS0xLjkxMi0xLjkxMi41MjctLjUyN1oiIGZpbGw9IiM1QzVCNjgiLz48cGF0aCBkPSJtMTkuMDM0IDE5LjMgMy40NzQuNjA4IDEuOTkyIDIuNTQ4IDEuNDggMi43My0xLjQ4IDMuNTE3LTUuNDY2LTMuMTU2VjE5LjNaIiBmaWxsPSIjODdBREZGIi8+PHBhdGggZD0iTTI5Ljk2NiAyNS41NDd2LTYuMzExbC0zLjM5OS43ODYtMi4wNjcgMi40MzR2Ni4yNDdsNS40NjYtMy4xNTZaIiBmaWxsPSIjMTY1REZGIi8+PHBhdGggZD0ibTE5LjAzNCAxOS4zIDUuNDY2IDMuMTU2IDEuMjQxLTMuMzNMMjQuNSAxNi4wOGwtNS40NjYgMy4yMloiIGZpbGw9IiNDMUQ0RkQiLz48cGF0aCBkPSJNMjQuNSAxNi4wOHY2LjM3Nmw1LjQ2Ni0zLjIyTDI0LjUgMTYuMDhaIiBmaWxsPSIjQTlDM0ZDIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGg0OXY0OUgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==",kt,un,nn,xn,Rn,Mr,er,zn=function(Pt){return Pt.showAnnotations="showAnnotations",Pt.showAllCategory="showAllCategory",Pt.showImgDesc="showImgDesc",Pt.showBoxText="showBoxText",Pt.showSegFilling="showSegFilling",Pt.showSegContour="showSegContour",Pt.showMattingColorFill="showMattingColorFill",Pt.showKeyPointsLine="showKeyPointsLine",Pt.showKeyPointsBox="showKeyPointsBox",Pt}({}),Ur=function(Pt){return Pt.Waiting="waiting",Pt.Running="running",Pt.Success="success",Pt.Failed="failed",Pt}({}),pr=.1,sa=20,Nr=.5,Zn=.1,In=function(Pt){return Pt.Rectangle="rect",Pt.Polygon="polygon",Pt.Mask="mask",Pt.Skeleton="coco_keypoints_17",Pt.Classification="classification",Pt}({}),Pn=function(Pt){return Pt.Custom="Custom",Pt.Classification="Classification",Pt.Rectangle="Rectangle",Pt.Polygon="Polygon",Pt.Skeleton="Skeleton",Pt.Mask="Mask",Pt.Matting="Matting",Pt.Point="Point",Pt.Polyline="Polyline",Pt}({}),rr=function(Pt){return Pt.Rect="rect",Pt.Circle="circle",Pt.Polygon="polygon",Pt.None="none",Pt}({}),br=function(Pt){return Pt.Drag="Drag",Pt.Rectangle="Rect",Pt.Polygon="Polygon",Pt.Skeleton="Skeleton",Pt.Mask="Mask",Pt}({}),Gr=function(Pt){return Pt.PenAdd="PenAdd",Pt.PenErase="PenErase",Pt.BrushAdd="BrushAdd",Pt.BrushErase="BrushErase",Pt.AutoSegmentByBox="AutoSegmentByBox",Pt.AutoSegmentByClick="AutoSegmentByClick",Pt.AutoSegmentByStroke="AutoSegmentByStroke",Pt.AutoSegmentEverything="AutoSegmentEverything",Pt.AutoEdgeStitching="AutoEdgeStitching",Pt.PositiveVisualPrompt="PositiveVisualPrompt",Pt.NegativeVisualPrompt="NegativeVisualPrompt",Pt}({}),na=function(Pt){return Pt.SmartAnnotation="SmartAnnotation",Pt.Undo="Undo",Pt.Redo="Redo",Pt.RepeatPrevious="RepeatPrevious",Pt.DeleteAll="DeleteAll",Pt}({}),pa=(kt={},t()(kt,br.Drag,Pn.Custom),t()(kt,br.Rectangle,Pn.Rectangle),t()(kt,br.Polygon,Pn.Polygon),t()(kt,br.Skeleton,Pn.Skeleton),t()(kt,br.Mask,Pn.Mask),kt),cr=function(Pt){return Pt.Detection="ai_detection",Pt.IVP="ivp",Pt.SegmentByPolygon="ai_polygon",Pt.SegmentByMask="ai_segmentation_mask",Pt.Pose="ai_pose",Pt.MaskEdgeStitching="ai_mask_edge_stitching",Pt.SegmentEverything="ai_segment_everything",Pt}({}),Zr=(un={},t()(un,br.Drag,[]),t()(un,br.Rectangle,[cr.Detection,cr.IVP]),t()(un,br.Polygon,[cr.SegmentByPolygon]),t()(un,br.Mask,[cr.SegmentEverything,cr.SegmentByMask,cr.IVP]),t()(un,br.Skeleton,[cr.Pose]),un),Ea=(nn={},t()(nn,cr.Detection,{name:"DDSAnnotator.smart.gdino.name",icon:qt,description:"DDSAnnotator.smart.gdino.desc",hightlight:!1}),t()(nn,cr.IVP,{name:"DDSAnnotator.smart.ivp.name",icon:It,description:"DDSAnnotator.smart.ivp.desc",hightlight:!0}),t()(nn,cr.SegmentEverything,{name:"DDSAnnotator.smart.sam.name",icon:It,description:"DDSAnnotator.smart.sam.desc",hightlight:!1}),t()(nn,cr.SegmentByMask,{name:"DDSAnnotator.smart.isg.name",icon:It,description:"DDSAnnotator.smart.isg.desc",hightlight:!1}),nn),ha=(xn={},t()(xn,In.Rectangle,br.Rectangle),t()(xn,In.Polygon,br.Polygon),t()(xn,In.Mask,br.Mask),t()(xn,In.Skeleton,br.Skeleton),xn),Wn=(Rn={},t()(Rn,Pn.Rectangle,Oe),t()(Rn,Pn.Skeleton,ln),t()(Rn,Pn.Polygon,P),t()(Rn,Pn.Mask,Te),t()(Rn,Pn.Matting,Te),t()(Rn,Pn.Point,g),t()(Rn,Pn.Polyline,g),t()(Rn,Pn.Custom,g),t()(Rn,Pn.Classification,g),Rn),Fn=(Mr={},t()(Mr,Pn.Rectangle,We),t()(Mr,Pn.Skeleton,Ee),t()(Mr,Pn.Polygon,$e),t()(Mr,Pn.Mask,_),Mr),hr=(er={},t()(er,na.SmartAnnotation,te),t()(er,na.Undo,Kt),t()(er,na.Redo,it),t()(er,na.RepeatPrevious,ze),t()(er,na.DeleteAll,N),er),Kr=function(Pt){return Pt[Pt.noLabeled=0]="noLabeled",Pt[Pt.labeledNotVisible=1]="labeledNotVisible",Pt[Pt.labeledVisible=2]="labeledVisible",Pt}({}),Ar={categoryName:"person",boundingBox:{xmax:.44072164948453607,xmin:.2654639175257732,ymax:.5698739977090492,ymin:.09335624284077892},points:[175.25773195876286,61.21134020618557,0,1,2,1,179.9828178694158,41.45189003436426,0,1,2,1,170.96219931271477,41.881443298969074,0,1,2,1,189.86254295532646,51.33161512027492,0,1,2,1,163.23024054982818,50.47250859106529,0,1,2,1,192.86941580756016,68.08419243986253,0,1,2,1,158.295150820924,67.63982699371964,0,1,2,1,202.74914089347078,99.87113402061856,0,1,2,1,150.34364261168383,99.87113402061856,0,1,2,1,208.76288659793815,127.36254295532646,0,1,2,1,142.61168384879724,129.0807560137457,0,1,2,1,182.13058419243984,126.50343642611685,0,1,2,1,162.2279495990836,125.4739898092191,0,1,2,1,184.70790378006873,175.4725085910653,0,1,2,1,158.78675066819395,176.9759450171821,0,1,2,1,190.29209621993127,208.11855670103094,0,1,2,1,152.92096219931273,206.82989690721652,0,1,2,1],lines:[15,13,13,11,16,14,14,12,11,12,5,11,6,12,5,6,5,7,6,8,7,9,8,10,1,2,0,1,0,2,1,3,2,4,3,5,4,6],pointColors:["128","0","0","255","178","102","230","230","0","255","51","255","153","204","255","255","128","0","0","255","255","128","0","255","51","153","255","169","165","139","255","0","0","102","255","102","184","97","134","128","128","0","255","190","255","0","128","0","0","0","255"],pointNames:["nose","left_eye","right_eye","left_ear","right_ear","left_shoulder","right_shoulder","left_elbow","right_elbow","left_wrist","right_wrist","left_hip","right_hip","left_knee","right_knee","left_ankle","right_ankle"]}},34095:function(b,y,e){"use strict";e.d(y,{$k:function(){return S},Bt:function(){return m},CJ:function(){return g},XQ:function(){return c},cj:function(){return h},lz:function(){return M},mh:function(){return n},rl:function(){return d},s_:function(){return l}});var a=e(2657),t=e.n(a),o=e(50910),s,n={DEFAULT:0,DEFAULT_SHAPE:.35,CREATING:0,JUST_CREATED:.5,FOCUS:.6,CTRL_TO_SELECT:.1,OTHER:0},d={DEFAULT:1,CREATING:1,CREATING_LINE:.8,FOCUS:1,ACTIVE:1,OTHER:.3},l={CREATING:.7,FOCUS:.7,JUST_CREATED:.5,DEFAULT:.35},c={CREATING:"#fff"},m={CREATING:"transparent",CREATING_POSITIVE:"#2876d4",CREATING_NEGATIVE:"#e91d00"},g={POSITIVE:"rgba(1, 128, 0, 1)",NEGATIVE:"rgba(255, 3, 0, 1)"},M={POSITIVE:"rgba(1, 128, 0, 0.6)",NEGATIVE:"rgba(255, 3, 0, 0.6)"},h=(s={},t()(s,o.SP.Solid,{lineDash:[],thickness:2}),t()(s,o.SP.DoubleSolid,{lineDash:[],thickness:4}),t()(s,o.SP.LCurbside,{lineDash:[],thickness:2}),t()(s,o.SP.RCurbside,{lineDash:[],thickness:2}),t()(s,o.SP.Unknown,{lineDash:[],thickness:2}),t()(s,o.SP.Dashed,{lineDash:[4,4],thickness:2}),t()(s,o.SP.DoubleDashed,{lineDash:[4,4],thickness:4}),t()(s,o.SP.LDashedRSolid,{lineDash:[4,8,4,8,16,4],thickness:4}),t()(s,o.SP.LSolidRDashed,{lineDash:[4,8,16,4],thickness:4}),s),S={Yellow:"#d97945",White:"#de1760",Other:"#72af44"}},88662:function(b,y,e){"use strict";e.d(y,{kl:function(){return vs},j5:function(){return jc},D5:function(){return Mu},je:function(){return W.je}});var a=e(63900),t=e.n(a),o=e(88205),s=e.n(o),n=e(62109),d=e(73267),l=e(87608),c=e.n(l),m=e(39378),g=e(58757),M=e(65246),h=e(52495),S=e(84045),w=e(18624),C=e(12562),z=e(53357),Z=function(he){return he==null||he===""||Array.isArray(he)&&he.length===0},N=e(47513),L=e(74820),$=e(10852),D=e(38904),T=e(21149),j=Object.defineProperty,G=Object.getOwnPropertySymbols,k=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable,Y=(Ue,he,Pe)=>he in Ue?j(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,q=(Ue,he)=>{for(var Pe in he||(he={}))k.call(he,Pe)&&Y(Ue,Pe,he[Pe]);if(G)for(var Pe of G(he))te.call(he,Pe)&&Y(Ue,Pe,he[Pe]);return Ue};const le=Ue=>g.createElement("svg",q({viewBox:"0 0 21 21",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("path",{d:"M16.625 4.375v12.25H4.375V4.375h12.25ZM3.5 2.625c-.438 0-.875.438-.875.875v14c0 .525.35.875.875.875h14c.525 0 .875-.35.875-.875v-14c0-.525-.35-.875-.875-.875h-14Z"}),g.createElement("path",{d:"M14.875 7.788c0-.525-.35-.875-.875-.875H9.625v-.438A.877.877 0 0 0 8.75 5.6c-.525 0-.875.35-.875.875v.438H7c-.525 0-.875.35-.875.875s.35.875.875.875h.875V9.1c0 .525.35.875.875.875s.875-.35.875-.875v-.437H14c.525 0 .875-.35.875-.875ZM6.125 13.3c0 .525.35.875.875.875h4.375v.438c0 .525.438.875.875.875.525 0 .875-.35.875-.875v-.438H14c.525 0 .875-.35.875-.875s-.35-.875-.875-.875h-.875v-.437c0-.525-.35-.875-.875-.875s-.875.35-.875.875v.437H7a.877.877 0 0 0-.875.875Z"}));var X="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjEgMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2LjYyNSA0LjM3NXYxMi4yNUg0LjM3NVY0LjM3NWgxMi4yNVpNMy41IDIuNjI1Yy0uNDM4IDAtLjg3NS40MzgtLjg3NS44NzV2MTRjMCAuNTI1LjM1Ljg3NS44NzUuODc1aDE0Yy41MjUgMCAuODc1LS4zNS44NzUtLjg3NXYtMTRjMC0uNTI1LS4zNS0uODc1LS44NzUtLjg3NWgtMTRaIi8+PHBhdGggZD0iTTE0Ljg3NSA3Ljc4OGMwLS41MjUtLjM1LS44NzUtLjg3NS0uODc1SDkuNjI1di0uNDM4QS44NzcuODc3IDAgMCAwIDguNzUgNS42Yy0uNTI1IDAtLjg3NS4zNS0uODc1Ljg3NXYuNDM4SDdjLS41MjUgMC0uODc1LjM1LS44NzUuODc1cy4zNS44NzUuODc1Ljg3NWguODc1VjkuMWMwIC41MjUuMzUuODc1Ljg3NS44NzVzLjg3NS0uMzUuODc1LS44NzV2LS40MzdIMTRjLjUyNSAwIC44NzUtLjM1Ljg3NS0uODc1Wk02LjEyNSAxMy4zYzAgLjUyNS4zNS44NzUuODc1Ljg3NWg0LjM3NXYuNDM4YzAgLjUyNS40MzguODc1Ljg3NS44NzUuNTI1IDAgLjg3NS0uMzUuODc1LS44NzV2LS40MzhIMTRjLjUyNSAwIC44NzUtLjM1Ljg3NS0uODc1cy0uMzUtLjg3NS0uODc1LS44NzVoLS44NzV2LS40MzdjMC0uNTI1LS4zNS0uODc1LS44NzUtLjg3NXMtLjg3NS4zNS0uODc1Ljg3NXYuNDM3SDdhLjg3Ny44NzcgMCAwIDAtLjg3NS44NzVaIi8+PC9zdmc+",W=e(50910),x=e(35667),O=function(he,Pe){return he.isDarkTheme===Pe.isDarkTheme&&he.disabled===Pe.disabled&&(0,m.isEqual)(he.data,Pe.data)&&(0,m.isEqual)(he.values,Pe.values)&&he.onChangeValue===Pe.onChangeValue&&he.onFocusInput===Pe.onFocusInput&&he.onClickAttributes===Pe.onClickAttributes},_=(0,g.memo)(function(Ue){var he=(0,z.bU)(),Pe=he.localeText,Bn=Ue.isDarkTheme,vt=Ue.disabled,Tn=Ue.data,bn=Ue.values,On=Ue.onChangeValue,Nn=Ue.onFocusInput,dr=Ue.onClickAttributes;return(0,x.jsx)(N.Z,{layout:"vertical",className:c()("dds-annotator-attributes-form",{"dds-annotator-attributes-form-dark":Bn}),children:Tn.map(function(mr,yr){var Ln,ea;return(0,x.jsxs)(N.Z.Item,{required:mr.required,label:mr.hasAttributes?(0,x.jsxs)("div",{className:"dds-annotator-attributes-form-item-title",children:[mr.field,(0,x.jsx)(L.Z,{title:Pe("DDSAnnotator.attribute.edit"),children:(0,x.jsx)(C.ZP,{ghost:!0,className:"dds-annotator-attributes-form-item-title-btn",icon:(0,x.jsx)(le,{className:mr.requireAttribute?"attribute-warn":""}),shape:"circle",onClick:function(ir){ir.stopPropagation(),dr==null||dr(yr)}})})]}):mr.field,children:[mr.type===W.In.Radio&&(0,x.jsx)($.ZP.Group,{value:bn[yr],options:(Ln=mr.options)===null||Ln===void 0?void 0:Ln.map(function(Cr,ir){var Sr=Cr.label;return{label:Sr,value:ir}}),onChange:function(ir){return On(yr,ir.target.value)},disabled:vt}),mr.type===W.In.Checkbox&&(0,x.jsx)(D.Z.Group,{value:bn[yr],options:(ea=mr.options)===null||ea===void 0?void 0:ea.map(function(Cr,ir){var Sr=Cr.label;return{label:Sr,value:ir}}),onChange:function(ir){return On(yr,ir)},disabled:vt}),mr.type===W.In.Text&&(0,x.jsx)(T.Z,{placeholder:Pe("DDSAnnotator.attribute.input"),value:bn[yr],onChange:function(ir){return On(yr,ir.target.value)},onFocus:function(ir){return Nn==null?void 0:Nn(yr,ir)},onKeyUp:function(ir){return ir.stopPropagation()},onKeyDown:function(ir){return ir.stopPropagation()},disabled:vt})]},mr.field)})})},O),U=_,A=function(he){var Pe=he.children,Bn=he.eventHandler,vt=function(bn){Bn?Bn(bn):bn.stopPropagation()};return(0,x.jsx)("div",{onMouseDown:vt,onMouseUp:vt,style:{userSelect:"none"},children:Pe})},V=(0,g.memo)(function(Ue){var he=Ue.data,Pe=Ue.supportEdit,Bn=Ue.onConfirmAttibuteEdit,vt=Ue.onCancelAttibuteEdit,Tn=(0,z.bU)(),bn=Tn.localeText,On=(0,M.x)([]),Nn=s()(On,2),dr=Nn[0],mr=Nn[1];(0,g.useEffect)(function(){mr((he==null?void 0:he.values)||[])},[he.values]);var yr=function(Cr,ir){mr(function(Sr){Sr[Cr]=ir})},Ln=function(){if(he.attributes.find(function(ir,Sr){return ir.required&&Z(dr[Sr])})){S.ZP.error(bn("DDSAnnotator.attribute.required"));return}var Cr=[];he.attributes.forEach(function(ir,Sr){Cr.push(dr[Sr]===void 0?null:dr[Sr])}),Bn(Cr)};return(0,x.jsx)(A,{children:(0,x.jsx)(w.Z,{id:"annotation-editor",className:"dds-annotator-attribute-editor",title:(0,x.jsxs)("div",{className:"dds-annotator-attribute-editor-title",children:[(0,x.jsxs)("div",{children:[bn("DDSAnnotator.attribute.modal")," #",he.index+1]}),(0,x.jsx)(C.ZP,{ghost:!0,className:"dds-annotator-attribute-editor-title-btn",icon:(0,x.jsx)(h.Z,{}),shape:"circle",size:"small",onClick:vt})]}),children:(0,x.jsxs)("div",{className:"dds-annotator-attribute-editor-content",children:[(0,x.jsx)(U,{disabled:!Pe,data:he.attributes,values:dr,onChangeValue:yr}),Pe&&(0,x.jsx)("div",{className:"dds-annotator-attribute-editor-actions",children:(0,x.jsx)(C.ZP,{type:"primary",onClick:function(Cr){Cr.preventDefault(),Ln()},children:bn("DDSAnnotator.confirm")})})]})})})}),fe=V,pe=e(83720),ge=e(56019),be=e(16951),Te=function(he,Pe){return he.className===Pe.className&&he.supportEdit===Pe.supportEdit&&(0,m.isEqual)(he.classificationOptions,Pe.classificationOptions)&&(0,m.isEqual)(he.values,Pe.values)&&he.setDrawDataWithHistory===Pe.setDrawDataWithHistory},Ge=(0,g.memo)(function(Ue){var he=(0,z.bU)(),Pe=he.localeText,Bn=Ue.className,vt=Ue.classificationOptions,Tn=Ue.values,bn=Ue.setDrawDataWithHistory,On=Ue.supportEdit,Nn=(0,g.useState)(!1),dr=s()(Nn,2),mr=dr[0],yr=dr[1],Ln=function(Kn,Yr,qr){var ua,tr=vt[Kn],sr=Tn==null||(ua=Tn.find(function(_r){var zr=_r.labelId;return zr===(tr==null?void 0:tr.id)}))===null||ua===void 0?void 0:ua.attributes;return tr!=null&&tr.attributes&&tr.attributes.length>0&&(Yr==null?void 0:Yr.labelId)!==tr.id&&(!qr||!(sr!=null&&sr.length))?{index:-1,labelId:tr.id,attributes:tr==null?void 0:tr.attributes,values:sr}:null},ea=function(Kn){setTimeout(function(){bn(function(Yr){var qr=Ln(Kn,Yr.editingAttribute);qr&&(Yr.editingAttribute=qr)})})},Cr=function(Kn,Yr){bn(function(qr){var ua,tr=vt[Kn],sr=qr.classifications.findIndex(function(_r){return _r.labelId===tr.id});sr>-1?qr.classifications[sr].labelValue=Yr:qr.classifications.push({labelId:vt[Kn].id,labelValue:Yr}),((ua=qr.editingAttribute)===null||ua===void 0?void 0:ua.labelId)!==(tr==null?void 0:tr.id)&&(qr.editingAttribute=Ln(Kn,qr.editingAttribute,!0)||void 0)})},ir=(0,g.useMemo)(function(){return vt.map(function(ia){var Kn,Yr;return{field:ia.labelName,type:ia.valueType,required:!0,options:ia.valueOptions,hasAttributes:!!((Kn=ia.attributes)!==null&&Kn!==void 0&&Kn.length),requireAttribute:!!((Yr=ia.attributes)!==null&&Yr!==void 0&&Yr.find(function(qr,ua){var tr,sr;return(qr==null?void 0:qr.required)&&[void 0,null,""].includes((tr=Tn.find(function(_r){var zr=_r.labelId;return zr===ia.id}))===null||tr===void 0||(sr=tr.attributes)===null||sr===void 0?void 0:sr[ua])}))}})},[vt,Tn]),Sr=(0,g.useMemo)(function(){var ia=[];return vt.forEach(function(Kn){var Yr,qr=(Yr=Tn.find(function(ua){var tr=ua.labelId;return tr===Kn.id}))===null||Yr===void 0?void 0:Yr.labelValue;ia.push(qr===void 0?null:qr)}),ia},[vt,Tn]),Ir=(0,x.jsx)(U,{isDarkTheme:!0,disabled:!On,data:ir,values:Sr,onChangeValue:Cr,onFocusInput:ea,onClickAttributes:ea});return(0,x.jsx)("div",{className:c()("dds-annotator-classification",Bn),onMouseDown:function(Kn){Kn.stopPropagation()},children:(0,x.jsx)(be.Z,{activeKey:"classification",items:[{key:"classification",label:Pe("DDSAnnotator.annotsList.classification"),children:mr?null:Ir}],tabBarExtraContent:(0,x.jsx)(L.Z,{title:Pe(mr?"DDSAnnotator.annotsList.showAll":"DDSAnnotator.annotsList.hideAll"),children:(0,x.jsx)(C.ZP,{ghost:!0,className:"tab-header-actions",icon:mr?(0,x.jsx)(pe.Z,{}):(0,x.jsx)(ge.Z,{}),shape:"circle",onClick:function(){return yr(!mr)}})})})})},Te),qe=Ge,Qe=e(22283),ht=e(79233),Et=Object.defineProperty,gt=Object.getOwnPropertySymbols,Ht=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,Xe=(Ue,he,Pe)=>he in Ue?Et(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,rt=(Ue,he)=>{for(var Pe in he||(he={}))Ht.call(he,Pe)&&Xe(Ue,Pe,he[Pe]);if(gt)for(var Pe of gt(he))$e.call(he,Pe)&&Xe(Ue,Pe,he[Pe]);return Ue};const Ke=Ue=>React.createElement("svg",rt({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:600,height:600,fill:"none"},Ue),React.createElement("path",{fill:"#FFF",d:"M0 0h600v600H0z"}),React.createElement("mask",{id:"img-broken_svg__b",fill:"#fff"},React.createElement("use",{xlinkHref:"#img-broken_svg__a"})),React.createElement("g",{mask:"url(#img-broken_svg__b)"},React.createElement("path",{style:{fill:"#f3f3fa"},opacity:.6,d:"M520.82 276.411c.7 7.103 1.058 14.305 1.058 21.589 0 122.04-100.54 221-224.51 221-99.159 0-183.328-63.313-213.047-151.107h-8.426c-3.4 0-6.17-2.76-6.17-6.16A6.168 6.168 0 0 1 73.608 356H84c7.18 0 13-5.82 13-13v-1c0-7.18-5.82-13-13-13h-8.95l-.023-.161H52.855c-5.68 0-10.28-4.6-10.28-10.28s4.6-10.28 10.28-10.28h20.241A221.042 221.042 0 0 1 72.858 298c0-32.629 7.187-63.608 20.086-91.486H57c-15.46 0-28-12.541-28-28.001v-1.56c0-14.913 11.67-27.11 26.373-27.953H182c5.52 0 10-4.48 10-10s-4.48-10-10-10h-29.294l.732-.605h-14.59c-10.49 0-19-8.51-19-19v-1.06c0-10.49 8.51-19 19-19h84.392C246.448 81.345 271.393 77 297.368 77c51.023 0 98.077 16.763 135.787 45H418c-7.18 0-13 5.82-13 13v1c0 7.18 5.82 13 13 13h45.166a222.478 222.478 0 0 1 23.253 29.763h21.461c7.73 0 14 6.27 14 14v.78c0 6.387-4.281 11.777-10.128 13.457H492c-8.84 0-16 7.16-16 16v5c0 8.84 7.16 16 16 16h67.901c6.952 1.741 12.097 8.028 12.097 15.521v.89c0 8.84-7.16 16-16 16z"}),React.createElement("path",{fillRule:"evenodd",fill:"url(#img-broken_svg__c)",d:"M147.977 187.468c-14.64 0-26.51 11.87-26.51 26.5h-5.34c-6.73 0-12.19 5.93-12.19 13.25s5.46 13.25 12.19 13.25h65.65c6.74 0 12.19-5.93 12.19-13.25s-5.45-13.25-12.19-13.25h-7.31c0-14.63-11.86-26.5-26.49-26.5z"}),React.createElement("path",{fillRule:"evenodd",fill:"url(#img-broken_svg__d)",d:"M313.088 148.128c0 5.25 3.91 9.5 8.74 9.5h47.07c4.83 0 8.74-4.25 8.74-9.5s-3.91-9.5-8.74-9.5h-5.24c0-10.5-8.51-19-19-19s-19 8.5-19 19h-3.83c-4.83 0-8.74 4.25-8.74 9.5z"}),React.createElement("path",{style:{fill:"#e7eaf0"},d:"M508 453.5c0 11.036-19.12 20.438-45.869 23.988-6.38 1.885-13.556 3.663-21.438 5.315A16.82 16.82 0 0 1 441 486c0 24.3-52.84 44-118 44-58.623 0-107.274-15.946-116.445-36.841C128.328 487.215 73 472.59 73 455.5c0-22.36 94.71-40.5 211.5-40.5 61.363 0 116.631 5.008 155.269 13.004C477.563 428.253 508 439.575 508 453.5z"}),React.createElement("g",{fillRule:"evenodd"},React.createElement("path",{fill:"url(#img-broken_svg__e)",d:"M356 62c-.12-1.36-.23-2.78-.31-4.26-.09-1.23-.16-2.63-.22-4.17-.06-1.55-.09-3.08-.09-4.6V38.66l9.74-.13h1.19c.42 0 .79-.02 1.13-.06.41 0 .81-.02 1.18-.06a5.374 5.374 0 0 0 2.44-1.95c.63-.88.94-1.9.94-3.05l-.13-.8-.24-.99c-.13-.37-.23-.73-.32-1.05l-1.06-2.1c.21-.74.31-1.44.31-2.1 0-1.61-.45-3.03-1.37-4.26-.92-1.23-2.09-2.1-3.5-2.6l-7.88-15.25a7.22 7.22 0 0 0-2.65-3.09C353.97.39 352.63 0 351.13 0c-1.71 0-3.11.51-4.19 1.54-1.08 1.03-2.02 2.27-2.82 3.71h-.06l-9.81 17.97c-.67.58-1.22 1.26-1.65 2.04-.45.78-.71 1.62-.79 2.53l-1.56 3.58c-.08.21-.14.41-.19.62 0 0-.06.43-.06.68 0 1.44.46 2.68 1.37 3.74a6.535 6.535 0 0 0 3.44 2.06l7.06.37c.34.58.76 1.03 1.28 1.36.53.33 1.14.5 1.85.5.88 0 1.67-.31 2.38-.93v9.45c0 2.71-.03 4.89-.07 6.51-.04 1.63-.08 2.92-.12 3.86L347 62h9z",transform:"translate(92 370)"}),React.createElement("path",{fill:"url(#img-broken_svg__f)",d:"M385 60.7c.88 0 1.67-.31 2.38-.93v9.45c0 2.71-.03 4.89-.07 6.51-.04 1.63-.08 2.92-.12 3.86L387 82h9c-.12-1.36-.23-2.78-.31-4.26-.09-1.23-.16-2.63-.22-4.17-.06-1.55-.09-3.08-.09-4.6V58.66l9.74-.13h1.19c.42 0 .79-.02 1.13-.06.41 0 .81-.02 1.18-.06a5.374 5.374 0 0 0 2.44-1.95c.63-.88.94-1.9.94-3.05l-.13-.8-.24-.99c-.13-.37-.23-.73-.32-1.05l-1.06-2.1c.21-.74.31-1.44.31-2.1 0-1.61-.45-3.03-1.37-4.26-.92-1.23-2.09-2.1-3.5-2.6l-7.88-15.25a7.22 7.22 0 0 0-2.65-3.09c-1.19-.78-2.53-1.17-4.03-1.17-1.71 0-3.11.51-4.19 1.54-1.08 1.03-2.02 2.27-2.82 3.71h-.06l-9.81 17.97c-.67.58-1.22 1.26-1.65 2.04-.45.78-.71 1.62-.79 2.53l-1.56 3.58c-.08.21-.14.41-.19.62 0 0-.06.43-.06.68 0 1.44.46 2.68 1.37 3.74a6.535 6.535 0 0 0 3.44 2.06l7.06.37c.34.58.76 1.03 1.28 1.36.53.33 1.14.5 1.85.5z",transform:"translate(92 370)"}),React.createElement("path",{fill:"url(#img-broken_svg__g)",d:"M35.34 1.66C33.67.55 31.78 0 29.68 0c-2.4 0-4.36.73-5.89 2.19-1.52 1.46-2.83 3.21-3.95 5.26h-.09L5.97 32.96c-.94.81-1.71 1.78-2.32 2.89a8.845 8.845 0 0 0-1.1 3.59l-2.2 5.09c-.11.29-.2.58-.26.87 0 0-.09.62-.09.97 0 2.04.64 3.81 1.93 5.3a9 9 0 0 0 4.83 2.93l9.92.53c.47.82 1.07 1.46 1.8 1.93s1.6.7 2.59.7c1.23 0 2.34-.44 3.34-1.32v13.41c0 3.86-.03 6.95-.09 9.25-.06 2.31-.12 4.14-.18 5.49L23.88 88h12.64c-.17-1.93-.32-3.94-.44-6.05-.11-1.75-.21-3.73-.3-5.92s-.13-4.36-.13-6.53V54.87l13.69-.18h1.67c.59 0 1.11-.02 1.58-.09.59 0 1.14-.02 1.67-.08a7.599 7.599 0 0 0 3.42-2.77c.88-1.25 1.32-2.7 1.32-4.34l-.18-1.13-.35-1.4c-.17-.53-.32-1.03-.44-1.5l-1.49-2.97c.29-1.06.44-2.05.44-2.98 0-2.28-.64-4.3-1.93-6.05s-2.93-2.98-4.92-3.69L39.07 6.05c-.82-1.82-2.07-3.28-3.73-4.39z",transform:"translate(92 370)"})),React.createElement("path",{fillRule:"evenodd",fill:"url(#img-broken_svg__h)",opacity:.5,d:"M195.17 339.008 336 259.118l-180.79-56.11L3 241.048l192.17 97.96z",transform:"translate(180 194.992)"}),React.createElement("path",{fillRule:"evenodd",fill:"url(#img-broken_svg__i)",d:"m120.19 238.468 16.76-67-23.23-50.7L147 87.008l-137.81.8A9.242 9.242 0 0 0 0 97.058v132.16c0 5.12 4.15 9.25 9.26 9.25l103.61 4.54 7.32-4.54z",transform:"translate(180 194.992)"}),React.createElement("path",{fillRule:"evenodd",fill:"url(#img-broken_svg__j)",d:"M0 233.728c0 5.13 4.13 9.28 9.22 9.28h103.19l17.59-70.83-24.95-52.65L130 93.008l-120.85.8c-5.05.04-9.15 4.18-9.15 9.28v130.64z",transform:"translate(180 194.992)"}),React.createElement("path",{fillRule:"evenodd",fill:"url(#img-broken_svg__k)",d:"M129 177.408s-39.15 25.41-39.87 25.47c-15.59-13.61-41.17-39.55-41.17-39.55-2.95-3.01-8.11-3.11-11.19-.2L0 214.158v18.8c0 5.05 3.11 10.05 10.1 10.05h102.84l10.05-40.81 6.01-24.79z",transform:"translate(180 194.992)"}),React.createElement("path",{fillRule:"evenodd",fill:"url(#img-broken_svg__l)",d:"m161.114 121.588 10.21 50.9-39.15 72.66 77.97 21.2c5.34 2.12 11.32-1.05 12.51-6.63l36.14-134.09c1.03-4.82-1.95-9.58-6.76-10.81l-53.81-13.81-37.11 20.58z",transform:"translate(180 194.992)"}),React.createElement("path",{fillRule:"evenodd",fill:"url(#img-broken_svg__m)",d:"m153.53 125.233 10.21 50.89-37.74 67.36 77.98 21.21c5.33 2.12 11.31-1.04 12.5-6.63l34.73-128.8c1.03-4.82-1.96-9.58-6.76-10.81l-53.81-13.81-37.11 20.59z",transform:"translate(180 194.992)"}),React.createElement("path",{fillRule:"evenodd",fill:"url(#img-broken_svg__n)",d:"M181.344 174.368c-2-3.27-6.23-4.33-9.52-2.39l-8.09 4.16-37.65 67.37s67.22 18.7 75.12 20.47c7.91 1.76 13.7.54 14.89-5.08l3.37-11.51-38.12-73.02z",transform:"translate(180 194.992)"}),React.createElement("path",{style:{fill:"#fff"},d:"M223.104 151.697c0-9.32-7.57-16.88-16.9-16.88-9.33 0-16.89 7.56-16.89 16.88s7.56 16.88 16.89 16.88c9.33 0 16.9-7.56 16.9-16.88z",transform:"translate(180 194.992)"}),React.createElement("path",{fillRule:"evenodd",fill:"url(#img-broken_svg__o)",d:"m50.921 37.823 12.386-6.041 11.209 22.982-7.452-32.637-12.592 6.142L42.197 6.864l8.724 30.959z",transform:"translate(180 194.992)"}),React.createElement("path",{fillRule:"evenodd",fill:"url(#img-broken_svg__p)",d:"m217.598 48.895 17.888 17.184-30.945 23.817s47.929-22.37 46.996-23.709c-.925-1.335-18.57-16.992-18.57-16.992l24.134-25.537-39.503 25.236z",transform:"translate(180 194.992)"})),React.createElement("defs",null,React.createElement("linearGradient",{id:"img-broken_svg__i",x1:"178.579%",y1:"114.41%",x2:"-67.6%",y2:"-21.639%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#A2ABB9"}),React.createElement("stop",{offset:1,stopColor:"#E7EAF0"})),React.createElement("linearGradient",{id:"img-broken_svg__p",x1:198.923,y1:151.68,x2:253.588,y2:43.245,gradientUnits:"userSpaceOnUse"},React.createElement("stop",{offset:0,stopColor:"#A2ABB9"}),React.createElement("stop",{offset:1,stopColor:"#E7EAF0"})),React.createElement("linearGradient",{id:"img-broken_svg__d",x1:"144.588%",y1:"98.8%",x2:"29.516%",y2:"100%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#E0E5EF",stopOpacity:0}),React.createElement("stop",{offset:1,stopColor:"#E0E5EF"})),React.createElement("linearGradient",{id:"img-broken_svg__e",x1:"144.588%",y1:"98.8%",x2:"29.516%",y2:"100%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#E0E5EF",stopOpacity:0}),React.createElement("stop",{offset:1,stopColor:"#E0E5EF"})),React.createElement("linearGradient",{id:"img-broken_svg__f",x1:"144.588%",y1:"98.8%",x2:"29.516%",y2:"100%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#E0E5EF",stopOpacity:0}),React.createElement("stop",{offset:1,stopColor:"#E0E5EF"})),React.createElement("linearGradient",{id:"img-broken_svg__g",x1:"144.588%",y1:"98.8%",x2:"29.516%",y2:"100%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#E0E5EF",stopOpacity:0}),React.createElement("stop",{offset:1,stopColor:"#E0E5EF"})),React.createElement("linearGradient",{id:"img-broken_svg__h",x1:"50%",y1:"30.387%",x2:"-31.215%",y2:"-60.228%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#E8EBF1",stopOpacity:.24}),React.createElement("stop",{offset:1,stopColor:"#A2ABB9"})),React.createElement("linearGradient",{id:"img-broken_svg__c",x1:"144.588%",y1:"98.8%",x2:"29.516%",y2:"100%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#E0E5EF",stopOpacity:0}),React.createElement("stop",{offset:1,stopColor:"#E0E5EF"})),React.createElement("linearGradient",{id:"img-broken_svg__j",x1:"137.408%",y1:"115.518%",x2:"64.225%",y2:"-9.666%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#A2ABB9"}),React.createElement("stop",{offset:1,stopColor:"#E7EAF0"})),React.createElement("linearGradient",{id:"img-broken_svg__k",x1:"93.55%",y1:"132.782%",x2:"29.55%",y2:"19.901%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#A2ABB9"}),React.createElement("stop",{offset:1,stopColor:"#E7EAF0"})),React.createElement("linearGradient",{id:"img-broken_svg__l",x1:"178.579%",y1:"114.41%",x2:"-67.6%",y2:"-21.639%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#A2ABB9"}),React.createElement("stop",{offset:1,stopColor:"#E7EAF0"})),React.createElement("linearGradient",{id:"img-broken_svg__m",x1:"113.805%",y1:"123.201%",x2:"30.832%",y2:"0%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#A2ABB9"}),React.createElement("stop",{offset:1,stopColor:"#E7EAF0"})),React.createElement("linearGradient",{id:"img-broken_svg__n",x1:"110.007%",y1:"128.49%",x2:"50%",y2:"0%",gradientUnits:"objectBoundingBox"},React.createElement("stop",{offset:0,stopColor:"#A2ABB9"}),React.createElement("stop",{offset:1,stopColor:"#E7EAF0"})),React.createElement("linearGradient",{id:"img-broken_svg__o",x1:92.534,y1:94.384,x2:55.523,y2:19.166,gradientUnits:"userSpaceOnUse"},React.createElement("stop",{offset:0,stopColor:"#A2ABB9"}),React.createElement("stop",{offset:1,stopColor:"#E7EAF0"})),React.createElement("path",{id:"img-broken_svg__a",d:"M0 0h600v600H0z"})));var ye="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjAwIiBoZWlnaHQ9IjYwMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTAgMGg2MDB2NjAwSDB6Ii8+PG1hc2sgaWQ9ImIiIGZpbGw9IiNmZmYiPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48L21hc2s+PGcgbWFzaz0idXJsKCNiKSI+PHBhdGggc3R5bGU9ImZpbGw6I2YzZjNmYSIgb3BhY2l0eT0iLjYiIGQ9Ik01MjAuODIgMjc2LjQxMWMuNyA3LjEwMyAxLjA1OCAxNC4zMDUgMS4wNTggMjEuNTg5IDAgMTIyLjA0LTEwMC41NCAyMjEtMjI0LjUxIDIyMS05OS4xNTkgMC0xODMuMzI4LTYzLjMxMy0yMTMuMDQ3LTE1MS4xMDdoLTguNDI2Yy0zLjQgMC02LjE3LTIuNzYtNi4xNy02LjE2QTYuMTY4IDYuMTY4IDAgMCAxIDczLjYwOCAzNTZIODRjNy4xOCAwIDEzLTUuODIgMTMtMTN2LTFjMC03LjE4LTUuODItMTMtMTMtMTNoLTguOTVsLS4wMjMtLjE2MUg1Mi44NTVjLTUuNjggMC0xMC4yOC00LjYtMTAuMjgtMTAuMjhzNC42LTEwLjI4IDEwLjI4LTEwLjI4aDIwLjI0MUEyMjEuMDQyIDIyMS4wNDIgMCAwIDEgNzIuODU4IDI5OGMwLTMyLjYyOSA3LjE4Ny02My42MDggMjAuMDg2LTkxLjQ4Nkg1N2MtMTUuNDYgMC0yOC0xMi41NDEtMjgtMjguMDAxdi0xLjU2YzAtMTQuOTEzIDExLjY3LTI3LjExIDI2LjM3My0yNy45NTNIMTgyYzUuNTIgMCAxMC00LjQ4IDEwLTEwcy00LjQ4LTEwLTEwLTEwaC0yOS4yOTRsLjczMi0uNjA1aC0xNC41OWMtMTAuNDkgMC0xOS04LjUxLTE5LTE5di0xLjA2YzAtMTAuNDkgOC41MS0xOSAxOS0xOWg4NC4zOTJDMjQ2LjQ0OCA4MS4zNDUgMjcxLjM5MyA3NyAyOTcuMzY4IDc3YzUxLjAyMyAwIDk4LjA3NyAxNi43NjMgMTM1Ljc4NyA0NUg0MThjLTcuMTggMC0xMyA1LjgyLTEzIDEzdjFjMCA3LjE4IDUuODIgMTMgMTMgMTNoNDUuMTY2YTIyMi40NzggMjIyLjQ3OCAwIDAgMSAyMy4yNTMgMjkuNzYzaDIxLjQ2MWM3LjczIDAgMTQgNi4yNyAxNCAxNHYuNzhjMCA2LjM4Ny00LjI4MSAxMS43NzctMTAuMTI4IDEzLjQ1N0g0OTJjLTguODQgMC0xNiA3LjE2LTE2IDE2djVjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjcuOTAxYzYuOTUyIDEuNzQxIDEyLjA5NyA4LjAyOCAxMi4wOTcgMTUuNTIxdi44OWMwIDguODQtNy4xNiAxNi0xNiAxNnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjYykiIGQ9Ik0xNDcuOTc3IDE4Ny40NjhjLTE0LjY0IDAtMjYuNTEgMTEuODctMjYuNTEgMjYuNWgtNS4zNGMtNi43MyAwLTEyLjE5IDUuOTMtMTIuMTkgMTMuMjVzNS40NiAxMy4yNSAxMi4xOSAxMy4yNWg2NS42NWM2Ljc0IDAgMTIuMTktNS45MyAxMi4xOS0xMy4yNXMtNS40NS0xMy4yNS0xMi4xOS0xMy4yNWgtNy4zMWMwLTE0LjYzLTExLjg2LTI2LjUtMjYuNDktMjYuNXoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjZCkiIGQ9Ik0zMTMuMDg4IDE0OC4xMjhjMCA1LjI1IDMuOTEgOS41IDguNzQgOS41aDQ3LjA3YzQuODMgMCA4Ljc0LTQuMjUgOC43NC05LjVzLTMuOTEtOS41LTguNzQtOS41aC01LjI0YzAtMTAuNS04LjUxLTE5LTE5LTE5cy0xOSA4LjUtMTkgMTloLTMuODNjLTQuODMgMC04Ljc0IDQuMjUtOC43NCA5LjV6Ii8+PHBhdGggc3R5bGU9ImZpbGw6I2U3ZWFmMCIgZD0iTTUwOCA0NTMuNWMwIDExLjAzNi0xOS4xMiAyMC40MzgtNDUuODY5IDIzLjk4OC02LjM4IDEuODg1LTEzLjU1NiAzLjY2My0yMS40MzggNS4zMTVBMTYuODIgMTYuODIgMCAwIDEgNDQxIDQ4NmMwIDI0LjMtNTIuODQgNDQtMTE4IDQ0LTU4LjYyMyAwLTEwNy4yNzQtMTUuOTQ2LTExNi40NDUtMzYuODQxQzEyOC4zMjggNDg3LjIxNSA3MyA0NzIuNTkgNzMgNDU1LjVjMC0yMi4zNiA5NC43MS00MC41IDIxMS41LTQwLjUgNjEuMzYzIDAgMTE2LjYzMSA1LjAwOCAxNTUuMjY5IDEzLjAwNEM0NzcuNTYzIDQyOC4yNTMgNTA4IDQzOS41NzUgNTA4IDQ1My41eiIvPjxnIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZmlsbD0idXJsKCNlKSIgZD0iTTM1NiA2MmMtLjEyLTEuMzYtLjIzLTIuNzgtLjMxLTQuMjYtLjA5LTEuMjMtLjE2LTIuNjMtLjIyLTQuMTctLjA2LTEuNTUtLjA5LTMuMDgtLjA5LTQuNlYzOC42Nmw5Ljc0LS4xM2gxLjE5Yy40MiAwIC43OS0uMDIgMS4xMy0uMDYuNDEgMCAuODEtLjAyIDEuMTgtLjA2YTUuMzc0IDUuMzc0IDAgMCAwIDIuNDQtMS45NWMuNjMtLjg4Ljk0LTEuOS45NC0zLjA1bC0uMTMtLjgtLjI0LS45OWMtLjEzLS4zNy0uMjMtLjczLS4zMi0xLjA1bC0xLjA2LTIuMWMuMjEtLjc0LjMxLTEuNDQuMzEtMi4xIDAtMS42MS0uNDUtMy4wMy0xLjM3LTQuMjYtLjkyLTEuMjMtMi4wOS0yLjEtMy41LTIuNmwtNy44OC0xNS4yNWE3LjIyIDcuMjIgMCAwIDAtMi42NS0zLjA5QzM1My45Ny4zOSAzNTIuNjMgMCAzNTEuMTMgMGMtMS43MSAwLTMuMTEuNTEtNC4xOSAxLjU0LTEuMDggMS4wMy0yLjAyIDIuMjctMi44MiAzLjcxaC0uMDZsLTkuODEgMTcuOTdjLS42Ny41OC0xLjIyIDEuMjYtMS42NSAyLjA0LS40NS43OC0uNzEgMS42Mi0uNzkgMi41M2wtMS41NiAzLjU4Yy0uMDguMjEtLjE0LjQxLS4xOS42MiAwIDAtLjA2LjQzLS4wNi42OCAwIDEuNDQuNDYgMi42OCAxLjM3IDMuNzRhNi41MzUgNi41MzUgMCAwIDAgMy40NCAyLjA2bDcuMDYuMzdjLjM0LjU4Ljc2IDEuMDMgMS4yOCAxLjM2LjUzLjMzIDEuMTQuNSAxLjg1LjUuODggMCAxLjY3LS4zMSAyLjM4LS45M3Y5LjQ1YzAgMi43MS0uMDMgNC44OS0uMDcgNi41MS0uMDQgMS42My0uMDggMi45Mi0uMTIgMy44NkwzNDcgNjJoOXoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkyIDM3MCkiLz48cGF0aCBmaWxsPSJ1cmwoI2YpIiBkPSJNMzg1IDYwLjdjLjg4IDAgMS42Ny0uMzEgMi4zOC0uOTN2OS40NWMwIDIuNzEtLjAzIDQuODktLjA3IDYuNTEtLjA0IDEuNjMtLjA4IDIuOTItLjEyIDMuODZMMzg3IDgyaDljLS4xMi0xLjM2LS4yMy0yLjc4LS4zMS00LjI2LS4wOS0xLjIzLS4xNi0yLjYzLS4yMi00LjE3LS4wNi0xLjU1LS4wOS0zLjA4LS4wOS00LjZWNTguNjZsOS43NC0uMTNoMS4xOWMuNDIgMCAuNzktLjAyIDEuMTMtLjA2LjQxIDAgLjgxLS4wMiAxLjE4LS4wNmE1LjM3NCA1LjM3NCAwIDAgMCAyLjQ0LTEuOTVjLjYzLS44OC45NC0xLjkuOTQtMy4wNWwtLjEzLS44LS4yNC0uOTljLS4xMy0uMzctLjIzLS43My0uMzItMS4wNWwtMS4wNi0yLjFjLjIxLS43NC4zMS0xLjQ0LjMxLTIuMSAwLTEuNjEtLjQ1LTMuMDMtMS4zNy00LjI2LS45Mi0xLjIzLTIuMDktMi4xLTMuNS0yLjZsLTcuODgtMTUuMjVhNy4yMiA3LjIyIDAgMCAwLTIuNjUtMy4wOWMtMS4xOS0uNzgtMi41My0xLjE3LTQuMDMtMS4xNy0xLjcxIDAtMy4xMS41MS00LjE5IDEuNTQtMS4wOCAxLjAzLTIuMDIgMi4yNy0yLjgyIDMuNzFoLS4wNmwtOS44MSAxNy45N2MtLjY3LjU4LTEuMjIgMS4yNi0xLjY1IDIuMDQtLjQ1Ljc4LS43MSAxLjYyLS43OSAyLjUzbC0xLjU2IDMuNThjLS4wOC4yMS0uMTQuNDEtLjE5LjYyIDAgMC0uMDYuNDMtLjA2LjY4IDAgMS40NC40NiAyLjY4IDEuMzcgMy43NGE2LjUzNSA2LjUzNSAwIDAgMCAzLjQ0IDIuMDZsNy4wNi4zN2MuMzQuNTguNzYgMS4wMyAxLjI4IDEuMzYuNTMuMzMgMS4xNC41IDEuODUuNXoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkyIDM3MCkiLz48cGF0aCBmaWxsPSJ1cmwoI2cpIiBkPSJNMzUuMzQgMS42NkMzMy42Ny41NSAzMS43OCAwIDI5LjY4IDBjLTIuNCAwLTQuMzYuNzMtNS44OSAyLjE5LTEuNTIgMS40Ni0yLjgzIDMuMjEtMy45NSA1LjI2aC0uMDlMNS45NyAzMi45NmMtLjk0LjgxLTEuNzEgMS43OC0yLjMyIDIuODlhOC44NDUgOC44NDUgMCAwIDAtMS4xIDMuNTlsLTIuMiA1LjA5Yy0uMTEuMjktLjIuNTgtLjI2Ljg3IDAgMC0uMDkuNjItLjA5Ljk3IDAgMi4wNC42NCAzLjgxIDEuOTMgNS4zYTkgOSAwIDAgMCA0LjgzIDIuOTNsOS45Mi41M2MuNDcuODIgMS4wNyAxLjQ2IDEuOCAxLjkzczEuNi43IDIuNTkuN2MxLjIzIDAgMi4zNC0uNDQgMy4zNC0xLjMydjEzLjQxYzAgMy44Ni0uMDMgNi45NS0uMDkgOS4yNS0uMDYgMi4zMS0uMTIgNC4xNC0uMTggNS40OUwyMy44OCA4OGgxMi42NGMtLjE3LTEuOTMtLjMyLTMuOTQtLjQ0LTYuMDUtLjExLTEuNzUtLjIxLTMuNzMtLjMtNS45MnMtLjEzLTQuMzYtLjEzLTYuNTNWNTQuODdsMTMuNjktLjE4aDEuNjdjLjU5IDAgMS4xMS0uMDIgMS41OC0uMDkuNTkgMCAxLjE0LS4wMiAxLjY3LS4wOGE3LjU5OSA3LjU5OSAwIDAgMCAzLjQyLTIuNzdjLjg4LTEuMjUgMS4zMi0yLjcgMS4zMi00LjM0bC0uMTgtMS4xMy0uMzUtMS40Yy0uMTctLjUzLS4zMi0xLjAzLS40NC0xLjVsLTEuNDktMi45N2MuMjktMS4wNi40NC0yLjA1LjQ0LTIuOTggMC0yLjI4LS42NC00LjMtMS45My02LjA1cy0yLjkzLTIuOTgtNC45Mi0zLjY5TDM5LjA3IDYuMDVjLS44Mi0xLjgyLTIuMDctMy4yOC0zLjczLTQuMzl6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5MiAzNzApIi8+PC9nPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0idXJsKCNoKSIgb3BhY2l0eT0iLjUiIGQ9Ik0xOTUuMTcgMzM5LjAwOCAzMzYgMjU5LjExOGwtMTgwLjc5LTU2LjExTDMgMjQxLjA0OGwxOTIuMTcgOTcuOTZ6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAgMTk0Ljk5MikiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjaSkiIGQ9Im0xMjAuMTkgMjM4LjQ2OCAxNi43Ni02Ny0yMy4yMy01MC43TDE0NyA4Ny4wMDhsLTEzNy44MS44QTkuMjQyIDkuMjQyIDAgMCAwIDAgOTcuMDU4djEzMi4xNmMwIDUuMTIgNC4xNSA5LjI1IDkuMjYgOS4yNWwxMDMuNjEgNC41NCA3LjMyLTQuNTR6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAgMTk0Ljk5MikiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjaikiIGQ9Ik0wIDIzMy43MjhjMCA1LjEzIDQuMTMgOS4yOCA5LjIyIDkuMjhoMTAzLjE5bDE3LjU5LTcwLjgzLTI0Ljk1LTUyLjY1TDEzMCA5My4wMDhsLTEyMC44NS44Yy01LjA1LjA0LTkuMTUgNC4xOC05LjE1IDkuMjh2MTMwLjY0eiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTgwIDE5NC45OTIpIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSJ1cmwoI2spIiBkPSJNMTI5IDE3Ny40MDhzLTM5LjE1IDI1LjQxLTM5Ljg3IDI1LjQ3Yy0xNS41OS0xMy42MS00MS4xNy0zOS41NS00MS4xNy0zOS41NS0yLjk1LTMuMDEtOC4xMS0zLjExLTExLjE5LS4yTDAgMjE0LjE1OHYxOC44YzAgNS4wNSAzLjExIDEwLjA1IDEwLjEgMTAuMDVoMTAyLjg0bDEwLjA1LTQwLjgxIDYuMDEtMjQuNzl6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAgMTk0Ljk5MikiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjbCkiIGQ9Im0xNjEuMTE0IDEyMS41ODggMTAuMjEgNTAuOS0zOS4xNSA3Mi42NiA3Ny45NyAyMS4yYzUuMzQgMi4xMiAxMS4zMi0xLjA1IDEyLjUxLTYuNjNsMzYuMTQtMTM0LjA5YzEuMDMtNC44Mi0xLjk1LTkuNTgtNi43Ni0xMC44MWwtNTMuODEtMTMuODEtMzcuMTEgMjAuNTh6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAgMTk0Ljk5MikiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjbSkiIGQ9Im0xNTMuNTMgMTI1LjIzMyAxMC4yMSA1MC44OS0zNy43NCA2Ny4zNiA3Ny45OCAyMS4yMWM1LjMzIDIuMTIgMTEuMzEtMS4wNCAxMi41LTYuNjNsMzQuNzMtMTI4LjhjMS4wMy00LjgyLTEuOTYtOS41OC02Ljc2LTEwLjgxbC01My44MS0xMy44MS0zNy4xMSAyMC41OXoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCAxOTQuOTkyKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0idXJsKCNuKSIgZD0iTTE4MS4zNDQgMTc0LjM2OGMtMi0zLjI3LTYuMjMtNC4zMy05LjUyLTIuMzlsLTguMDkgNC4xNi0zNy42NSA2Ny4zN3M2Ny4yMiAxOC43IDc1LjEyIDIwLjQ3YzcuOTEgMS43NiAxMy43LjU0IDE0Ljg5LTUuMDhsMy4zNy0xMS41MS0zOC4xMi03My4wMnoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCAxOTQuOTkyKSIvPjxwYXRoIHN0eWxlPSJmaWxsOiNmZmYiIGQ9Ik0yMjMuMTA0IDE1MS42OTdjMC05LjMyLTcuNTctMTYuODgtMTYuOS0xNi44OC05LjMzIDAtMTYuODkgNy41Ni0xNi44OSAxNi44OHM3LjU2IDE2Ljg4IDE2Ljg5IDE2Ljg4YzkuMzMgMCAxNi45LTcuNTYgMTYuOS0xNi44OHoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCAxOTQuOTkyKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0idXJsKCNvKSIgZD0ibTUwLjkyMSAzNy44MjMgMTIuMzg2LTYuMDQxIDExLjIwOSAyMi45ODItNy40NTItMzIuNjM3LTEyLjU5MiA2LjE0Mkw0Mi4xOTcgNi44NjRsOC43MjQgMzAuOTU5eiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTgwIDE5NC45OTIpIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSJ1cmwoI3ApIiBkPSJtMjE3LjU5OCA0OC44OTUgMTcuODg4IDE3LjE4NC0zMC45NDUgMjMuODE3czQ3LjkyOS0yMi4zNyA0Ni45OTYtMjMuNzA5Yy0uOTI1LTEuMzM1LTE4LjU3LTE2Ljk5Mi0xOC41Ny0xNi45OTJsMjQuMTM0LTI1LjUzNy0zOS41MDMgMjUuMjM2eiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTgwIDE5NC45OTIpIi8+PC9nPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iaSIgeDE9IjE3OC41NzklIiB5MT0iMTE0LjQxJSIgeDI9Ii02Ny42JSIgeTI9Ii0yMS42MzklIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjQTJBQkI5Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRTdFQUYwIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InAiIHgxPSIxOTguOTIzIiB5MT0iMTUxLjY4IiB4Mj0iMjUzLjU4OCIgeTI9IjQzLjI0NSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0U3RUFGMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJkIiB4MT0iMTQ0LjU4OCUiIHkxPSI5OC44JSIgeDI9IjI5LjUxNiUiIHkyPSIxMDAlIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRTBFNUVGIiBzdG9wLW9wYWNpdHk9IjAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNFMEU1RUYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZSIgeDE9IjE0NC41ODglIiB5MT0iOTguOCUiIHgyPSIyOS41MTYlIiB5Mj0iMTAwJSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0UwRTVFRiIgc3RvcC1vcGFjaXR5PSIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRTBFNUVGIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImYiIHgxPSIxNDQuNTg4JSIgeTE9Ijk4LjglIiB4Mj0iMjkuNTE2JSIgeTI9IjEwMCUiIGdyYWRpZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNFMEU1RUYiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0UwRTVFRiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJnIiB4MT0iMTQ0LjU4OCUiIHkxPSI5OC44JSIgeDI9IjI5LjUxNiUiIHkyPSIxMDAlIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRTBFNUVGIiBzdG9wLW9wYWNpdHk9IjAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNFMEU1RUYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaCIgeDE9IjUwJSIgeTE9IjMwLjM4NyUiIHgyPSItMzEuMjE1JSIgeTI9Ii02MC4yMjglIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRThFQkYxIiBzdG9wLW9wYWNpdHk9Ii4yNCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJjIiB4MT0iMTQ0LjU4OCUiIHkxPSI5OC44JSIgeDI9IjI5LjUxNiUiIHkyPSIxMDAlIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRTBFNUVGIiBzdG9wLW9wYWNpdHk9IjAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNFMEU1RUYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaiIgeDE9IjEzNy40MDglIiB5MT0iMTE1LjUxOCUiIHgyPSI2NC4yMjUlIiB5Mj0iLTkuNjY2JSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0U3RUFGMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJrIiB4MT0iOTMuNTUlIiB5MT0iMTMyLjc4MiUiIHgyPSIyOS41NSUiIHkyPSIxOS45MDElIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjQTJBQkI5Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRTdFQUYwIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImwiIHgxPSIxNzguNTc5JSIgeTE9IjExNC40MSUiIHgyPSItNjcuNiUiIHkyPSItMjEuNjM5JSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0U3RUFGMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJtIiB4MT0iMTEzLjgwNSUiIHkxPSIxMjMuMjAxJSIgeDI9IjMwLjgzMiUiIHkyPSIwJSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0U3RUFGMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJuIiB4MT0iMTEwLjAwNyUiIHkxPSIxMjguNDklIiB4Mj0iNTAlIiB5Mj0iMCUiIGdyYWRpZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNBMkFCQjkiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNFN0VBRjAiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0ibyIgeDE9IjkyLjUzNCIgeTE9Ijk0LjM4NCIgeDI9IjU1LjUyMyIgeTI9IjE5LjE2NiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0U3RUFGMCIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggaWQ9ImEiIGQ9Ik0wIDBoNjAwdjYwMEgweiIvPjwvZGVmcz48L3N2Zz4=",ne=function(he){var Pe=he.url,Bn=Pe===void 0?"":Pe,vt=he.imgRef,Tn=he.canvasRef,bn=he.activeCanvasRef,On=he.clientSize,Nn=he.imagePos,dr=he.onLoad,mr=(0,g.useState)(!1),yr=s()(mr,2),Ln=yr[0],ea=yr[1],Cr=(0,g.useState)(!0),ir=s()(Cr,2),Sr=ir[0],Ir=ir[1],ia=function(tr){Ir(!1),dr(tr)},Kn=function(tr){tr.stopPropagation(),vt!=null&&vt.current&&(vt.current.src=Bn,Ir(!0),ea(!1))},Yr=function(tr){var sr=tr.target;sr.src=ye,Ir(!1),ea(!0)},qr=Bn.indexOf("aliyuncs.com")>-1?"anonymous":void 0;return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("img",{ref:vt,src:Bn,alt:"pic",crossOrigin:qr,style:{width:On.width,height:On.height},onLoad:ia,onError:Yr}),(0,x.jsx)("canvas",{ref:Tn,draggable:!1,onContextMenu:function(tr){return tr.preventDefault()},className:"dds-annotator-imageview-canvas"}),(0,x.jsx)("canvas",{ref:bn,draggable:!1,onContextMenu:function(tr){return tr.preventDefault()},className:"dds-annotator-imageview-canvas"}),Ln&&(0,x.jsxs)("div",{className:"dds-annotator-imageview-reload-cover",onClick:Kn,onDoubleClick:Kn,style:{left:Nn.current.x,top:Nn.current.y,width:On.width,height:On.height},children:[(0,x.jsx)("img",{src:ye,alt:"error-pic"}),(0,x.jsx)("div",{className:"content-box",children:(0,x.jsx)(C.ZP,{ghost:!0,type:"primary",className:"reload-trigger",shape:"circle",size:"small",icon:(0,x.jsx)(Qe.Z,{})})})]}),Sr&&(0,x.jsx)("div",{className:"dds-annotator-imageview-reload-cover",style:{backgroundColor:"#f6f6f6",left:Nn.current.x,top:Nn.current.y,width:On.width,height:On.height},children:(0,x.jsx)(ht.Z,{className:"reload-trigger"})})]})},H=e(39875),R=e(32814),P=e(45060),ae=e(23707),Q=e(17410),ie=(0,g.memo)(function(Ue){var he=Ue.AIAnnotation,Pe=Ue.modelOptions,Bn=Ue.selectedModel,vt=Ue.onSelectModel,Tn=Ue.onCloseModal,bn=(0,z.bU)(),On=bn.localeText,Nn=Pe.length*220+(Pe.length+1)*20,dr=(0,g.useMemo)(function(){return!!(he&&Pe&&Pe.length>1&&!Bn)},[he,Pe,Bn]);return(0,x.jsx)(A,{children:(0,x.jsx)(n.Z,{open:dr,title:On("DDSAnnotator.smart.modelSelectModal.title"),width:Nn,onCancel:Tn,footer:null,centered:!0,destroyOnClose:!0,children:(0,x.jsx)("div",{className:"dds-annotator-model-selector-modal",children:Pe.map(function(mr,yr){var Ln=Q.TR[mr];return Ln?(0,x.jsxs)("div",{className:c()("dds-annotator-model-selector-modal-option",{"dds-annotator-model-selector-modal-option-hightlight":Ln.hightlight}),onClick:function(){return vt(mr)},children:[(0,x.jsx)(H.Z,{className:"dds-annotator-model-selector-modal-option-icon",component:Ln.icon}),(0,x.jsx)("div",{className:"dds-annotator-model-selector-modal-option-name",children:On(Ln.name)}),(0,x.jsx)("div",{className:"dds-annotator-model-selector-modal-option-description",children:On(Ln.description)}),Ln.hightlight&&(0,x.jsx)(R.Z,{color:"geekblue",className:"dds-annotator-model-selector-modal-option-tag",children:"New"})]},yr):(0,x.jsx)(x.Fragment,{})})})})})}),me=ie,je=e(23605),Ce=e(2556),Se=e(82968),We=e(37617),re=e(28506),se=e(18695),J=Object.defineProperty,de=Object.getOwnPropertySymbols,xe=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable,Ne=(Ue,he,Pe)=>he in Ue?J(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,Oe=(Ue,he)=>{for(var Pe in he||(he={}))xe.call(he,Pe)&&Ne(Ue,Pe,he[Pe]);if(de)for(var Pe of de(he))ce.call(he,Pe)&&Ne(Ue,Pe,he[Pe]);return Ue};const we=Ue=>g.createElement("svg",Oe({width:10,height:10,fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.464 5.65A1 1 0 0 0 2.88 7.064l2.12-2.12 2.122 2.12A1 1 0 0 0 8.535 5.65L5.713 2.828a1 1 0 0 0-1.42-.006L1.464 5.65Z",fill:"#fff"}));var Re="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjQ2NCA1LjY1QTEgMSAwIDAgMCAyLjg4IDcuMDY0bDIuMTItMi4xMiAyLjEyMiAyLjEyQTEgMSAwIDAgMCA4LjUzNSA1LjY1TDUuNzEzIDIuODI4YTEgMSAwIDAgMC0xLjQyLS4wMDZMMS40NjQgNS42NVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",st=Object.defineProperty,tt=Object.getOwnPropertySymbols,Ye=Object.prototype.hasOwnProperty,ke=Object.prototype.propertyIsEnumerable,Be=(Ue,he,Pe)=>he in Ue?st(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,it=(Ue,he)=>{for(var Pe in he||(he={}))Ye.call(he,Pe)&&Be(Ue,Pe,he[Pe]);if(tt)for(var Pe of tt(he))ke.call(he,Pe)&&Be(Ue,Pe,he[Pe]);return Ue};const Ve=Ue=>g.createElement("svg",it({viewBox:"0 0 15 15",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("g",{clipPath:"url(#layer_svg__a)"},g.createElement("path",{d:"m.57 6.625 5.805 3.48a2.182 2.182 0 0 0 2.25 0l5.805-3.48a1.163 1.163 0 0 0 0-1.995L8.625 1.144a2.18 2.18 0 0 0-2.25 0L.57 4.625a1.163 1.163 0 0 0 0 1.995v.005ZM7.34 2.75a.313.313 0 0 1 .32 0l4.789 2.875L7.66 8.5a.313.313 0 0 1-.322 0L2.551 5.625 7.34 2.75Z"}),g.createElement("path",{d:"M8.304 11.77a1.562 1.562 0 0 1-1.608 0L1.42 8.603a.937.937 0 0 0-.965 1.607l5.276 3.164a3.43 3.43 0 0 0 3.538 0l5.276-3.166a.937.937 0 1 0-.965-1.605l-5.276 3.165Z"})),g.createElement("defs",null,g.createElement("clipPath",{id:"layer_svg__a"},g.createElement("path",{fill:"#fff",d:"M0 0h15v15H0z"}))));var xt="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTUgMTUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJtLjU3IDYuNjI1IDUuODA1IDMuNDhhMi4xODIgMi4xODIgMCAwIDAgMi4yNSAwbDUuODA1LTMuNDhhMS4xNjMgMS4xNjMgMCAwIDAgMC0xLjk5NUw4LjYyNSAxLjE0NGEyLjE4IDIuMTggMCAwIDAtMi4yNSAwTC41NyA0LjYyNWExLjE2MyAxLjE2MyAwIDAgMCAwIDEuOTk1di4wMDVaTTcuMzQgMi43NWEuMzEzLjMxMyAwIDAgMSAuMzIgMGw0Ljc4OSAyLjg3NUw3LjY2IDguNWEuMzEzLjMxMyAwIDAgMS0uMzIyIDBMMi41NTEgNS42MjUgNy4zNCAyLjc1WiIvPjxwYXRoIGQ9Ik04LjMwNCAxMS43N2ExLjU2MiAxLjU2MiAwIDAgMS0xLjYwOCAwTDEuNDIgOC42MDNhLjkzNy45MzcgMCAwIDAtLjk2NSAxLjYwN2w1LjI3NiAzLjE2NGEzLjQzIDMuNDMgMCAwIDAgMy41MzggMGw1LjI3Ni0zLjE2NmEuOTM3LjkzNyAwIDEgMC0uOTY1LTEuNjA1bC01LjI3NiAzLjE2NVoiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDE1djE1SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",_t=Object.defineProperty,Ot=Object.getOwnPropertySymbols,wt=Object.prototype.hasOwnProperty,Yt=Object.prototype.propertyIsEnumerable,bt=(Ue,he,Pe)=>he in Ue?_t(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,ze=(Ue,he)=>{for(var Pe in he||(he={}))wt.call(he,Pe)&&bt(Ue,Pe,he[Pe]);if(Ot)for(var Pe of Ot(he))Yt.call(he,Pe)&&bt(Ue,Pe,he[Pe]);return Ue};const nt=Ue=>g.createElement("svg",ze({className:"palette_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16},Ue),g.createElement("path",{d:"M512 102.39c-226.202 0-409.6 183.367-409.6 409.6S285.798 921.62 512 921.62a408.556 408.556 0 0 0 156.672-31.2 68.332 68.332 0 0 0 22.16-111.402l-48.057-48.056a68.28 68.28 0 0 1 48.261-116.542l162.304-.04a68.26 68.26 0 0 0 68.27-68.26v-34.13c-.01-226.243-183.378-409.6-409.61-409.6zm341.33 443.73-162.304.03c-75.305 0-136.53 61.225-136.53 136.53 0 36.485 14.203 70.738 39.997 96.543l48.067 48.056a338.166 338.166 0 0 1-130.57 26.082c-188.201 0-341.33-153.14-341.33-341.371S323.799 170.65 512 170.65s341.33 153.098 341.33 341.33v34.14z",fill:"#fff"}),g.createElement("path",{d:"M443.73 307.19a68.27 68.27 0 1 0 136.54 0 68.27 68.27 0 1 0-136.54 0ZM300.503 555.254a68.198 68.198 0 0 1 93.225 24.996 68.3 68.3 0 0 1-24.934 93.266 68.352 68.352 0 0 1-93.297-24.996 68.321 68.321 0 0 1 25.006-93.266zM621.056 409.59a68.29 68.29 0 1 0 136.581 0 68.29 68.29 0 1 0-136.581 0ZM300.503 468.716a68.26 68.26 0 0 1-24.965-93.266 68.25 68.25 0 1 1 118.2 68.239 68.27 68.27 0 0 1-93.235 25.027z",fill:"#fff"}));var St="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik01MTIgMTAyLjM5Yy0yMjYuMjAyIDAtNDA5LjYgMTgzLjM2Ny00MDkuNiA0MDkuNlMyODUuNzk4IDkyMS42MiA1MTIgOTIxLjYyYTQwOC41NTYgNDA4LjU1NiAwIDAgMCAxNTYuNjcyLTMxLjIgNjguMzMyIDY4LjMzMiAwIDAgMCAyMi4xNi0xMTEuNDAybC00OC4wNTctNDguMDU2YTY4LjI4IDY4LjI4IDAgMCAxIDQ4LjI2MS0xMTYuNTQybDE2Mi4zMDQtLjA0YTY4LjI2IDY4LjI2IDAgMCAwIDY4LjI3LTY4LjI2di0zNC4xM2MtLjAxLTIyNi4yNDMtMTgzLjM3OC00MDkuNi00MDkuNjEtNDA5LjZ6bTM0MS4zMyA0NDMuNzMtMTYyLjMwNC4wM2MtNzUuMzA1IDAtMTM2LjUzIDYxLjIyNS0xMzYuNTMgMTM2LjUzIDAgMzYuNDg1IDE0LjIwMyA3MC43MzggMzkuOTk3IDk2LjU0M2w0OC4wNjcgNDguMDU2YTMzOC4xNjYgMzM4LjE2NiAwIDAgMS0xMzAuNTcgMjYuMDgyYy0xODguMjAxIDAtMzQxLjMzLTE1My4xNC0zNDEuMzMtMzQxLjM3MVMzMjMuNzk5IDE3MC42NSA1MTIgMTcwLjY1czM0MS4zMyAxNTMuMDk4IDM0MS4zMyAzNDEuMzN2MzQuMTR6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTQ0My43MyAzMDcuMTlhNjguMjcgNjguMjcgMCAxIDAgMTM2LjU0IDAgNjguMjcgNjguMjcgMCAxIDAtMTM2LjU0IDBaTTMwMC41MDMgNTU1LjI1NGE2OC4xOTggNjguMTk4IDAgMCAxIDkzLjIyNSAyNC45OTYgNjguMyA2OC4zIDAgMCAxLTI0LjkzNCA5My4yNjYgNjguMzUyIDY4LjM1MiAwIDAgMS05My4yOTctMjQuOTk2IDY4LjMyMSA2OC4zMjEgMCAwIDEgMjUuMDA2LTkzLjI2NnpNNjIxLjA1NiA0MDkuNTlhNjguMjkgNjguMjkgMCAxIDAgMTM2LjU4MSAwIDY4LjI5IDY4LjI5IDAgMSAwLTEzNi41ODEgMFpNMzAwLjUwMyA0NjguNzE2YTY4LjI2IDY4LjI2IDAgMCAxLTI0Ljk2NS05My4yNjYgNjguMjUgNjguMjUgMCAxIDEgMTE4LjIgNjguMjM5IDY4LjI3IDY4LjI3IDAgMCAxLTkzLjIzNSAyNS4wMjd6IiBmaWxsPSIjZmZmIi8+PC9zdmc+",ut=e(2657),Vt=e.n(ut),Nt,At=function(Ue){return Ue.Tool="DDSAnnotator.shortcuts.tools",Ue.GeneralAction="DDSAnnotator.shortcuts.general",Ue.ViewAction="DDSAnnotator.shortcuts.viewControl",Ue.AnnotationAction="DDSAnnotator.shortcuts.annotsControl",Ue}({}),Ie=function(Ue){return Ue[Ue.RectangleTool=0]="RectangleTool",Ue[Ue.PolygonTool=1]="PolygonTool",Ue[Ue.SkeletonTool=2]="SkeletonTool",Ue[Ue.DragTool=3]="DragTool",Ue[Ue.MaskTool=4]="MaskTool",Ue[Ue.SmartAnnotation=5]="SmartAnnotation",Ue[Ue.Undo=6]="Undo",Ue[Ue.Redo=7]="Redo",Ue[Ue.RepeatPrevious=8]="RepeatPrevious",Ue[Ue.DeleteAll=9]="DeleteAll",Ue[Ue.NextImage=10]="NextImage",Ue[Ue.PreviousImage=11]="PreviousImage",Ue[Ue.Save=12]="Save",Ue[Ue.Accept=13]="Accept",Ue[Ue.Reject=14]="Reject",Ue[Ue.ZoomIn=15]="ZoomIn",Ue[Ue.ZoomOut=16]="ZoomOut",Ue[Ue.Reset=17]="Reset",Ue[Ue.HideCurrObject=18]="HideCurrObject",Ue[Ue.HideCurrCategory=19]="HideCurrCategory",Ue[Ue.HideAll=20]="HideAll",Ue[Ue.PanImage=21]="PanImage",Ue[Ue.DeleteCurrObject=22]="DeleteCurrObject",Ue[Ue.SaveCurrObject=23]="SaveCurrObject",Ue[Ue.CancelCurrObject=24]="CancelCurrObject",Ue}({}),Ee=(Nt={},Vt()(Nt,Ie.RectangleTool,{name:"RectangleTool",type:At.Tool,shortcut:["r"],descTextKey:"DDSAnnotator.shortcuts.tools.rectangle"}),Vt()(Nt,Ie.PolygonTool,{name:"PolygonTool",type:At.Tool,shortcut:["p"],descTextKey:"DDSAnnotator.shortcuts.tools.polygon"}),Vt()(Nt,Ie.SkeletonTool,{name:"SkeletonTool",type:At.Tool,shortcut:["s"],descTextKey:"DDSAnnotator.shortcuts.tools.skeleton"}),Vt()(Nt,Ie.MaskTool,{name:"MaskTool",type:At.Tool,shortcut:["m"],descTextKey:"DDSAnnotator.shortcuts.tools.mask"}),Vt()(Nt,Ie.DragTool,{name:"DragTool",type:At.Tool,shortcut:["d"],descTextKey:"DDSAnnotator.shortcuts.tools.drag"}),Vt()(Nt,Ie.SmartAnnotation,{name:"SmartAnnotation",type:At.GeneralAction,shortcut:["a"],descTextKey:"DDSAnnotator.shortcuts.general.smart"}),Vt()(Nt,Ie.Undo,{name:"Undo",type:At.GeneralAction,shortcut:["ctrl.z","meta.z"],descTextKey:"DDSAnnotator.shortcuts.general.undo"}),Vt()(Nt,Ie.Redo,{name:"Redo",type:At.GeneralAction,shortcut:["ctrl.shift.z","meta.shift.z"],descTextKey:"DDSAnnotator.shortcuts.general.redo"}),Vt()(Nt,Ie.RepeatPrevious,{name:"RepeatPrevious",type:At.GeneralAction,shortcut:["ctrl.r","meta.r"],descTextKey:"DDSAnnotator.shortcuts.general.repeatPrevious"}),Vt()(Nt,Ie.DeleteAll,{name:"DeleteAll",type:At.GeneralAction,shortcut:["ctrl.shift.d","meta.shift.d"],descTextKey:"DDSAnnotator.shortcuts.general.deleteAll"}),Vt()(Nt,Ie.Save,{name:"Save",type:At.GeneralAction,shortcut:["ctrl.s","meta.s"],descTextKey:"DDSAnnotator.shortcuts.general.save"}),Vt()(Nt,Ie.HideCurrObject,{name:"HideCurrObject",type:At.ViewAction,shortcut:["h"],descTextKey:"DDSAnnotator.shortcuts.viewControl.hideCurrObject"}),Vt()(Nt,Ie.HideCurrCategory,{name:"HideCurrCategory",type:At.ViewAction,shortcut:["ctrl.h","meta.h"],descTextKey:"DDSAnnotator.shortcuts.viewControl.hideCurrCategory"}),Vt()(Nt,Ie.HideAll,{name:"HideAll",type:At.ViewAction,shortcut:["ctrl.shift.h","meta.shift.h"],descTextKey:"DDSAnnotator.shortcuts.viewControl.hideAll"}),Vt()(Nt,Ie.ZoomIn,{name:"ZoomIn",type:At.ViewAction,shortcut:["equalsign"],descTextKey:"DDSAnnotator.shortcuts.viewControl.zoomIn"}),Vt()(Nt,Ie.ZoomOut,{name:"ZoomOut",type:At.ViewAction,shortcut:["dash"],descTextKey:"DDSAnnotator.shortcuts.viewControl.zoomOut"}),Vt()(Nt,Ie.Reset,{name:"Reset",type:At.ViewAction,shortcut:["0"],descTextKey:"DDSAnnotator.shortcuts.viewControl.zoomReset"}),Vt()(Nt,Ie.Accept,{name:"Accept",type:At.GeneralAction,shortcut:["ctrl.a","meta.a"],descTextKey:"DDSAnnotator.shortcuts.general.accept"}),Vt()(Nt,Ie.Reject,{name:"Reject",type:At.GeneralAction,shortcut:["ctrl.r","meta.r"],descTextKey:"DDSAnnotator.shortcuts.general.reject"}),Vt()(Nt,Ie.NextImage,{name:"NextImage",type:At.ViewAction,shortcut:["rightarrow"],descTextKey:"DDSAnnotator.shortcuts.general.next"}),Vt()(Nt,Ie.PreviousImage,{name:"PreviousImage",type:At.ViewAction,shortcut:["leftarrow"],descTextKey:"DDSAnnotator.shortcuts.general.prev"}),Vt()(Nt,Ie.PanImage,{name:"PanImage",type:At.ViewAction,shortcut:["Space"],descTextKey:"DDSAnnotator.shortcuts.viewControl.panImage"}),Vt()(Nt,Ie.SaveCurrObject,{name:"SaveCurrObject",type:At.AnnotationAction,shortcut:["enter"],descTextKey:"DDSAnnotator.shortcuts.annotsControl.finish"}),Vt()(Nt,Ie.DeleteCurrObject,{name:"DeleteCurrObject",type:At.AnnotationAction,shortcut:["Backspace","Delete"],descTextKey:"DDSAnnotator.shortcuts.annotsControl.delete"}),Vt()(Nt,Ie.CancelCurrObject,{name:"CancelCurrObject",type:At.AnnotationAction,shortcut:["esc"],descTextKey:"DDSAnnotator.shortcuts.annotsControl.cancel"}),Nt),Mt=function(he){var Pe=he;switch(he){case"meta":Pe="\u2318";break;case"shift":Pe="\u21E7";break;case"equalsign":case"add":Pe="+";break;case"dash":case"subtract":Pe="-";break;case"leftarrow":Pe="\u2190";break;case"rightarrow":Pe="\u2192";break;default:Pe=he.toUpperCase();break}return Pe},jt=function(Ue){return Ue.Object="object",Ue.Class="class",Ue}(jt||{}),He=function(he,Pe){return(0,m.isEqual)(he.objects,Pe.objects)&&(0,m.isEqual)(he.framesObjects,Pe.framesObjects)&&he.activeObjectIndex===Pe.activeObjectIndex&&he.supportEdit===Pe.supportEdit&&he.activeClassName===Pe.activeClassName&&he.className===Pe.className&&he.onChangeActiveClassName===Pe.onChangeActiveClassName&&he.onFocusObject===Pe.onFocusObject&&he.onDeleteObject===Pe.onDeleteObject&&he.onChangeObjectHidden===Pe.onChangeObjectHidden&&he.onChangeCategoryHidden===Pe.onChangeCategoryHidden&&he.setDrawDataWithHistory===Pe.setDrawDataWithHistory&&(0,m.isEqual)(he.categories,Pe.categories)&&he.colorByCategory===Pe.colorByCategory&&he.onChangeAnnotsDisplayOpts===Pe.onChangeAnnotsDisplayOpts},et=(0,g.memo)(function(Ue){var he=Ue.objects,Pe=Ue.framesObjects,Bn=Ue.activeObjectIndex,vt=Ue.className,Tn=Ue.supportEdit,bn=Ue.activeClassName,On=Ue.onFocusObject,Nn=Ue.onActiveObject,dr=Ue.onChangeObjectHidden,mr=Ue.onDeleteObject,yr=Ue.onChangeCategoryHidden,Ln=Ue.onChangeActiveClassName,ea=Ue.categories,Cr=Ue.setDrawDataWithHistory,ir=Ue.colorByCategory,Sr=Ue.onChangeAnnotsDisplayOpts,Ir=(0,z.bU)(),ia=Ir.localeText,Kn=ia("DDSAnnotator.annotsList.uncategorized"),Yr=(0,g.useState)(jt.Class),qr=s()(Yr,2),ua=qr[0],tr=qr[1],sr=function(Dt){tr(Dt)},_r=(0,re.w)(),zr=_r.height,Fr=45,xr=35,Tr=zr-Fr-56,ya=(0,g.useRef)(null),ba=(0,g.useMemo)(function(){return!he.some(function(Je){return!Je.hidden})},[he]),K=function(){he.forEach(function(Dt,Bt){dr(Bt,!ba)})},B=function(){Sr({colorByCategory:!ir})},ue=(0,g.useCallback)(function(Je,Dt,Bt){Nn(Bt),Cr(function(lt){lt.editingAttribute={index:Bt,labelId:Je.labelId,attributes:Dt.attributes||[],values:Je.attributes||[]}})},[Nn,Cr]);(0,Ce.Z)(Ee[Ie.HideAll].shortcut,function(Je){Je.preventDefault(),K()},{exactMatch:!0});var Me=(0,g.useMemo)(function(){return he.reduce(function(Je,Dt,Bt){var lt,en=((lt=ea.find(function(En){return En.id===Dt.labelId}))===null||lt===void 0?void 0:lt.name)||Kn;return Je[en]||(Je[en]=[]),Je[en].push(t()(t()({},Dt),{},{originIndex:Bt})),Je},{})},[he]);(0,g.useEffect)(function(){if(!(Bn<0)){var Je=document.querySelector(".ant-tabs-tabpane-active");if(ua===jt.Object){var Dt=Je==null?void 0:Je.querySelector(".tab-collapse .ant-collapse-item:nth-child(".concat(Bn+1,")"));Dt==null||Dt.scrollIntoView({behavior:"smooth",block:"nearest"})}else if(ua===jt.Class&&Me[bn]){var Bt=Me[bn].findIndex(function(en){return en.originIndex===Bn});if(Bt>-1){var lt;(lt=ya.current)===null||lt===void 0||lt.scrollTo({index:Bt,align:"auto"})}}}},[Bn]);var Le=(0,x.jsx)(Se.Z,{accordion:!0,ghost:!0,className:"tab-collapse",activeKey:bn,children:he.length>0&&Object.keys(Me).sort().map(function(Je){var Dt,Bt=Me[Je],lt=Bt.every(function(En){return En.hidden}),en=(Dt=Bt[0])===null||Dt===void 0?void 0:Dt.color;return(0,x.jsx)(Se.Z.Panel,{showArrow:!1,header:(0,x.jsxs)("div",{className:c()("collapse-header",{"collapse-header-selected":bn===Je}),style:{height:Fr},onClick:function(){Ln(Je===bn?"":Je)},children:[bn===Je&&(0,x.jsx)("div",{className:"selected-line",style:{backgroundColor:en||"#fff"}}),(0,x.jsx)("div",{className:"label-name",children:Je}),(0,x.jsxs)("div",{className:"label-actions",children:[(0,x.jsx)("span",{className:"label-count",children:Bt.length}),(0,x.jsx)(L.Z,{title:ia(lt?"DDSAnnotator.annotsList.showCate":"DDSAnnotator.annotsList.hideCate"),children:(0,x.jsx)(C.ZP,{ghost:!0,className:"label-btn",icon:lt?(0,x.jsx)(pe.Z,{}):(0,x.jsx)(ge.Z,{}),shape:"circle",onClick:function(wn){wn.stopPropagation(),yr(Je,!lt)}})}),(0,x.jsx)(C.ZP,{ghost:!0,className:"label-btn",icon:(0,x.jsx)(we,{className:"down-arrow"}),shape:"circle"})]})]},Je),children:bn===Je&&(0,x.jsx)(We.Z,{children:(0,x.jsx)(se.Z,{data:Bt,height:Tr,fullHeight:!1,itemHeight:xr,itemKey:"originIndex",ref:ya,children:function(wn,_n){var vr,Lr,ga,wr,ta=ea.find(function(da){return da.id===wn.labelId}),ja=!!(ta!=null&&(vr=ta.attributes)!==null&&vr!==void 0&&vr.length),vo=ta==null||(Lr=ta.attributes)===null||Lr===void 0?void 0:Lr.find(function(da,io){var $a;return da.required&&[void 0,null,""].includes(($a=wn.attributes)===null||$a===void 0?void 0:$a[io])}),Fa=(Pe==null||(ga=Pe[wn.originIndex])===null||ga===void 0||(wr=ga.filter(function(da){return da&&!da.frameEmpty}))===null||wr===void 0?void 0:wr.length)||1;return(0,x.jsxs)(We.Z.Item,{className:"collapse-item",style:{height:xr},onMouseOver:function(){On(wn.originIndex)},onClick:function(io){io.stopPropagation(),Nn(wn.originIndex)},children:[Bn===wn.originIndex&&(0,x.jsx)("div",{className:"color-hint",style:{backgroundColor:wn.color}}),(0,x.jsx)(H.Z,{className:"label-icon",component:Q.ef[wn.type]}),(0,x.jsxs)("div",{className:"label",children:["# ",wn.originIndex+1]}),(0,x.jsxs)("div",{className:"label-actions",children:[Pe&&(0,x.jsxs)("span",{className:"frame-count",children:[(0,x.jsx)(Ve,{})," ",Fa]}),ja&&(0,x.jsx)(L.Z,{title:ia("DDSAnnotator.attribute.edit"),children:(0,x.jsx)(C.ZP,{ghost:!0,className:c()("attr-btn",{"attr-btn-warn":vo}),icon:(0,x.jsx)(le,{}),shape:"circle",onClick:function(io){io.stopPropagation(),ue(wn,ta,wn.originIndex)}})}),(0,x.jsx)(L.Z,{title:wn.hidden?ia("DDSAnnotator.annotsList.show"):ia("DDSAnnotator.annotsList.hide"),children:(0,x.jsx)(C.ZP,{ghost:!0,className:"label-btn",icon:wn.hidden?(0,x.jsx)(pe.Z,{}):(0,x.jsx)(ge.Z,{}),shape:"circle",onClick:function(io){io.stopPropagation(),dr(wn.originIndex,!wn.hidden)}})}),Tn&&(0,x.jsx)(x.Fragment,{children:(0,x.jsx)(L.Z,{title:ia("DDSAnnotator.annotsList.delete"),children:(0,x.jsx)(C.ZP,{ghost:!0,className:"label-btn",icon:(0,x.jsx)(je.Z,{}),shape:"circle",onClick:function(io){io.stopPropagation(),mr(wn.originIndex)}})})})]})]},wn.labelId+_n)}})})},Je||Kn)})});return(0,x.jsx)("div",{className:c()("dds-annotator-objectlist",vt),id:"rightOperations",onMouseDown:function(Dt){Dt.stopPropagation()},children:(0,x.jsx)(be.Z,{activeKey:ua,onChange:sr,items:[{key:jt.Class,label:ia("DDSAnnotator.annotsList.labels"),children:Le}],tabBarExtraContent:(0,x.jsxs)("div",{className:"tab-header-actions",children:[(0,x.jsx)(L.Z,{title:ia("DDSAnnotator.colorMode"),children:(0,x.jsx)(C.ZP,{type:"primary",className:c()("tab-header-actions-color-btn",{"tab-header-actions-color-btn-active":!ir}),icon:(0,x.jsx)(H.Z,{component:nt}),onClick:B})}),he.length>0&&(0,x.jsx)(L.Z,{title:ia(ba?"DDSAnnotator.annotsList.showAll":"DDSAnnotator.annotsList.hideAll"),children:(0,x.jsx)(C.ZP,{ghost:!0,icon:ba?(0,x.jsx)(pe.Z,{}):(0,x.jsx)(ge.Z,{}),shape:"circle",onClick:K})})]})})})},He),Zt=e(60698),Ut={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.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:"down-circle",theme:"outlined"},Jt=Ut,ln=e(17202),Mn=function(he,Pe){return g.createElement(ln.Z,(0,Zt.Z)({},he,{ref:Pe,icon:Jt}))},gn=g.forwardRef(Mn),Yn={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M518.5 360.3a7.95 7.95 0 00-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7H381c10.2 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246z"}},{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:"up-circle",theme:"outlined"},Gn=Yn,ar=function(he,Pe){return g.createElement(ln.Z,(0,Zt.Z)({},he,{ref:Pe,icon:Gn}))},gr=g.forwardRef(ar),zt=e(59504),qt={item:"item___v9XQ_",selected:"selected___H8gjQ",info:"info___YLqTh",action:"action___zGuUy",btn:"btn___ean1l"},rn=function(he){var Pe=he.point,Bn=he.index,vt=he.active,Tn=he.onMouseEnter,bn=he.onMouseOut,On=he.onMouseOver,Nn=he.onVisibleChange,dr=(0,z.bU)(),mr=dr.localeText;return(0,x.jsxs)("div",{className:qt.item,onMouseOut:bn,onMouseOver:On,onMouseEnter:Tn,children:[vt&&(0,x.jsx)("div",{className:qt.selected,style:{backgroundColor:Pe.color}}),(0,x.jsx)("div",{className:qt.info,children:Pe.name?"#".concat(Bn+1," ").concat(Pe.name):"".concat(Bn+1," ")}),(0,x.jsx)("div",{className:qt.action,children:(0,x.jsxs)(zt.Z,{bordered:!1,showArrow:!0,popupClassName:qt["selector-dropdown"],size:"small",value:Pe.visible,onChange:Nn,style:{width:"100%"},children:[(0,x.jsx)(zt.Z.Option,{value:Q.GI.noLabeled,children:mr("DDSAnnotator.annotsList.point.notInImage")}),(0,x.jsx)(zt.Z.Option,{value:Q.GI.labeledNotVisible,children:mr("DDSAnnotator.annotsList.point.notVisible")}),(0,x.jsx)(zt.Z.Option,{value:Q.GI.labeledVisible,children:mr("DDSAnnotator.annotsList.point.visible")})]})})]},Bn)},dn=rn,Cn=(0,g.memo)(function(Ue){var he=Ue.mode,Pe=Ue.isAiAnnotation,Bn=Ue.currObject,vt=Ue.currObjectIndex,Tn=Ue.focusObjectIndex,bn=Ue.focusEleType,On=Ue.focusEleIndex,Nn=Ue.onChangePointVisible,dr=Ue.setEditState,mr=(0,z.bU)(),yr=mr.localeText,Ln=(0,g.useState)(!0),ea=s()(Ln,2),Cr=ea[0],ir=ea[1],Sr=(0,g.useMemo)(function(){return vt>-1&&(Bn==null?void 0:Bn.type)===Q.gr.Skeleton&&!Pe},[he,Bn,vt,Pe]),Ir=function(Kn){dr(function(Yr){Yr.focusObjectIndex=vt,Yr.focusEleIndex=Kn,Yr.focusEleType=Q.Yq.Circle})};return(0,x.jsx)(A,{children:(0,x.jsx)(w.Z,{className:c()("dds-annotator-points-editor",{"dds-annotator-points-editor-visible":Sr}),title:(0,x.jsxs)("div",{className:"title",onClick:function(){return ir(function(Kn){return!Kn})},children:[yr("DDSAnnotator.points.editor"),(0,x.jsx)("div",{className:"extra-btn",children:Cr?(0,x.jsx)(gn,{}):(0,x.jsx)(gr,{})})]}),children:!Cr&&(0,x.jsx)("div",{className:"content",onMouseMove:function(Kn){Kn.stopPropagation()},children:Bn&&Bn.keypoints&&Bn.keypoints.points.map(function(ia,Kn){return(0,x.jsx)(dn,{point:ia,index:Kn,active:Tn===vt&&bn===Q.Yq.Circle&&On===Kn,onMouseEnter:function(){return Ir(Kn)},onVisibleChange:function(qr){Nn(Kn,qr)}},Kn)})})})})}),on=Cn,pt=(0,g.memo)(function(Ue){var he=Ue.mode,Pe=Ue.isAiAnnotation,Bn=Ue.latestLabelId,vt=Ue.currObject,Tn=Ue.onFinishCurrCreate,bn=(0,z.bU)(),On=bn.localeText,Nn=(0,g.useMemo)(function(){return he!==W.je.Edit?!1:!!((vt==null?void 0:vt.type)===Q.gr.Mask||(vt==null?void 0:vt.type)===Q.gr.Polygon&&Pe)},[he,vt,Pe]);return(0,Ce.Z)(Ee[Ie.SaveCurrObject].shortcut,function(dr){vt&&(dr.preventDefault(),Tn(Bn))},{exactMatch:!0}),(0,x.jsx)(A,{children:(0,x.jsx)(w.Z,{className:c()("dds-annotator-seg-confirm",{"dds-annotator-seg-confirm-visible":Nn}),title:(0,x.jsx)("div",{className:"title",children:On("DDSAnnotator.seg.tool")}),children:(0,x.jsxs)("div",{className:"content",children:[(0,x.jsx)("div",{children:On("DDSAnnotator.seg.tool.content")}),(0,x.jsx)(C.ZP,{type:"primary",onClick:function(mr){mr.preventDefault(),Tn(Bn)},children:On("DDSAnnotator.confirm")})]})})})}),mt=pt,sn=e(34485),Kt=e.n(sn),tn=e(2528),mn=e(98030),fn=e(33181),kn=Object.defineProperty,qn=Object.getOwnPropertySymbols,ct=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable,It=(Ue,he,Pe)=>he in Ue?kn(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,Ct=(Ue,he)=>{for(var Pe in he||(he={}))ct.call(he,Pe)&&It(Ue,Pe,he[Pe]);if(qn)for(var Pe of qn(he))dt.call(he,Pe)&&It(Ue,Pe,he[Pe]);return Ue};const kt=Ue=>g.createElement("svg",Ct({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 29 29"},Ue),g.createElement("defs",null,g.createElement("style",null,".drag_svg__cls-1{fill:none}")),g.createElement("path",{className:"drag_svg__cls-1",d:"M2.83 2.83h28.35v28.35H2.83z"}),g.createElement("path",{className:"drag_svg__cls-1",d:"M2.83 2.83h28.35v28.35H2.83z"}),g.createElement("path",{className:"drag_svg__cls-1",d:"M2.83 2.83h28.35v28.35H2.83Z"}),g.createElement("path",{className:"drag_svg__cls-2",d:"m21.73 18.19 8.23 4.8-3.51 1 2.51 4.35-2.05 1.18-2.51-4.35-2.63 2.54-.04-9.52z"}),g.createElement("path",{className:"drag_svg__cls-2",d:"M19.37 9.92h2.36v2.36h5.91a1.18 1.18 0 0 1 1.18 1.18v4.73h-2.36v-3.54H14.65v11.81h4.72v2.36h-5.91a1.18 1.18 0 0 1-1.18-1.18v-5.91H9.92v-2.36h2.36v-5.91a1.18 1.18 0 0 1 1.18-1.18h5.91ZM5.2 19.37h2.36v2.36H5.2zM5.2 14.65h2.36v2.36H5.2zM5.2 9.92h2.36v2.36H5.2zM5.2 5.2h2.36v2.36H5.2zM9.92 5.2h2.36v2.36H9.92zM14.65 5.2h2.36v2.36h-2.36zM19.37 5.2h2.36v2.36h-2.36z"}));var un="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOSAyOSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOm5vbmV9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMi44MyAyLjgzaDI4LjM1djI4LjM1SDIuODN6Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMi44MyAyLjgzaDI4LjM1djI4LjM1SDIuODN6Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMi44MyAyLjgzaDI4LjM1djI4LjM1SDIuODNaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJtMjEuNzMgMTguMTkgOC4yMyA0LjgtMy41MSAxIDIuNTEgNC4zNS0yLjA1IDEuMTgtMi41MS00LjM1LTIuNjMgMi41NC0uMDQtOS41MnoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xOS4zNyA5LjkyaDIuMzZ2Mi4zNmg1LjkxYTEuMTggMS4xOCAwIDAgMSAxLjE4IDEuMTh2NC43M2gtMi4zNnYtMy41NEgxNC42NXYxMS44MWg0LjcydjIuMzZoLTUuOTFhMS4xOCAxLjE4IDAgMCAxLTEuMTgtMS4xOHYtNS45MUg5Ljkydi0yLjM2aDIuMzZ2LTUuOTFhMS4xOCAxLjE4IDAgMCAxIDEuMTgtMS4xOGg1LjkxWk01LjIgMTkuMzdoMi4zNnYyLjM2SDUuMnpNNS4yIDE0LjY1aDIuMzZ2Mi4zNkg1LjJ6TTUuMiA5LjkyaDIuMzZ2Mi4zNkg1LjJ6TTUuMiA1LjJoMi4zNnYyLjM2SDUuMnpNOS45MiA1LjJoMi4zNnYyLjM2SDkuOTJ6TTE0LjY1IDUuMmgyLjM2djIuMzZoLTIuMzZ6TTE5LjM3IDUuMmgyLjM2djIuMzZoLTIuMzZ6Ii8+PC9zdmc+",nn=Object.defineProperty,xn=Object.getOwnPropertySymbols,Rn=Object.prototype.hasOwnProperty,Mr=Object.prototype.propertyIsEnumerable,er=(Ue,he,Pe)=>he in Ue?nn(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,zn=(Ue,he)=>{for(var Pe in he||(he={}))Rn.call(he,Pe)&&er(Ue,Pe,he[Pe]);if(xn)for(var Pe of xn(he))Mr.call(he,Pe)&&er(Ue,Pe,he[Pe]);return Ue};const Ur=Ue=>g.createElement("svg",zn({className:"zoomResize_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},Ue),g.createElement("path",{d:"M981.333 42.667v938.666H42.667V42.667h938.666zM128 896h768V128H128v768zm170.667-170.667H448v85.334H213.333V576h85.334v149.333zm426.666-426.666H576v-85.334h234.667V448h-85.334V298.667z"}));var pr="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTk4MS4zMzMgNDIuNjY3djkzOC42NjZINDIuNjY3VjQyLjY2N2g5MzguNjY2ek0xMjggODk2aDc2OFYxMjhIMTI4djc2OHptMTcwLjY2Ny0xNzAuNjY3SDQ0OHY4NS4zMzRIMjEzLjMzM1Y1NzZoODUuMzM0djE0OS4zMzN6bTQyNi42NjYtNDI2LjY2Nkg1NzZ2LTg1LjMzNGgyMzQuNjY3VjQ0OGgtODUuMzM0VjI5OC42Njd6Ii8+PC9zdmc+",sa=e(85706),Nr=Object.defineProperty,Zn=Object.getOwnPropertySymbols,In=Object.prototype.hasOwnProperty,Pn=Object.prototype.propertyIsEnumerable,rr=(Ue,he,Pe)=>he in Ue?Nr(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,br=(Ue,he)=>{for(var Pe in he||(he={}))In.call(he,Pe)&&rr(Ue,Pe,he[Pe]);if(Zn)for(var Pe of Zn(he))Pn.call(he,Pe)&&rr(Ue,Pe,he[Pe]);return Ue};const Gr=Ue=>g.createElement("svg",br({viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("path",{d:"M21.5 3h-19A2.503 2.503 0 0 0 0 5.5V17h24V5.5C24 4.122 22.878 3 21.5 3Zm.5 12H2V5.5a.5.5 0 0 1 .5-.5h19a.5.5 0 0 1 .5.5V15ZM4 7h3v2H4V7Zm8 2H9V7h3v2Zm2-2h6v2h-6V7Zm-6 4h8v2H8v-2Zm10 0h2v2h-2v-2ZM4 11h2v2H4v-2Zm11.293 7.707 1.414 1.414-3.293 3.293c-.39.39-.902.585-1.414.585a1.993 1.993 0 0 1-1.414-.585l-3.293-3.293 1.414-1.414L12 22l3.293-3.293Z"}));var na="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxLjUgM2gtMTlBMi41MDMgMi41MDMgMCAwIDAgMCA1LjVWMTdoMjRWNS41QzI0IDQuMTIyIDIyLjg3OCAzIDIxLjUgM1ptLjUgMTJIMlY1LjVhLjUuNSAwIDAgMSAuNS0uNWgxOWEuNS41IDAgMCAxIC41LjVWMTVaTTQgN2gzdjJINFY3Wm04IDJIOVY3aDN2MlptMi0yaDZ2MmgtNlY3Wm0tNiA0aDh2Mkg4di0yWm0xMCAwaDJ2MmgtMnYtMlpNNCAxMWgydjJINHYtMlptMTEuMjkzIDcuNzA3IDEuNDE0IDEuNDE0LTMuMjkzIDMuMjkzYy0uMzkuMzktLjkwMi41ODUtMS40MTQuNTg1YTEuOTkzIDEuOTkzIDAgMCAxLTEuNDE0LS41ODVsLTMuMjkzLTMuMjkzIDEuNDE0LTEuNDE0TDEyIDIybDMuMjkzLTMuMjkzWiIvPjwvc3ZnPg==",pa=function(he){for(var Pe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Bn=navigator.userAgent.toLowerCase(),vt=Bn.indexOf("mac")>-1,Tn=[],bn=function(){var mr=he[On];if(!vt&&mr.includes("meta")||vt&&mr.includes("ctrl"))return"continue";if(mr.includes(".")){var yr=mr.split(".");yr.forEach(function(ea,Cr){var ir=(0,x.jsx)("span",{className:c()({"dds-annotator-shortcutsinfo-key":Pe}),children:Mt(ea)},Cr);Tn.push(ir),Cr!==yr.length-1&&Tn.push((0,x.jsxs)("span",{className:c()({"dds-annotator-shortcutsinfo-combine":Pe}),children:[" ","+"," "]},Cr+"and"))})}else{var Ln=(0,x.jsx)("span",{className:c()({"dds-annotator-shortcutsinfo-key":Pe}),children:Mt(mr)},On);Tn.push(Ln)}On!==he.length-1&&Tn.push((0,x.jsxs)("span",{className:c()({"dds-annotator-shortcutsinfo-combine":Pe}),children:[" ","/"," "]},On+"or"))},On=0;On=Q.Fv,zr=Ln<=Q.vL;(0,Ce.Z)(Ee[Ie.ZoomIn].shortcut,function(){_r||ea()}),(0,Ce.Z)(Ee[Ie.ZoomOut].shortcut,function(){zr||Cr()}),(0,Ce.Z)(Ee[Ie.Reset].shortcut,function(){ir()});var Fr=function(Tr){var ya=pa(Tr.shortcut.shortcut,!1);return(0,x.jsxs)("div",{className:"dds-annotator-slidertoolbar-popover",children:[(0,x.jsxs)("div",{children:[(0,x.jsx)("span",{className:"popover-title",children:Tr.name}),(0,x.jsx)("span",{className:"popover-key",children:ya})]}),(0,x.jsx)("div",{className:"popover-divider"}),(0,x.jsx)("div",{className:"popover-description",children:Tr.description})]})};return(0,x.jsxs)("div",{className:"dds-annotator-slidertoolbar",onMouseDown:function(Tr){Tr.stopPropagation()},children:[Sr?(0,x.jsx)("div",{}):(0,x.jsxs)("div",{className:"dds-annotator-slidertoolbar-content",children:[Yr.map(function(xr){return(0,x.jsx)(fn.Z,{placement:"right",content:Fr(xr),children:(0,x.jsx)(C.ZP,{className:c()("slidertoolbar-btn",{"slidertoolbar-btn-active":he===xr.key}),icon:xr.icon,onClick:function(){return bn(xr.key)}})},xr.key)}),qr.map(function(xr){return(0,x.jsxs)("div",{className:c()({"slidertoolbar-annotool-active-wrap":he===xr.key&&!Pe}),children:[(0,x.jsx)(fn.Z,{placement:"right",content:Fr(xr),children:(0,x.jsx)(C.ZP,{className:c()("slidertoolbar-btn",{"slidertoolbar-btn-active":he===xr.key&&!Tn}),icon:xr.icon,onClick:function(){return bn(xr.key)}})}),he===xr.key&&!Pe&&(0,x.jsx)(fn.Z,{placement:"right",content:Fr(ua),children:(0,x.jsx)(C.ZP,{className:c()("slidertoolbar-btn",{"slidertoolbar-btn-active":Tn}),icon:xr.aiIcon,onClick:function(){return On(!Tn)}})},ua.key)]},xr.key)}),(0,x.jsx)("div",{className:"slidertoolbar-divider"}),tr.map(function(xr){return(0,x.jsx)(fn.Z,{placement:"right",content:Fr(xr),children:(0,x.jsx)(C.ZP,{className:c()("slidertoolbar-btn"),icon:xr.icon,onClick:xr.handler})},xr.key)})]}),(0,x.jsxs)("div",{className:"dds-annotator-slidertoolbar-content",children:[(0,x.jsx)(C.ZP,{type:"primary",className:"slidertoolbar-btn",onClick:ir,icon:(0,x.jsx)(H.Z,{component:Ur})}),(0,x.jsx)(C.ZP,{type:"primary",className:c()("slidertoolbar-btn",{"slidertoolbar-btn-disabled":zr}),icon:(0,x.jsx)(tn.Z,{}),onClick:Cr}),(0,x.jsxs)("div",{className:"slidertoolbar-scale-text",children:[Math.floor(Ln*100),"%"]}),(0,x.jsx)(C.ZP,{type:"primary",className:c()("slidertoolbar-btn",{"slidertoolbar-btn-disabled":_r}),icon:(0,x.jsx)(mn.Z,{}),onClick:ea})]})]})}),Ea=Zr,ha=e(38875),Wn=e(94706),Fn=e(57414),hr=Object.defineProperty,Kr=Object.getOwnPropertySymbols,Ar=Object.prototype.hasOwnProperty,Pt=Object.prototype.propertyIsEnumerable,an=(Ue,he,Pe)=>he in Ue?hr(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,pn=(Ue,he)=>{for(var Pe in he||(he={}))Ar.call(he,Pe)&&an(Ue,Pe,he[Pe]);if(Kr)for(var Pe of Kr(he))Pt.call(he,Pe)&&an(Ue,Pe,he[Pe]);return Ue};const qa=Ue=>g.createElement("svg",pn({width:32,height:32,viewBox:"0 0 34 34",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("path",{d:"M23.737 13.118v7.764a6.713 6.713 0 0 1-6.706 6.707 6.713 6.713 0 0 1-6.705-6.707v-7.764a6.713 6.713 0 0 1 6.705-6.707 6.713 6.713 0 0 1 6.706 6.707Zm-.693 3.662H11.018v4.102a6.02 6.02 0 0 0 6.013 6.017 6.02 6.02 0 0 0 6.013-6.017V16.78Zm0-3.662a6.02 6.02 0 0 0-5.698-6.008v8.977h5.698v-2.969Z",fill:"#fff"}));var Mo="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzNCAzNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjMuNzM3IDEzLjExOHY3Ljc2NGE2LjcxMyA2LjcxMyAwIDAgMS02LjcwNiA2LjcwNyA2LjcxMyA2LjcxMyAwIDAgMS02LjcwNS02LjcwN3YtNy43NjRhNi43MTMgNi43MTMgMCAwIDEgNi43MDUtNi43MDcgNi43MTMgNi43MTMgMCAwIDEgNi43MDYgNi43MDdabS0uNjkzIDMuNjYySDExLjAxOHY0LjEwMmE2LjAyIDYuMDIgMCAwIDAgNi4wMTMgNi4wMTcgNi4wMiA2LjAyIDAgMCAwIDYuMDEzLTYuMDE3VjE2Ljc4Wm0wLTMuNjYyYTYuMDIgNi4wMiAwIDAgMC01LjY5OC02LjAwOHY4Ljk3N2g1LjY5OHYtMi45NjlaIiBmaWxsPSIjZmZmIi8+PC9zdmc+",Ua=Object.defineProperty,Wa=Object.getOwnPropertySymbols,Xa=Object.prototype.hasOwnProperty,No=Object.prototype.propertyIsEnumerable,$o=(Ue,he,Pe)=>he in Ue?Ua(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,So=(Ue,he)=>{for(var Pe in he||(he={}))Xa.call(he,Pe)&&$o(Ue,Pe,he[Pe]);if(Wa)for(var Pe of Wa(he))No.call(he,Pe)&&$o(Ue,Pe,he[Pe]);return Ue};const ft=Ue=>g.createElement("svg",So({width:32,height:32,viewBox:"0 0 34 34",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("path",{d:"M10.263 13.118v7.764a6.713 6.713 0 0 0 6.706 6.707 6.713 6.713 0 0 0 6.705-6.707v-7.764a6.713 6.713 0 0 0-6.705-6.707 6.713 6.713 0 0 0-6.706 6.707Zm.693 3.662h12.026v4.102a6.02 6.02 0 0 1-6.013 6.017 6.02 6.02 0 0 1-6.013-6.017V16.78Zm0-3.662a6.02 6.02 0 0 1 5.698-6.008v8.977h-5.698v-2.969Z",fill:"#fff"}));var Rt="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzNCAzNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAuMjYzIDEzLjExOHY3Ljc2NGE2LjcxMyA2LjcxMyAwIDAgMCA2LjcwNiA2LjcwNyA2LjcxMyA2LjcxMyAwIDAgMCA2LjcwNS02LjcwN3YtNy43NjRhNi43MTMgNi43MTMgMCAwIDAtNi43MDUtNi43MDcgNi43MTMgNi43MTMgMCAwIDAtNi43MDYgNi43MDdabS42OTMgMy42NjJoMTIuMDI2djQuMTAyYTYuMDIgNi4wMiAwIDAgMS02LjAxMyA2LjAxNyA2LjAyIDYuMDIgMCAwIDEtNi4wMTMtNi4wMTdWMTYuNzhabTAtMy42NjJhNi4wMiA2LjAyIDAgMCAxIDUuNjk4LTYuMDA4djguOTc3aC01LjY5OHYtMi45NjlaIiBmaWxsPSIjZmZmIi8+PC9zdmc+",Ae=(0,g.memo)(function(Ue){var he,Pe=Ue.selectedTool,Bn=Ue.selectedSubTool,vt=Ue.selectedModel,Tn=Ue.AIAnnotation,bn=Ue.isBatchEditing,On=Ue.isCtrlPressed,Nn=Ue.naturalSize,dr=Ue.limitConf,mr=Ue.latestLabel,yr=Ue.onExitAIAnnotation,Ln=Ue.onAiAnnotation,ea=Ue.onChangeConfidenceRange,Cr=Ue.onChangeLimitConf,ir=Ue.onAcceptValidObjects,Sr=Ue.onCancelBatchEdit,Ir=Ue.forceChangeTool,ia=(0,z.bU)(),Kn=ia.localeText,Yr=(0,g.useState)(function(){return mr}),qr=s()(Yr,2),ua=qr[0],tr=qr[1];(0,g.useEffect)(function(){tr(mr)},[mr]);var sr=(0,M.x)({predIouThresh:.89,pointsPerSide:32,minMaskRegionArea:300}),_r=s()(sr,2),zr=_r[0],Fr=_r[1],xr=(he={},Vt()(he,Q.ru.Drag,{name:Kn("DDSAnnotator.shortcuts.tools.drag"),icon:kt}),Vt()(he,Q.ru.Rectangle,{name:vt===Q.HE.Detection?Kn("DDSAnnotator.smart.detection.name"):Kn("DDSAnnotator.smart.ivp.name"),icon:Q.ef[Q.gr.Rectangle]}),Vt()(he,Q.ru.Polygon,{name:Kn("DDSAnnotator.smart.segmentation.name"),icon:Q.ef[Q.gr.Polygon]}),Vt()(he,Q.ru.Skeleton,{name:Kn("DDSAnnotator.smart.pose.name"),icon:Q.ef[Q.gr.Skeleton]}),Vt()(he,Q.ru.Mask,{name:vt===Q.HE.SegmentByMask?Kn("DDSAnnotator.smart.isg.name"):vt===Q.HE.SegmentEverything?Kn("DDSAnnotator.smart.sam.name"):Kn("DDSAnnotator.smart.ivp.name"),icon:Q.ef[Q.gr.Mask]}),he),Tr=function(ue){if(ue.type==="mouseup"&&(Pe===Q.ru.Skeleton||Pe===Q.ru.Mask&&Bn===Q.jB.AutoSegmentEverything||Pe===Q.ru.Rectangle)){ue.preventDefault();return}else ue.stopPropagation()},ya=(0,g.useMemo)(function(){return!Tn||Pe===Q.ru.Drag?!1:Pe===Q.ru.Mask?vt===Q.HE.SegmentEverything?Bn===Q.jB.AutoSegmentEverything:vt===Q.HE.SegmentByMask?!1:vt===Q.HE.IVP?bn:!1:Pe===Q.ru.Polygon?!1:Pe===Q.ru.Rectangle?vt===Q.HE.Detection?!(bn&&On):vt===Q.HE.IVP?bn:!1:!0},[Pe,Bn,vt,Tn,bn,On]),ba=(0,g.useMemo)(function(){return Pe===Q.ru.Rectangle&&vt===Q.HE.Detection&&bn&&On?[{text:Kn("DDSAnnotator.smart.tip.recover"),logo:(0,x.jsx)(qa,{})},{text:Kn("DDSAnnotator.smart.tip.overlayobject"),logo:(0,x.jsx)(ft,{})}]:[]},[bn,On,vt]),K=(0,g.useMemo)(function(){return Nn.width*Nn.height},[Nn]);return(0,x.jsxs)(A,{eventHandler:Tr,children:[ba.length>0&&(0,x.jsx)("div",{className:"dds-annotator-operation-tip",children:ba.map(function(B){return(0,x.jsxs)("div",{className:"dds-annotator-operation-tip-item",children:[(0,x.jsx)("span",{children:B.text}),B.logo]},B.text)})}),(0,x.jsx)(w.Z,{id:"smart-annotation-editor",className:c()("dds-annotator-smart-container",{"dds-annotator-smart-container-visible":ya}),title:(0,x.jsxs)("div",{className:"dds-annotator-smart-container-title",children:[(0,x.jsxs)("div",{className:"dds-annotator-smart-container-title-icon",children:[(0,x.jsx)(ha.Z,{component:Q.QD[Q.Uu.SmartAnnotation]}),(0,x.jsx)("div",{children:xr[Pe].name})]}),(0,x.jsx)(C.ZP,{ghost:!0,className:"dds-annotator-smart-container-btn",icon:(0,x.jsx)(h.Z,{}),shape:"circle",size:"small",onClick:function(){yr(),Ir(Pe,Q.jB.PenAdd)}})]}),children:(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content",children:[Pe===Q.ru.Rectangle&&vt===Q.HE.Detection&&(bn?(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content-column-item",children:[(0,x.jsx)("div",{className:"dds-annotator-smart-container-content-param-controls",children:(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content-param-item",children:[(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content-param-item-title",children:[Kn("DDSAnnotator.smart.detection.confidence"),":"]}),(0,x.jsx)(Wn.Z,{className:"dds-annotator-smart-container-content-param-item-slider",defaultValue:dr,min:0,max:1,step:.01,onAfterChange:Cr,railStyle:{background:"#99bdff"},trackStyle:{background:"#edf0f3"}})]})}),(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content-tip-text",children:[(0,x.jsxs)("span",{children:[Kn("DDSAnnotator.smart.tip"),": "]}),Kn("DDSAnnotator.smart.tip.ctrl")]}),(0,x.jsxs)("div",{style:{alignSelf:"flex-end"},children:[(0,x.jsx)(C.ZP,{style:{marginRight:"10px"},onClick:Sr,children:Kn("DDSAnnotator.smart.back")}),(0,x.jsx)(C.ZP,{type:"primary",onClick:ir,children:Kn("DDSAnnotator.save")})]})]}):(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content-column-item",children:[(0,x.jsxs)("div",{children:[(0,x.jsxs)("span",{children:[Kn("DDSAnnotator.smart.detection.label"),":"]}),mr]}),(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content-column-item-row",children:[(0,x.jsxs)("span",{children:[Kn("DDSAnnotator.smart.detection.prompt"),":"]}),(0,x.jsx)(T.Z,{placeholder:Kn("DDSAnnotator.smart.detection.input"),value:ua,onChange:function(ue){return tr(ue.target.value)},onKeyUp:function(ue){return ue.stopPropagation()},onKeyDown:function(ue){return ue.stopPropagation()}})]}),(0,x.jsx)("div",{className:"dds-annotator-smart-container-content-column-item-right",children:(0,x.jsx)(C.ZP,{type:"primary",onClick:function(){return Ln({text:ua})},children:Kn("DDSAnnotator.smart.annotate")})})]})),(Pe===Q.ru.Rectangle&&vt===Q.HE.IVP||Pe===Q.ru.Mask&&vt===Q.HE.IVP)&&(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content-column-item",children:[(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content-tip-text",children:[(0,x.jsxs)("span",{children:[Kn("DDSAnnotator.smart.tip"),": "]}),Kn("DDSAnnotator.smart.tip.visualPrompt")]}),(0,x.jsxs)("div",{style:{alignSelf:"flex-end"},children:[(0,x.jsx)(C.ZP,{style:{marginRight:"10px"},onClick:Sr,children:Kn("DDSAnnotator.smart.back")}),(0,x.jsx)(C.ZP,{type:"primary",onClick:ir,children:Kn("DDSAnnotator.save")})]})]}),Pe===Q.ru.Skeleton&&(bn?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"dds-annotator-smart-container-content-param-controls",children:(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content-param-item",children:[(0,x.jsx)("div",{className:"dds-annotator-smart-container-content-param-item-title",children:Kn("DDSAnnotator.confidence")}),(0,x.jsx)(Wn.Z,{className:"dds-annotator-smart-container-content-param-item-slider",range:!0,defaultValue:[0,100],onAfterChange:function(ue){return ea([ue[0]/100,ue[1]/100])},tooltip:{formatter:function(ue){return(0,x.jsx)(x.Fragment,{children:"".concat(ue/100)})},getPopupContainer:function(){return document.getElementById("conf-slider")}}})]})}),(0,x.jsx)(C.ZP,{style:{alignSelf:"flex-end"},type:"primary",onClick:ir,children:Kn("DDSAnnotator.save")})]}):(0,x.jsx)(x.Fragment,{children:(0,x.jsx)(C.ZP,{style:{alignSelf:"flex-end"},type:"primary",onClick:function(){return Ln({})},children:Kn("DDSAnnotator.smart.annotate")})})),Pe===Q.ru.Mask&&vt===Q.HE.SegmentEverything&&Bn===Q.jB.AutoSegmentEverything&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{id:"param-controls",className:"dds-annotator-smart-container-content-param-controls",children:[(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content-param-item",children:[(0,x.jsx)("div",{className:"dds-annotator-smart-container-content-param-item-title",children:Kn("DDSAnnotator.smart.iouThres")}),(0,x.jsx)(Wn.Z,{className:"dds-annotator-smart-container-content-param-item-slider",value:1-zr.predIouThresh,onChange:function(ue){return Fr(function(Me){Me.predIouThresh=1-ue})},min:0,max:.99,step:.01,reverse:!0,tooltip:{formatter:function(ue){return"".concat(Math.floor((1-ue)*100),"%")},getPopupContainer:function(){return document.getElementById("param-controls")}}})]}),(0,x.jsxs)("div",{className:"dds-annotator-smart-container-content-param-item",children:[(0,x.jsx)("div",{className:"dds-annotator-smart-container-content-param-item-title",children:Kn("DDSAnnotator.smart.minArea")}),(0,x.jsx)(Wn.Z,{className:"dds-annotator-smart-container-content-param-item-slider",value:zr.minMaskRegionArea/K,onChange:function(ue){return Fr(function(Me){Me.minMaskRegionArea=ue*K})},min:.01,max:.3,step:.01,tooltip:{formatter:function(ue){return"".concat(Math.ceil(ue*100),"%")},getPopupContainer:function(){return document.getElementById("param-controls")}}})]})]}),bn?(0,x.jsxs)(Fn.Z,{className:"dds-annotator-smart-container-content-actions",style:{justifyContent:"flex-end"},children:[(0,x.jsx)(C.ZP,{onClick:function(){return Ln({segmentEverythingParams:zr})},children:Kn("DDSAnnotator.smart.retry")}),(0,x.jsx)(C.ZP,{type:"primary",onClick:function(){ir(),Ir(Q.ru.Mask,Q.jB.AutoEdgeStitching)},children:Kn("DDSAnnotator.annotsEditor.finish")})]}):(0,x.jsx)(C.ZP,{style:{alignSelf:"flex-end"},type:"primary",onClick:function(){return Ln({segmentEverythingParams:zr})},children:Kn("DDSAnnotator.smart.annotate")})]})]})})]})}),cn=Ae,An=e(24454),hn=e.n(An),Xn=e(56592),nr=e.n(Xn),Wr=e(99142),Da=e(91169),oa=function(he,Pe){return he.current===Pe.current&&he.total===Pe.total&&he.customText===Pe.customText&&he.customDisableNext===Pe.customDisableNext},Qr=(0,g.memo)(function(Ue){var he=Ue.current,Pe=Ue.total,Bn=Ue.customText,vt=Ue.customDisableNext,Tn=Ue.onPrev,bn=Tn===void 0?function(){return Promise.resolve()}:Tn,On=Ue.onNext,Nn=On===void 0?function(){return Promise.resolve()}:On,dr=(0,z.bU)(),mr=dr.localeText,yr=(0,g.useState)(!1),Ln=s()(yr,2),ea=Ln[0],Cr=Ln[1],ir=(0,g.useState)(!1),Sr=s()(ir,2),Ir=Sr[0],ia=Sr[1],Kn=function(){var tr=nr()(hn()().mark(function sr(){return hn()().wrap(function(zr){for(;;)switch(zr.prev=zr.next){case 0:return Cr(!0),zr.next=3,bn();case 3:Cr(!1);case 4:case"end":return zr.stop()}},sr)}));return function(){return tr.apply(this,arguments)}}(),Yr=function(){var tr=nr()(hn()().mark(function sr(){return hn()().wrap(function(zr){for(;;)switch(zr.prev=zr.next){case 0:return ia(!0),zr.next=3,Nn();case 3:ia(!1);case 4:case"end":return zr.stop()}},sr)}));return function(){return tr.apply(this,arguments)}}(),qr=he<=0,ua=vt!=null?vt:he>=Pe-1;return(0,Ce.Z)(Ee[Ie.PreviousImage].shortcut,function(){qr||Kn()},{exactMatch:!0}),(0,Ce.Z)(Ee[Ie.NextImage].shortcut,function(){ua||Yr()},{exactMatch:!0}),(0,x.jsxs)("div",{className:"dds-annotator-toppagination",children:[(0,x.jsx)(L.Z,{title:mr("DDSAnnotator.prev"),children:(0,x.jsx)(C.ZP,{className:c()("dds-annotator-toppagination-btn",{"dds-annotator-toppagination-btn-disabled":qr}),type:"primary",icon:(0,x.jsx)(Wr.Z,{}),loading:ea,onClick:Kn})}),Bn||(0,x.jsxs)("div",{className:"dds-annotator-toppagination-scale-text",children:[he+1," / ",Pe]}),(0,x.jsx)(L.Z,{title:mr("DDSAnnotator.next"),children:(0,x.jsx)(C.ZP,{className:c()("dds-annotator-toppagination-btn",{"dds-annotator-toppagination-btn-disabled":ua}),type:"primary",icon:(0,x.jsx)(Da.Z,{}),loading:Ir,onClick:Yr})})]})},oa),ra=function(he){var Pe=he.mode,Bn=he.currImageItem,vt=he.modal,Tn=he.framesData,bn=he.drawData,On=he.editState,Nn=he.setEditState,dr=he.hadChangeRecord,mr=he.categories,yr=he.translateObject,Ln=he.flagSaved,ea=he.onCancel,Cr=he.onSave,ir=he.onCommit,Sr=he.onReviewModify,Ir=he.onReviewAccept,ia=he.onReviewReject,Kn=he.classificationOptions,Yr=he.isInAiSession,qr=(0,z.bU)(),ua=qr.localeText,tr=On.isRequiring,sr=function(ue){return Nn(function(Me){Me.isRequiring=ue})},_r=(0,g.useCallback)(function(B){var ue=[];return Tn?ue=Tn.objects.map(function(Me){var Le={};return Me.forEach(function(Je,Dt){if(Je&&!Je.frameEmpty){var Bt=yr==null?void 0:yr(Je),lt=Bt.labelId,en=Bt.attributes,En=Bt.labelValue;Le.labelId=lt,Le.attributes=en,Le.labelValue||(Le.labelValue={}),Le.labelValue[String(Dt)]=En}}),Le}):ue=B.objectList.map(function(Me){return yr==null?void 0:yr(Me)}),[(Tn==null?void 0:Tn.id)||(Bn==null?void 0:Bn.id)||"",[].concat(Kt()(B.classifications.map(function(Me){var Le,Je=mr.find(function(Dt){return Dt.id===Me.labelId});return t()(t()({},Me),{},{attributes:Me.attributes||(Je==null||(Le=Je.attributes)===null||Le===void 0?void 0:Le.map(function(){return null}))||[]})})),Kt()(ue)),Tn?Vt()({},Tn.activeIndex,{}):void 0]},[Bn,yr,Tn]),zr=function(ue){var Me=[];return Kn==null||Kn.forEach(function(Le,Je){var Dt=ue.find(function(Bt){return Bt.labelId===Le.id});(!Dt||Z(Dt.labelValue))&&Me.push(ua("DDSAnnotator.save.check.classification",{idx:Je+1}))}),ue.forEach(function(Le,Je){var Dt,Bt=mr.find(function(lt){return lt.id===Le.labelId});Bt!=null&&(Dt=Bt.attributes)!==null&&Dt!==void 0&&Dt.find(function(lt,en){var En;return lt.required&&Z((En=Le.attributes)===null||En===void 0?void 0:En[en])})&&Me.push(ua("DDSAnnotator.save.check.label",{idx:Je+1,labelName:Bt.labelName}))}),Me.length>0?(n.Z.warning({width:480,title:ua("DDSAnnotator.save.check.error"),content:(0,x.jsxs)("div",{children:[Me.map(function(Le,Je){return(0,x.jsxs)("span",{children:[Le,(0,x.jsx)("br",{})]},Je)}),(0,x.jsx)("span",{children:ua("DDSAnnotator.save.check.tip")})]})}),!0):!1},Fr=function(){var B=nr()(hn()().mark(function ue(){var Me,Le,Je,Dt;return hn()().wrap(function(lt){for(;;)switch(lt.prev=lt.next){case 0:if(!(tr||!Cr||Yr())){lt.next=2;break}return lt.abrupt("return");case 2:if(Me=_r(bn),Le=s()(Me,2),Je=Le[0],Dt=Le[1],console.log(">>> save",Je,Dt),!zr(Dt)){lt.next=6;break}return lt.abrupt("return");case 6:return sr(!0),lt.prev=7,lt.next=10,Cr(Je,Dt);case 10:Ln==null||Ln(),lt.next=16;break;case 13:lt.prev=13,lt.t0=lt.catch(7),console.error(lt.t0);case 16:sr(!1);case 17:case"end":return lt.stop()}},ue,null,[[7,13]])}));return function(){return B.apply(this,arguments)}}(),xr=function(){var B=nr()(hn()().mark(function ue(){var Me,Le,Je,Dt;return hn()().wrap(function(lt){for(;;)switch(lt.prev=lt.next){case 0:if(!(tr||!ir||Yr())){lt.next=2;break}return lt.abrupt("return");case 2:if(Me=_r(bn),Le=s()(Me,2),Je=Le[0],Dt=Le[1],!zr(Dt)){lt.next=5;break}return lt.abrupt("return");case 5:return sr(!0),lt.prev=6,lt.next=9,ir(Je,Dt);case 9:lt.next=14;break;case 11:lt.prev=11,lt.t0=lt.catch(6),console.error(lt.t0);case 14:sr(!1);case 15:case"end":return lt.stop()}},ue,null,[[6,11]])}));return function(){return B.apply(this,arguments)}}(),Tr=function(){var B=nr()(hn()().mark(function ue(){return hn()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:Pe===W.je.Review&&ia&&ia.apply(void 0,Kt()(_r(bn)));case 1:case"end":return Le.stop()}},ue)}));return function(){return B.apply(this,arguments)}}(),ya=function(){var B=nr()(hn()().mark(function ue(){return hn()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:Pe===W.je.Review&&Ir&&Ir.apply(void 0,Kt()(_r(bn)));case 1:case"end":return Le.stop()}},ue)}));return function(){return B.apply(this,arguments)}}(),ba=function(){var B=nr()(hn()().mark(function ue(){return hn()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:Pe===W.je.Review&&Sr&&Sr.apply(void 0,Kt()(_r(bn)));case 1:case"end":return Le.stop()}},ue)}));return function(){return B.apply(this,arguments)}}(),K=function(){var B=nr()(hn()().mark(function ue(){return hn()().wrap(function(Le){for(;;)switch(Le.prev=Le.next){case 0:if(!(Pe===W.je.Edit&&dr)){Le.next=3;break}return vt.confirm({getContainer:function(){return document.body},content:ua("DDSAnnotator.confirmLeave.content"),cancelText:ua("DDSAnnotator.confirmLeave.cancel"),okText:ua("DDSAnnotator.confirmLeave.ok"),okButtonProps:{danger:!0},onOk:function(){ea&&ea()}}),Le.abrupt("return");case 3:ea&&ea();case 4:case"end":return Le.stop()}},ue)}));return function(){return B.apply(this,arguments)}}();return{onSaveAnnotations:Fr,onCommitAnnotations:xr,onCancelAnnotations:K,onRejectAnnotations:Tr,onAcceptAnnotations:ya,onModifyAnnotations:ba}},jr=ra,$r=e(97375),fa;(function(Ue){})(fa||(fa={}));function Na(Ue,he,Pe){return to.apply(this,arguments)}function to(){return to=nr()(hn()().mark(function Ue(he,Pe,Bn){var vt;return hn()().wrap(function(bn){for(;;)switch(bn.prev=bn.next){case 0:return vt="".concat("https://api.deepdataspace.com","/tasks/").concat(he),bn.abrupt("return",(0,$r.request)(vt,t()({method:"POST",data:t()({},Pe)},Bn||{hideCodeErrorMsg:!0})));case 2:case"end":return bn.stop()}},Ue)})),to.apply(this,arguments)}function Ka(Ue,he){var Pe="".concat("https://api.deepdataspace.com","/task_statuses/").concat(Ue);return(0,$r.request)(Pe,t()({method:"GET"},he||{}))}function Qt(Ue,he){return Sn.apply(this,arguments)}function Sn(){return Sn=nr()(hn()().mark(function Ue(he,Pe){var Bn,vt,Tn,bn,On=arguments;return hn()().wrap(function(dr){for(;;)switch(dr.prev=dr.next){case 0:Bn=On.length>2&&On[2]!==void 0?On[2]:5e3,vt=On.length>3&&On[3]!==void 0?On[3]:1e3,Tn=0;case 3:if(!(TnEn?wn.score:En},((ue=Me[0])===null||ue===void 0?void 0:ue.score)||0),Bt=Me.map(function(En){var wn=t()({},(0,Xr.JP)(En.bbox,Nn,dr)),_n=En.score/Dt;return{rect:t()(t()({},wn),{},{visible:!0}),labelId:bn.latestLabelId,type:Q.gr.Rectangle,hidden:!1,status:_n>=Je?W.TK.Checked:W.TK.Unchecked,conf:_n,color:mr(bn.latestLabelId,!0)}}).reverse(),Tn(function(En){En.isBatchEditing=!0,En.limitConf=Je;var wn=En.objectList.filter(function(_n){return(_n==null?void 0:_n.status)===W.TK.Commited});En.objectList=[].concat(Kt()(wn),Kt()(Bt)),En.creatingObject&&En.objectList[En.activeObjectIndex]&&(En.creatingObject=t()({},En.objectList[En.activeObjectIndex])),En.prompt.sessionId=B}),en.abrupt("return",!0);case 18:case"end":return en.stop()}},Fr)}));return function(xr,Tr){return zr.apply(this,arguments)}}(),ia=function(){var zr=nr()(hn()().mark(function Fr(xr,Tr){var ya,ba,K,B,ue,Me,Le,Je;return hn()().wrap(function(Bt){for(;;)switch(Bt.prev=Bt.next){case 0:if(!(!Pe||!Tr)){Bt.next=2;break}return Bt.abrupt("return");case 2:if(ya={prompts:Sr(Tr||[]),labelTypes:["bbox"]},!xr.prompt.sessionId){Bt.next=7;break}Object.assign(ya,{sessionId:xr.prompt.sessionId}),Bt.next=11;break;case 7:return Bt.next=9,Oa(Pe.url);case 9:ba=Bt.sent,Object.assign(ya,{promptImage:ba,inferImage:ba});case 11:return Bt.next=13,Dn(Q.HE.IVP,ya);case 13:if(K=Bt.sent,B=K.result,ue=K.sessionId,!B){Bt.next=22;break}return Me=B.objects,Le=.3,Je=Me.filter(function(lt){return lt.bbox}).map(function(lt){var en=lt.bbox,En=s()(en,4),wn=En[0],_n=En[1],vr=En[2],Lr=En[3],ga=(0,Xr.$S)((0,Xr.Aw)({xmin:wn,ymin:_n,xmax:vr,ymax:Lr}),Nn,dr);return{rect:t()(t()({},ga),{},{visible:!0}),labelId:bn.latestLabelId,type:Q.gr.Rectangle,hidden:!1,status:lt.score>=Le?W.TK.Checked:W.TK.Unchecked,conf:lt.score,color:mr(bn.latestLabelId,!0)}}).reverse(),Tn(function(lt){lt.isBatchEditing=!0,lt.limitConf=Le;var en=lt.objectList.filter(function(En){return En.status===W.TK.Commited});lt.objectList=[].concat(Kt()(en),Kt()(Je)),lt.creatingObject&<.objectList[lt.activeObjectIndex]&&(lt.creatingObject=t()({},lt.objectList[lt.activeObjectIndex])),lt.prompt.promptsQueue=Tr,lt.prompt.sessionId=ue,lt.prompt.creatingPrompt=void 0}),Bt.abrupt("return",!0);case 22:case"end":return Bt.stop()}},Fr)}));return function(xr,Tr){return zr.apply(this,arguments)}}(),Kn=function(){var zr=nr()(hn()().mark(function Fr(xr,Tr){var ya,ba,K,B,ue,Me,Le;return hn()().wrap(function(Dt){for(;;)switch(Dt.prev=Dt.next){case 0:if(!(!Pe||!Tr)){Dt.next=2;break}return Dt.abrupt("return");case 2:if(ya={prompts:Sr(Tr||[]),labelTypes:["mask"]},!xr.prompt.sessionId){Dt.next=7;break}Object.assign(ya,{sessionId:xr.prompt.sessionId}),Dt.next=11;break;case 7:return Dt.next=9,Oa(Pe.url);case 9:ba=Dt.sent,Object.assign(ya,{promptImage:ba,inferImage:ba});case 11:return Dt.next=13,Dn(Q.HE.IVP,ya);case 13:if(K=Dt.sent,B=K.result,ue=K.sessionId,!B){Dt.next=22;break}return On(function(Bt){Bt.annotsDisplayOptions.colorByCategory=!1}),Me=B.objects,Le=Me.filter(function(Bt){return!!Bt.mask}).map(function(Bt){var lt,en=mr(bn.latestLabelId),En=((lt=Bt.mask)===null||lt===void 0?void 0:lt.counts)||"";return{type:Q.gr.Mask,hidden:!1,labelId:bn.latestLabelId,maskRle:En,maskCanvasElement:(0,fr.ei)(En,Nn,en),status:W.TK.Checked,conf:Bt.score,color:mr(bn.latestLabelId,!0)}}),Tn(function(Bt){Bt.isBatchEditing=!0;var lt=Bt.objectList.filter(function(en){return en.status===W.TK.Commited});Bt.objectList=[].concat(Kt()(lt),Kt()(Le)),Bt.creatingObject&&Bt.objectList[Bt.activeObjectIndex]&&(Bt.creatingObject=t()({},Bt.objectList[Bt.activeObjectIndex])),Bt.prompt.promptsQueue=Tr,Bt.prompt.sessionId=ue,Bt.prompt.creatingPrompt=void 0}),Dt.abrupt("return",!0);case 22:case"end":return Dt.stop()}},Fr)}));return function(xr,Tr){return zr.apply(this,arguments)}}(),Yr=function(){var zr=nr()(hn()().mark(function Fr(xr,Tr){var ya,ba,K,B,ue,Me,Le,Je;return hn()().wrap(function(Bt){for(;;)switch(Bt.prev=Bt.next){case 0:if(Tr){Bt.next=2;break}return Bt.abrupt("return");case 2:return Bt.next=4,ir(xr,{density:xr.pointResolution,prompts:Sr(Tr||[])});case 4:return ya=Bt.sent,Bt.next=7,Dn(Q.HE.SegmentByPolygon,ya);case 7:if(ba=Bt.sent,K=ba.result,B=ba.sessionId,!K){Bt.next=17;break}if(ue=K.polygons,!(ue&&ue.length>0)){Bt.next=17;break}return Le=ue.filter(function(lt){return lt.length>=6}).map(function(lt){for(var en=[],En=0;En-1&&B[xr.activeObjectIndex]&&xr.creatingObject&&(B[xr.activeObjectIndex]=t()(t()({},B[xr.activeObjectIndex]),xr.creatingObject)),ue=B.filter(function(wn){return wn.type===Q.gr.Skeleton&&wn.status===W.TK.Checked}),ue.length>0&&(Me=ue.map(function(wn){return{keypoints:wn.keypoints?(0,Xr.$G)(wn.keypoints.points,Nn,dr).points:void 0,bbox:wn.rect?(0,Xr.cx)(wn.rect,dr,Nn):void 0}}),Object.assign(K,{objects:Me}))),En.next=7,Dn(Q.HE.Pose,K);case 7:if(Le=En.sent,Je=Le.result,Dt=Le.sessionId,!Je){En.next=16;break}if(Bt=Je.objects,!(Bt&&Bt.length>0)){En.next=16;break}return lt=Bt.map(function(wn){var _n=wn.bbox,vr=wn.keypoints,Lr=wn.score,ga={labelId:bn.latestLabelId,color:mr(bn.latestLabelId),type:Q.gr.Skeleton,hidden:!1,conf:Lr,status:W.TK.Checked};if(_n){var wr=(0,Xr.JP)(_n,Nn,dr);Object.assign(ga,{rect:t()({visible:!0},wr)})}if(vr&&Tr&&ba&&ya){var ta=(0,Xr.OX)(vr,ya,ba,Nn,dr);Object.assign(ga,{keypoints:{points:ta,lines:Tr}})}return ga}),Tn(function(wn){wn.isBatchEditing||(wn.isBatchEditing=!0);var _n=wn.objectList.filter(function(vr){return vr.status===W.TK.Commited});wn.objectList=[].concat(Kt()(_n),Kt()(lt)),wn.creatingObject&&wn.objectList[wn.activeObjectIndex]&&(wn.creatingObject=t()({},wn.objectList[wn.activeObjectIndex])),wn.prompt.sessionId=Dt}),En.abrupt("return",!0);case 16:case"end":return En.stop()}},Fr)}));return function(xr){return zr.apply(this,arguments)}}(),tr=function(){var zr=nr()(hn()().mark(function Fr(xr){var Tr,ya,ba,K,B,ue,Me,Le,Je,Dt,Bt,lt,en,En,wn;return hn()().wrap(function(vr){for(;;)switch(vr.prev=vr.next){case 0:if(!(!((Tr=xr.prompt.creatingPrompt)!==null&&Tr!==void 0&&Tr.stroke)||!((ya=xr.prompt.creatingPrompt)!==null&&ya!==void 0&&ya.radius))){vr.next=2;break}return vr.abrupt("return");case 2:if(K=xr.prompt.creatingPrompt,B=K.stroke,ue=K.radius,Me=xr.objectList.filter(function(Lr){return Lr.type===Q.gr.Mask}),!(Me.length<2)){vr.next=8;break}return S.ZP.error(Ln("DDSAnnotator.smart.tip.edgeStitchError")),vt(function(Lr){Lr.prompt.creatingPrompt=void 0}),vr.abrupt("return");case 8:return Le=Me.map(function(Lr){return{counts:Lr.maskRle||"",size:[Nn.height,Nn.width]}}),Je=B.reduce(function(Lr,ga){var wr=ga.x,ta=ga.y,ja=(0,Xr.AR)([wr,ta],Nn,dr);return Lr.concat([ja.x,ja.y])},[]),vr.next=12,ir(xr,{masks:Le,prompts:[{type:W.Ae.Stroke,stroke:Je,radius:ue}]});case 12:return Dt=vr.sent,vr.next=15,Dn(Q.HE.MaskEdgeStitching,Dt);case 15:if(Bt=vr.sent,lt=Bt.result,en=Bt.sessionId,!(lt&&((ba=lt.masks)===null||ba===void 0?void 0:ba.length)>0)){vr.next=23;break}return En=Me.map(function(Lr,ga){var wr,ta,ja=((wr=lt.masks)===null||wr===void 0||(ta=wr[ga])===null||ta===void 0?void 0:ta.counts)||"";return t()(t()({},Lr),{},{maskRle:ja,maskCanvasElement:(0,fr.ei)(ja,Nn,Lr.color)})}),wn=xr.objectList.filter(function(Lr){return Lr.type!==Q.gr.Mask}),Tn(function(Lr){Lr.objectList=[].concat(Kt()(wn),Kt()(En)),Lr.prompt.creatingPrompt=void 0,Lr.prompt.sessionId=en}),vr.abrupt("return",!0);case 23:case"end":return vr.stop()}},Fr)}));return function(xr){return zr.apply(this,arguments)}}(),sr=function(){var zr=nr()(hn()().mark(function Fr(xr){var Tr,ya,ba,K,B;return hn()().wrap(function(Me){for(;;)switch(Me.prev=Me.next){case 0:if(Pe){Me.next=2;break}return Me.abrupt("return");case 2:return Me.t0=t(),Me.next=5,Oa(Pe.url);case 5:return Me.t1=Me.sent,Me.t2={image:Me.t1},Me.t3=xr,ya=(0,Me.t0)(Me.t2,Me.t3),Me.next=11,Dn(Q.HE.SegmentEverything,ya);case 11:if(ba=Me.sent,K=ba.result,!(K&&((Tr=K.masks)===null||Tr===void 0?void 0:Tr.length)>0)){Me.next=18;break}return On(function(Le){Le.annotsDisplayOptions.colorByCategory=!1}),B=K.masks.map(function(Le){var Je=mr(bn.latestLabelId),Dt=(Le==null?void 0:Le.counts)||"";return{type:Q.gr.Mask,hidden:!1,labelId:bn.latestLabelId,maskRle:Dt,maskCanvasElement:(0,fr.ei)(Dt,Nn,Je),conf:1,status:W.TK.Checked,color:Je}}),Tn(function(Le){Le.objectList=B,Le.isBatchEditing=!0}),Me.abrupt("return",!0);case 18:case"end":return Me.stop()}},Fr)}));return function(xr){return zr.apply(this,arguments)}}(),_r=(0,g.useCallback)(function(){var zr=nr()(hn()().mark(function Fr(xr){var Tr,ya,ba,K,B,ue,Me,Le,Je,Dt;return hn()().wrap(function(lt){for(;;)switch(lt.prev=lt.next){case 0:if(Tr=xr.type,ya=xr.drawData,ba=xr.text,K=xr.promptsQueue,B=xr.segmentEverythingParams,!(bn.isRequiring||!Pe)){lt.next=3;break}return lt.abrupt("return");case 3:ue=ya||Bn,Me=S.ZP.loading(Ln("DDSAnnotator.smart.msg.loading"),1e5),lt.prev=5,Cr(!0),On(function(en){en.isRequiring=!0}),Le=Tr||Q.Zo[ue.selectedTool],lt.t0=Le,lt.next=lt.t0===Q.gr.Rectangle?12:lt.t0===Q.gr.Skeleton?22:lt.t0===Q.gr.Polygon?26:lt.t0===Q.gr.Mask?30:54;break;case 12:if(ue.selectedModel[ue.selectedTool]!==Q.HE.Detection){lt.next=18;break}return lt.next=15,Ir(ue,ba||"");case 15:Je=lt.sent,lt.next=21;break;case 18:return lt.next=20,ia(ue,K);case 20:Je=lt.sent;case 21:return lt.abrupt("break",56);case 22:return lt.next=24,ua(ue);case 24:return Je=lt.sent,lt.abrupt("break",56);case 26:return lt.next=28,Yr(ue,K);case 28:return Je=lt.sent,lt.abrupt("break",56);case 30:if(Dt=ue.selectedModel[ue.selectedTool],Dt!==Q.HE.SegmentEverything){lt.next=44;break}if(ue.selectedSubTool!==Q.jB.AutoEdgeStitching){lt.next=38;break}return lt.next=35,tr(ue);case 35:Je=lt.sent,lt.next=42;break;case 38:if(ue.selectedSubTool!==Q.jB.AutoSegmentEverything){lt.next=42;break}return lt.next=41,sr(B);case 41:Je=lt.sent;case 42:lt.next=53;break;case 44:if(Dt!==Q.HE.IVP){lt.next=50;break}return lt.next=47,Kn(ue,K);case 47:Je=lt.sent,lt.next=53;break;case 50:return lt.next=52,qr(ue,K);case 52:Je=lt.sent;case 53:return lt.abrupt("break",56);case 54:return S.ZP.warning("Plan to Support!"),lt.abrupt("break",56);case 56:Je&&S.ZP.success(Ln("DDSAnnotator.smart.msg.success")),lt.next=63;break;case 59:lt.prev=59,lt.t1=lt.catch(5),Tn(function(en){en.prompt.creatingPrompt&&(en.prompt.creatingPrompt=void 0)}),S.ZP.error(Ln("DDSAnnotator.smart.msg.error"));case 63:return lt.prev=63,Cr(!1),On(function(en){en.isRequiring=!1}),vt(function(en){en.prompt.activeRectWhileLoading=void 0}),Me(),lt.finish(63);case 69:case"end":return lt.stop()}},Fr,null,[[5,59,63,69]])}));return function(Fr){return zr.apply(this,arguments)}}(),[Bn,Pe,bn,Nn,dr,mr,Tn]);return{onAiAnnotation:_r}},wo=po;function Ya(Ue){var he=Ue.setDrawDataWithHistory,Pe=Ue.categories,Bn=(0,g.useCallback)(function(bn,On){var Nn=Pe.find(function(dr){return dr.id===bn.labelId});if(Nn!=null&&Nn.attributes&&Nn.attributes.length>0)return{index:On,labelId:bn.labelId,attributes:Nn.attributes,values:bn.attributes||[]}},[Pe]),vt=(0,g.useCallback)(function(bn){he(function(On){if(On.editingAttribute){if(On.objectList[On.editingAttribute.index])On.objectList[On.editingAttribute.index].attributes=bn;else{var Nn=On.classifications.findIndex(function(mr){var yr;return mr.labelId===((yr=On.editingAttribute)===null||yr===void 0?void 0:yr.labelId)});if(Nn>-1)On.classifications[Nn].attributes=bn;else{var dr;On.classifications.push({labelId:(dr=On.editingAttribute)===null||dr===void 0?void 0:dr.labelId,labelValue:null,attributes:bn})}}On.editingAttribute=void 0}})},[he]),Tn=function(){he(function(On){On.editingAttribute=void 0})};return{judgeEditingAttribute:Bn,onConfirmAttibuteEdit:vt,onCancelAttibuteEdit:Tn}}var Co=e(95073),co=e(43112),Ca=e(5397),Za=e(21325),xo=e(68716),ei={screenX:NaN,screenY:NaN,clientX:NaN,clientY:NaN,pageX:NaN,pageY:NaN,elementX:NaN,elementY:NaN,elementH:NaN,elementW:NaN,elementPosX:NaN,elementPosY:NaN},ri=function(Ue){var he=(0,co.CR)((0,Ca.Z)(ei),2),Pe=he[0],Bn=he[1];return(0,Za.Z)("mousemove",function(vt){var Tn=vt.screenX,bn=vt.screenY,On=vt.clientX,Nn=vt.clientY,dr=vt.pageX,mr=vt.pageY,yr={screenX:Tn,screenY:bn,clientX:On,clientY:Nn,pageX:dr,pageY:mr,elementX:NaN,elementY:NaN,elementH:NaN,elementW:NaN,elementPosX:NaN,elementPosY:NaN},Ln=(0,xo.n)(Ue);if(Ln){var ea=Ln.getBoundingClientRect(),Cr=ea.left,ir=ea.top,Sr=ea.width,Ir=ea.height;yr.elementPosX=Cr+window.pageXOffset,yr.elementPosY=ir+window.pageYOffset,yr.elementX=dr-yr.elementPosX,yr.elementY=mr-yr.elementPosY,yr.elementW=Sr,yr.elementH=Ir}Bn(yr)},{target:function(){return document}}),Pe},ao=e(41260);function Mi(Ue){var he=Ue.isRequiring,Pe=Ue.visible,Bn=Ue.minPadding,vt=Bn===void 0?{top:0,left:0}:Bn,Tn=Ue.allowMove,bn=Ue.drawData,On=Ue.cursorSize,Nn=Ue.onClickMaskBg,dr=Ue.hideReferenceLine,mr=(0,g.useRef)(null),yr=(0,Co.Z)(function(){return mr.current}),Ln=ri(function(){return mr.current}),ea=(0,g.useState)({width:0,height:0}),Cr=s()(ea,2),ir=Cr[0],Sr=Cr[1],Ir=(0,M.x)({width:ir.width,height:ir.height,scale:1}),ia=s()(Ir,2),Kn=ia[0],Yr=ia[1],qr=(0,g.useRef)({x:0,y:0}),ua=(0,g.useRef)(void 0),tr=(0,g.useMemo)(function(){return t()(t()({},Ln),{},{elementW:Kn.width,elementH:Kn.height,elementX:Ln.elementX-qr.current.x,elementY:Ln.elementY-qr.current.y})},[Ln,Kn]),sr=(0,M.x)(null),_r=s()(sr,2),zr=_r[0],Fr=_r[1],xr=function(vr,Lr){if(vr!=null&&vr.width&&Lr!==null&&Lr!==void 0&&Lr.height){var ga=Lr.width,wr=Lr.height,ta=(0,Xr.t9)(vr.width,vr.height,ga-vt.left*2,wr-vt.top*2),ja=s()(ta,3),vo=ja[0],Fa=ja[1],da=ja[2];qr.current={x:(ga-vo)*.5,y:(wr-Fa)*.5},Yr({scale:da,width:vr.width*da,height:vr.height*da}),ua.current=void 0}};(0,g.useEffect)(function(){ir&&yr&&xr(ir,yr)},[yr]);var Tr=function(){if(yr){var vr=yr==null?void 0:yr.width,Lr=yr==null?void 0:yr.height,ga=.5,wr=.5,ta=vr/2,ja=Lr/2;ua.current&&(ga=ua.current.posRatioX,wr=ua.current.posRatioY,ta=ua.current.mouseX,ja=ua.current.mouseY);var vo=ta-Kn.width*ga,Fa=ja-Kn.height*wr;qr.current={x:vo,y:Fa}}};(0,g.useEffect)(function(){Tr()},[Kn]);var ya=function(vr,Lr,ga){!Pe||he||Yr(function(wr){var ta=vr?Math.min(Q.Fv,(0,ao.O)(wr.scale+Lr,2)):Math.max(Q.vL,(0,ao.O)(wr.scale-Lr,2));if((!ua.current||Ln.elementX!==ua.current.mouseX||Ln.elementY!==ua.current.mouseY)&&!ga&&!isNaN(tr.elementX)&&!isNaN(Ln.elementX)&&Kn.width){var ja={posRatioX:tr.elementX/Kn.width,posRatioY:tr.elementY/Kn.height,mouseX:Ln.elementX,mouseY:Ln.elementY};ua.current=ja}wr.scale=ta,wr.width=ir.width*ta,wr.height=ir.height*ta})},ba=(0,g.useCallback)(function(){ya(!0,Q.yj,!0)},[Q.yj,ya]),K=(0,g.useCallback)(function(){ya(!1,Q.yj,!0)},[Q.yj,ya]),B=function(vr){if(!(!Pe||he)){var Lr=vr.deltaY;Lr>0?ya(!1,Q.oP):Lr<0&&ya(!0,Q.oP)}},ue=(0,g.useCallback)(function(){ua.current=void 0,yr&&ir&&xr(ir,yr)},[ir.width,ir.height,yr==null?void 0:yr.width,yr==null?void 0:yr.height]);(0,g.useEffect)(function(){Pe||(Sr({width:0,height:0}),Yr({scale:1,width:0,height:0}),qr.current={x:0,y:0},ua.current=void 0)},[Pe]);var Me=(0,g.useState)(!1),Le=s()(Me,2),Je=Le[0],Dt=Le[1];(0,Za.Z)("mousedown",function(){!Pe||!mr.current||!(0,Xr.jt)(Ln)||(Dt(!0),Fr({x:tr.elementX,y:tr.elementY}))}),(0,Za.Z)("mousemove",function(){if(Pe&&zr&&Tn&&Je){var _n=tr.elementX-zr.x,vr=tr.elementY-zr.y,Lr=qr.current,ga=Lr.x,wr=Lr.y;qr.current={x:ga+_n,y:wr+vr}}}),(0,Za.Z)("mouseup",function(){if(Dt(!1),!(!Pe||!Tn)&&zr){Fr(null);return}}),(0,g.useEffect)(function(){Fr(Tn?{x:tr.elementX,y:tr.elementY}:null)},[Tn]);var Bt=function(vr,Lr){var ga=vr.target,wr={width:ga.naturalWidth,height:ga.naturalHeight};Sr(wr),yr&&wr&&!Lr&&xr(wr,yr)},lt=function(vr){(0,Xr.jt)(tr)||Nn==null||Nn(vr)},en=(0,g.useMemo)(function(){var _n=[Q.jB.AutoEdgeStitching,Q.jB.AutoSegmentByStroke,Q.jB.BrushAdd,Q.jB.BrushErase].includes(bn.selectedSubTool);return bn.creatingObject&&bn.activeObjectIndex>-1&&[Q.gr.Mask,Q.gr.Polygon].includes(bn.creatingObject.type)?_n:bn.selectedTool!==Q.ru.Drag&&!bn.isBatchEditing?[Q.ru.Mask,Q.ru.Polygon].includes(bn.selectedTool)&&_n:!1},[bn.selectedTool,bn.selectedSubTool]),En=(0,g.useMemo)(function(){return bn.selectedTool!==Q.ru.Drag&&!en&&!dr},[bn.selectedTool,en,dr]),wn=function(vr){var Lr=vr.children,ga=vr.className;return Pe?(0,x.jsxs)("div",{ref:mr,onWheel:B,onClick:lt,className:ga,children:[Lr,En&&!Tn&&(0,Xr.jt)(tr)&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{style:{position:"absolute",backgroundColor:"#fff",width:Ln.elementX-18,height:1,left:0,top:0,transform:"translateY(".concat(Ln.elementY,"px)")}}),(0,x.jsx)("div",{style:{position:"absolute",backgroundColor:"#fff",height:1,width:Ln.elementW-Ln.elementX-18,right:0,top:0,transform:"translateY(".concat(Ln.elementY,"px)")}}),(0,x.jsx)("div",{style:{position:"absolute",backgroundColor:"#fff",width:1,height:Ln.elementY-18,left:0,top:0,transform:"translateX(".concat(Ln.elementX-1,"px")}}),(0,x.jsx)("div",{style:{position:"absolute",backgroundColor:"#fff",width:1,height:Ln.elementH-Ln.elementY-18,left:0,bottom:0,transform:"translateX(".concat(Ln.elementX-1,"px")}})]}),en&&On>0&&(0,Xr.jt)(Ln)&&(0,Xr.jt)(tr)&&!Tn&&(0,x.jsx)("div",{style:{position:"fixed",backgroundColor:"rgba(255, 255, 255, 0.5)",border:"1px solid rgba(255, 255, 255, 0.7)",width:On*Kn.scale,height:On*Kn.scale,borderRadius:On*Kn.scale/2,left:0,top:0,transformOrigin:"top left",transform:"translate(".concat(Ln.clientX-On*Kn.scale/2,"px, ").concat(Ln.clientY-On*Kn.scale/2,"px)")}})]}):null};return{CanvasContainer:wn,scale:Kn.scale,containerRef:mr,naturalSize:ir,clientSize:{width:Kn.width,height:Kn.height},containerSize:yr,containerMouse:t()(t()({},Ln),{},{elementW:(yr==null?void 0:yr.width)||Ln.elementW,elementH:(yr==null?void 0:yr.height)||Ln.elementH}),contentMouse:tr,imagePos:qr,isMousePress:Je,onLoadImg:Bt,onZoomIn:ba,onZoomOut:K,onWheelMove:B,onReset:ue}}var ji=function(he){var Pe=he.index,Bn=he.targetElement,vt=he.imagePos;return(0,x.jsx)(A,{children:(0,x.jsx)("div",{className:"dds-annotator-popover-menu",style:{left:Bn.x+vt.x+5,top:Bn.y+vt.y+5},children:(0,x.jsx)("div",{className:"dds-annotator-popover-menu-content",children:(0,x.jsx)("span",{className:"dds-annotator-popover-menu-text",children:"".concat(Pe+1," ").concat(Bn.name)})})})})},Xo=ji,Ho=e(34095),ui=e(14464),li=e(81179),Ci=function(he){var Pe=he.visible,Bn=he.drawData,vt=he.editState,Tn=he.clientSize,bn=he.imagePos,On=he.containerMouse,Nn=he.canvasRef,dr=he.activeCanvasRef,mr=he.imgRef,yr=he.objectHooksMap,Ln=he.videoLoading,ea=function(tr,sr,_r){var zr=[(0,ui.a7)(sr,Ho.rl.DEFAULT),(0,ui.a7)(sr,Ho.mh.DEFAULT),Ho.s_.DEFAULT],Fr=zr[0],xr=zr[1],Tr=zr[2];return _r==="focus"?(Tr=Ho.s_.FOCUS,Fr=(0,ui.a7)(sr,Ho.rl.FOCUS),xr=(0,ui.a7)(sr,Ho.mh.FOCUS)):_r==="justCreated"?(Tr=Ho.s_.JUST_CREATED,xr=(0,ui.a7)(sr,Ho.mh.JUST_CREATED)):_r==="editing"?(Tr=Ho.s_.CREATING,Fr=(0,ui.a7)(sr,Ho.rl.CREATING),xr=(0,ui.a7)(sr,Ho.mh.CREATING)):_r==="creating"&&(Tr=Ho.s_.CREATING,Fr=Ho.XQ.CREATING,xr=Ho.Bt.CREATING),t()({strokeColor:Fr,fillColor:xr,maskAlpha:Tr,strokeDash:[0],thickness:2,pointAplha:1},tr.customStyles||{})},Cr=function(tr){var sr=ea(tr,tr.color,"creating");yr[tr.type].renderCreatingObject({object:tr,color:tr.color,styles:sr})},ir=function(tr){if(!tr.hidden){var sr=(0,Xr.lT)(tr,{x:-bn.current.x,y:-bn.current.y}),_r=vt.focusObjectIndex===Bn.activeObjectIndex,zr=ea(tr,tr.color,_r?"focus":"editing");yr[tr.type].renderEditingObject({object:sr,color:tr.color,styles:zr,isFocus:_r})}},Sr=function(tr){var sr=tr.prompt;if(sr.creatingPrompt||sr.promptsQueue||sr.activeRectWhileLoading){var _r,zr;tr.selectedTool===Q.ru.Mask||((_r=tr.creatingObject)===null||_r===void 0?void 0:_r.type)===Q.gr.Mask?yr[Q.gr.Mask].renderPrompt({prompt:sr}):tr.selectedTool===Q.ru.Polygon||((zr=tr.creatingObject)===null||zr===void 0?void 0:zr.type)===Q.gr.Polygon?yr[Q.gr.Polygon].renderPrompt({prompt:sr}):tr.selectedTool===Q.ru.Rectangle&&tr.selectedModel[tr.selectedTool]===Q.HE.IVP&&yr[Q.gr.Rectangle].renderPrompt({prompt:sr})}},Ir=function(tr){if(!(!Pe||!dr.current)){(0,li.ix)(dr.current,{width:On.elementW,height:On.elementH}),dr.current.getContext("2d").imageSmoothingEnabled=!1,(0,li.UN)(dr.current);var sr=tr||Bn;sr.creatingObject&&(sr.activeObjectIndex>-1?ir(sr.creatingObject):Cr(sr.creatingObject)),Sr(sr)}},ia=function(tr,sr,_r){var zr=(0,Xr.lT)(tr,{x:-bn.current.x,y:-bn.current.y}),Fr=zr.type,xr=sr?"focus":_r?"justCreated":void 0,Tr=ea(tr,tr.color,xr);(0,li.M5)(Nn.current,Bn.creatingObject?.6:1),yr[Fr].renderObject({object:zr,color:tr.color,styles:Tr,isFocus:sr,isJustCreated:_r})},Kn=function(tr,sr){tr.forEach(function(_r,zr){var Fr;if(!(_r.hidden||zr===sr||zr===vt.focusObjectIndex||_r.frameEmpty)){var xr=((Fr=Bn.editingAttribute)===null||Fr===void 0?void 0:Fr.index)===zr,Tr=!vt.isCtrlPressed&&_r.status===W.TK.Checked||Bn.isJustCreated&&zr===tr.length-1;ia(_r,xr,Tr)}})},Yr=function(tr){if(!(!Pe||!Nn.current||!mr.current||!mr.current.complete)){if(Ln){(0,li.UN)(Nn.current);return}(0,li.ix)(Nn.current,{width:On.elementW,height:On.elementH}),Nn.current.getContext("2d").imageSmoothingEnabled=!1,(0,li.UN)(Nn.current),(0,li.KJ)(Nn.current,vt.imageDisplayOptions.brightness,vt.imageDisplayOptions.contrast,vt.imageDisplayOptions.saturate),(0,li.AE)(Nn.current,mr.current,{x:bn.current.x,y:bn.current.y,width:Tn.width,height:Tn.height}),(0,li.ku)(Nn.current);var sr=tr||Bn;Kn(sr.objectList,sr.activeObjectIndex),Ir(sr),vt.focusObjectIndex>-1&&vt.focusObjectIndex!==Bn.activeObjectIndex&&sr.objectList[vt.focusObjectIndex]&&!sr.objectList[vt.focusObjectIndex].hidden&&!sr.objectList[vt.focusObjectIndex].frameEmpty&&ia(sr.objectList[vt.focusObjectIndex],!0,!1)}},qr=function(){if(vt.focusObjectIndex>-1&&Bn.objectList[vt.focusObjectIndex]&&!Bn.objectList[vt.focusObjectIndex].hidden&&vt.focusEleIndex>-1&&vt.focusEleType===Q.Yq.Circle){var tr,sr,_r=(tr=Bn.objectList[vt.focusObjectIndex].keypoints)===null||tr===void 0||(sr=tr.points)===null||sr===void 0?void 0:sr[vt.focusEleIndex];if(_r)return(0,x.jsx)(Xo,{index:vt.focusEleIndex,targetElement:_r,imagePos:bn.current})}return(0,x.jsx)(x.Fragment,{})};return{updateRender:Yr,renderPopoverMenu:qr}},Ni=Ci;function xi(Ue){var he=Ue.categories,Pe=Ue.editState,Bn=Ue.forceColorByObject,vt=(0,g.useMemo)(function(){return(0,ui.Cj)(he.map(function(Nn){return Nn.id}))},[he]),Tn=(0,g.useRef)(0),bn=function(dr){var mr=.618;Tn.current=dr+mr;var yr=(dr+mr)%1,Ln=(0,ui.WE)(yr,.8,.95);return(0,ui.ZT)(Ln)};(0,g.useEffect)(function(){Tn.current=0},[Pe.annotsDisplayOptions.colorByCategory]);var On=(0,g.useCallback)(function(Nn,dr){if(!Bn&&(Pe.annotsDisplayOptions.colorByCategory||dr)){var mr=he.find(function(yr){return yr.id===Nn});return(mr==null?void 0:mr.renderColor)||vt[Nn]||"#fff"}else return bn(Tn.current)},[Pe.annotsDisplayOptions.colorByCategory,vt,bn,Tn.current,Bn]);return{labelColors:vt,getAnnotColor:On}}function no(Ue,he){var Pe=(0,g.useRef)(),Bn=(0,g.useRef)(),vt=typeof he=="function"?he(Bn.current,Ue):!0;vt&&(Pe.current=Bn.current,Bn.current=Ue);var Tn=function(){Pe.current=void 0};return[Pe.current,Tn]}var Qa=function(he){var Pe=he.imagePos,Bn=he.clientSize,vt=he.naturalSize,Tn=he.annotations,bn=he.setAnnotations,On=he.drawData,Nn=he.setDrawData,dr=he.setFramesData,mr=he.editState,yr=he.setEditState,Ln=he.initObjectList,ea=he.updateRender,Cr=he.clearHistory,ir=he.objectsFilter,Sr=he.labelOptions,Ir=he.customDefaultDrawData,ia=no(Bn),Kn=s()(ia,2),Yr=Kn[0],qr=Kn[1],ua=function(xr,Tr){if(!(!Bn.width||!Bn.height||!vt.width||!vt.height)){if(!On.initialized||xr)Ln(Tr||Tn);else if(On.initialized&&Yr){dr&&(dr==null||dr(function(ba){ba.objects=(0,Xr.nF)(ba.objects,Yr,Bn)}));var ya=(0,Xr.hv)(On,Yr,Bn);Nn(ya),ea(ya),qr()}}},tr=(0,g.useCallback)(function(){Nn(t()(t()({},(0,m.cloneDeep)(W.f7)),{},{brushSize:On.brushSize,selectedTool:On.selectedTool,selectedSubTool:On.selectedSubTool,selectedModel:On.selectedModel,AIAnnotation:On.AIAnnotation},Ir))},[W.f7,Ir,On.brushSize,On.selectedSubTool,On.selectedTool,On.AIAnnotation]),sr=(0,g.useCallback)(function(){var Fr;yr(t()(t()({},(0,m.cloneDeep)(W.rl)),{},{latestLabelId:(Sr==null||(Fr=Sr[0])===null||Fr===void 0?void 0:Fr.id)||"",imageDisplayOptions:mr.imageDisplayOptions,annotsDisplayOptions:mr.annotsDisplayOptions}))},[W.rl,Sr,mr.imageDisplayOptions,mr.annotsDisplayOptions]),_r=(0,g.useCallback)(function(Fr){var xr=Fr!=null&&Fr.objects?Kt()(Fr==null?void 0:Fr.objects):[],Tr=Fr&&ir?ir(Fr)||[]:xr;bn(Tr),ua(!0,Tr)},[ir,ua]),zr=(0,g.useCallback)(function(Fr){var xr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,Tr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;bn([]),tr(),sr(),Tr&&Cr(),xr&&Fr&&_r(Fr)},[tr,sr,Cr,_r]);return(0,g.useEffect)(function(){ea()},[On,mr,Pe.current.x,Pe.current.y]),(0,g.useEffect)(function(){ua()},[Bn.height,Bn.width]),(0,g.useEffect)(function(){ua(!0)},[vt.width,vt.height]),(0,g.useEffect)(function(){Sr!=null&&Sr.length&&yr(function(Fr){if(!Fr.latestLabelId||!Sr.find(function(Tr){return Tr.id===Fr.latestLabelId})){var xr;Fr.latestLabelId=(xr=Sr[0])===null||xr===void 0?void 0:xr.id}})},[Sr]),{rebuildDrawData:ua,resetDataWithImageData:zr}},ti=Qa,ai=function(he){var Pe=he.clientSize,Bn=he.naturalSize,vt=he.onAutoSave,Tn=he.setDrawData,bn=he.translateObject,On=he.framesData,Nn=he.setFramesData,dr=(0,g.useRef)(!1),mr=(0,M.x)([]),yr=s()(mr,2),Ln=yr[0],ea=yr[1],Cr=(0,g.useState)(0),ir=s()(Cr,2),Sr=ir[0],Ir=ir[1],ia=20,Kn=function(){dr.current=!1},Yr=function(xr){if(vt){var Tr=xr.drawData.objectList.map(function(ya){return(bn==null?void 0:bn(ya))||{}});vt(Tr,Bn)}},qr=(0,g.useCallback)(function(Fr){Nn==null||Nn(function(Tr){if(Fr.framesData){var ya;Tr.activeIndex=(ya=Fr.framesData)===null||ya===void 0?void 0:ya.activeIndex,Tr.objects=(0,Xr.nF)(Fr.framesData.objects,Fr.clientSize,Pe)}});var xr=(0,Xr.hv)(Fr.drawData,Fr.clientSize,Pe);Tn(xr),Yr(Fr)},[Pe.width,Pe.height]),ua=(0,g.useCallback)(function(){Sr>0&&(Ir(function(Fr){return dr.current=Ln.length>1&&Fr-1!==0,Fr-1}),qr(Ln[Sr-1]))},[Sr,Ln,qr]),tr=(0,g.useCallback)(function(){Sr1&&Fr+1!==0,Fr+1}),qr(Ln[Sr+1]))},[Sr,Ln,qr]),sr=function(xr,Tr){var ya=(0,m.cloneDeep)({drawData:xr,clientSize:Pe,framesData:Tr||On});ea(function(ba){var K,B,ue;if(ba[Sr]&&(0,m.isEqual)(ya,ba[Sr])||Sr===0&&(0,m.isEqual)(ya.drawData,(K=ba[Sr])===null||K===void 0?void 0:K.drawData))return ba;!Tr&&ya.framesData&&Nn&&ya.drawData.objectList.length&&!(0,m.isEqual)(ya.drawData.objectList,(B=ba[Sr])===null||B===void 0||(ue=B.drawData)===null||ue===void 0?void 0:ue.objectList)&&(ya.framesData.objects=(0,Xr.cf)(ya.drawData.objectList,ya.framesData.objects,ya.framesData.list.length,ya.framesData.activeIndex,Bn),Nn(function(Me){Me.objects=(0,m.cloneDeep)(ya.framesData.objects)})),ba.splice(Sr+1),ba.push(ya),ba.length>ia&&ba.shift(),Ir(ba.length-1),dr.current=ba.length>1&&ba.length-1!==0}),Yr(ya)},_r=(0,g.useCallback)(function(){ea([])},[]),zr=function(xr){typeof xr=="function"?Tn(function(Tr){xr(Tr),sr((0,m.cloneDeep)(Tr))}):(Tn(xr),sr((0,m.cloneDeep)(xr)))};return{updateHistory:sr,undo:ua,redo:tr,clearHistory:_r,setDrawDataWithHistory:zr,flagSaved:Kn,hadChangeRecord:dr.current}},jo=ai;function Zo(Ue){var he=Ue.isOldMode,Pe=Ue.categories,Bn=Ue.setCategories,vt=Ue.drawData,Tn=Ue.setDrawData,bn=Ue.editState,On=Ue.updateObjectWithoutHistory,Nn=Ue.updateAllObjectWithoutHistory,dr=vt.objectList,mr=(0,g.useMemo)(function(){if(he)return Pe;if(vt.objectList[vt.activeObjectIndex]||vt.selectedTool!==Q.ru.Drag){var Kn=vt.objectList[vt.activeObjectIndex]?Object.keys(Q.Zo).find(function(qr){return vt.objectList[vt.activeObjectIndex].type===Q.Zo[qr]}):vt.selectedTool,Yr=Object.keys(Q.t).find(function(qr){return Kn===Q.t[qr]});return Pe.filter(function(qr){return qr.labelType===Yr})}return[]},[Pe,vt.objectList,vt.activeObjectIndex,vt.selectedTool]),yr=(0,g.useMemo)(function(){return(Pe==null?void 0:Pe.filter(function(Kn){return Kn.labelType===Q.Ze.Classification}))||[]},[Pe]),Ln=(0,g.useCallback)(function(Kn){Pe.find(function(Yr){return Yr.name===Kn})||!Bn||Bn(function(Yr){return[].concat(Kt()(Yr),[{id:Kn,name:Kn}])})},[Pe]),ea=(0,g.useCallback)(function(Kn,Yr){var qr=t()({},vt.objectList[Kn]);qr.hidden=Yr,On(qr,Kn)},[vt.objectList]),Cr=(0,g.useCallback)(function(Kn,Yr){var qr=vt.objectList.map(function(ua){var tr,sr=t()({},ua);return((tr=Pe.find(function(_r){return _r.id===ua.labelId}))===null||tr===void 0?void 0:tr.name)===Kn&&(sr.hidden=Yr),sr});Nn(qr)},[vt.objectList]),ir=function(Yr,qr){var ua=t()({},vt.objectList[bn.focusObjectIndex]);switch(Yr){case Q.Yq.Rect:{ua.rect&&(ua.rect.visible=qr,On(ua,bn.focusObjectIndex));break}case Q.Yq.Polygon:{ua.polygon&&(ua.polygon.visible=qr,On(ua,bn.focusObjectIndex));break}}},Sr=(0,g.useCallback)(function(Kn,Yr){var qr,ua,tr=(0,m.cloneDeep)(vt.objectList[vt.activeObjectIndex]),sr=(qr=tr.keypoints)===null||qr===void 0||(ua=qr.points)===null||ua===void 0?void 0:ua[Kn];sr&&(sr.visible=Yr),On(tr,vt.activeObjectIndex)},[vt.activeObjectIndex,vt.objectList]),Ir=(0,g.useCallback)(function(Kn){Tn(function(Yr){Kn!==Yr.activeClassName&&(Yr.activeClassName=Kn)})},[]);(0,g.useEffect)(function(){var Kn;if(!(vt.activeObjectIndex<0)){var Yr=((Kn=Pe.find(function(qr){return qr.id===vt.objectList[vt.activeObjectIndex].labelId}))===null||Kn===void 0?void 0:Kn.name)||"";Yr!==vt.activeClassName&&Ir(Yr)}},[vt.activeObjectIndex]);var ia=(0,g.useMemo)(function(){var Kn=mr.find(function(Yr){return Yr.id===bn.latestLabelId});return(Kn==null?void 0:Kn.labelName)||(Kn==null?void 0:Kn.name)||""},[mr,bn.latestLabelId]);return{labelOptions:mr,latestLabel:ia,classificationOptions:yr,curObjects:dr,onChangeObjectHidden:ea,onChangeCategoryHidden:Cr,onChangeElementVisible:ir,onChangePointVisible:Sr,onChangeActiveClass:Ir,onCreateCategory:Ln}}var Ii=function(he){var Pe=he.topCanvas,Bn=he.editState,vt=he.drawData,Tn=(0,g.useCallback)(function(bn,On){if(Pe){var Nn=bn;if(On)switch(On){case Xr.Nm.TOP:case Xr.Nm.BOTTOM:Nn="ns-resize";break;case Xr.Nm.TOP_LEFT:case Xr.Nm.BOTTOM_RIGHT:Nn="nwse-resize";break;case Xr.Nm.BOTTOM_LEFT:case Xr.Nm.TOP_RIGHT:Nn="nesw-resize";break;default:Nn="ew-resize"}Nn!==Pe.style.cursor&&(Pe.style.cursor=Nn)}},[Pe]);return(0,g.useEffect)(function(){Bn.allowMove?Tn("grabbing"):vt.selectedTool===Q.ru.Drag?Tn("grab"):Tn("crosshair")},[Bn.allowMove]),{updateMouseCursor:Tn}},Ri=Ii,ki=e(23671),ws=e(53807),ms=function(Ue,he){if(he===void 0&&(he=0),typeof requestAnimationFrame=="undefined")return{id:setInterval(Ue,he)};var Pe=new Date().getTime(),Bn={id:0},vt=function(){var Tn=new Date().getTime();Tn-Pe>=he&&(Ue(),Pe=new Date().getTime()),Bn.id=requestAnimationFrame(vt)};return Bn.id=requestAnimationFrame(vt),Bn};function Qs(Ue){return typeof cancelAnimationFrame=="undefined"}var Ml=function(Ue){if(Qs(Ue.id))return clearInterval(Ue.id);cancelAnimationFrame(Ue.id)};function Vn(Ue,he,Pe){var Bn=Pe==null?void 0:Pe.immediate,vt=(0,ki.Z)(Ue),Tn=(0,g.useRef)();(0,g.useEffect)(function(){if(!(!(0,ws.hj)(he)||he<0))return Bn&&vt.current(),Tn.current=ms(function(){vt.current()},he),function(){Tn.current&&Ml(Tn.current)}},[he]);var bn=(0,g.useCallback)(function(){Tn.current&&Ml(Tn.current)},[]);return bn}var Vr=Vn,Or=40,Br=10,aa=function(he){var Pe=he.visible,Bn=he.mode,vt=he.drawData,Tn=he.setDrawData,bn=he.editState,On=he.setEditState,Nn=he.clientSize,dr=he.contentMouse,mr=he.categories,yr=he.updateRender,Ln=he.updateMouseCursor,ea=he.objectHooksMap,Cr=he.imagePos,ir=he.containerMouse,Sr=he.limitActiveObject,Ir=he.getAnnotColor,ia=(0,g.useRef)({topMin:0,topMax:0,leftMin:0,leftMax:0}),Kn=(0,g.useState)(void 0),Yr=s()(Kn,2),qr=Yr[0],ua=Yr[1];Vr(function(){var K,B,ue,Me,Le=!1;(K=ia.current.direction)!==null&&K!==void 0&&K.includes("TOP")&&Cr.current.yia.current.topMin&&(Cr.current.y-=8,Le=!0),(ue=ia.current.direction)!==null&&ue!==void 0&&ue.includes("LEFT")&&Cr.current.xia.current.leftMin&&(Cr.current.x-=8,Le=!0),Le||ua(void 0),yr()},qr);var tr=function(){var B="",ue=Or,Me=ir.elementH-dr.elementH-Or,Le=Or,Je=ir.elementW-dr.elementW-Or;ir.elementY<=Br&&Cr.current.y=ir.elementH-Br&&Cr.current.y>Me&&(B="BOTTOM"),ir.elementX<=Br&&Cr.current.x=ir.elementW-Br&&Cr.current.x>Je&&(B+=B?"_RIGHT":"RIGHT"),B?(ia.current={direction:B,topMax:ue,topMin:Me,leftMax:Le,leftMin:Je},ua(16)):ua(void 0)},sr=function(){var B;return vt.isBatchEditing&&(vt.selectedTool===Q.ru.Rectangle&&bn.isCtrlPressed?B=function(Me){return Me.status===W.TK.Unchecked}:B=function(Me){return Me.status!==W.TK.Unchecked}),B},_r=function(){if((0,Xr.jt)(ir)){var B=(0,Xr.Z0)(Nn,dr,vt.activeObjectIndex,vt.objectList,sr());if(B>-1&&B===vt.activeObjectIndex){On(function(Bt){Bt.focusObjectIndex=B});var ue=vt.objectList[vt.activeObjectIndex],Me=(0,Xr.o7)(dr,ue),Le=Me.focusEleIndex,Je=Me.focusEleType,Dt=Me.focusPolygonInfo;On(function(Bt){Bt.focusEleIndex=Le,Bt.focusEleType=Je,Bt.focusPolygonInfo=Dt})}else vt.selectedTool===Q.ru.Drag||vt.isBatchEditing?On(function(Bt){Bt.focusObjectIndex=B,Bt.focusEleIndex=-1,Bt.focusEleType=Q.Yq.None,Bt.focusPolygonInfo={index:-1,pointIndex:-1,lineIndex:-1}}):On(function(Bt){Bt.focusObjectIndex=-1,Bt.focusEleIndex=-1,Bt.focusEleType=Q.Yq.None,Bt.focusPolygonInfo={index:-1,pointIndex:-1,lineIndex:-1}})}},zr=(0,g.useCallback)(function(K,B){if(!(K<0)){var ue=(B==null?void 0:B.button)===2;if(ue){var Me=(0,Xr.RF)(Nn,dr,vt.objectList,sr());Me.length>0?On(function(Le){Le.foucsObjectAllIndexs=Me}):On(function(Le){Le.foucsObjectAllIndexs=[]});return}Tn(function(Le){var Je;if(Le.selectedTool===Q.ru.Rectangle&&Le.isBatchEditing&&bn.isCtrlPressed)Le.objectList[K].status=W.TK.Checked,On(function(Bt){Bt.focusObjectIndex=-1});else{var Dt;Le.AIAnnotation=!1,Le.activeObjectIndex=K,(Dt=Le.objectList[K])!==null&&Dt!==void 0&&Dt.frameEmpty?Le.creatingObject=void 0:Le.creatingObject=t()(t()({},Le.objectList[K]),{},{currIndex:void 0,startPoint:void 0,tempMaskSteps:[],maskStep:void 0}),Le.selectedTool!==Q.ru.Drag&&Le.objectList[K]&&Q.Zo[Le.selectedTool]!==Le.objectList[K].type&&(Le.selectedTool=Q.ru.Drag)}((Je=Le.editingAttribute)===null||Je===void 0?void 0:Je.index)!==K&&(Le.editingAttribute=void 0)})}},[Nn.width,Nn.height,dr,vt.objectList]),Fr=function(){if(!bn.foucsObjectAllIndexs.length)return(0,x.jsx)(x.Fragment,{});var B=function(Je){Je.stopPropagation()},ue=function(Je){On(function(Dt){Dt.focusObjectIndex=Je})},Me=function(Je){zr(Je),On(function(Dt){Dt.foucsObjectAllIndexs=[]})};return(0,x.jsx)("div",{className:"dds-annotator-dropdown-options",onMouseDown:B,onMouseUp:B,onMouseMove:B,onContextMenu:function(Je){return Je.preventDefault()},children:bn.foucsObjectAllIndexs.map(function(Le){var Je,Dt,Bt;return(0,x.jsxs)("div",{className:"dds-annotator-dropdown-options-object",onMouseEnter:function(){return ue(Le)},onMouseDown:function(){return Me(Le)},children:[(0,x.jsx)("div",{className:"dds-annotator-dropdown-options-object-dot",style:{backgroundColor:((Je=vt.objectList[Le])===null||Je===void 0?void 0:Je.color)||"#fff"}}),((Dt=mr.find(function(lt){var en;return lt.id===((en=vt.objectList[Le])===null||en===void 0?void 0:en.labelId)}))===null||Dt===void 0?void 0:Dt.name)||"",vt.isBatchEditing&&" (".concat((0,ao.O)(((Bt=vt.objectList[Le])===null||Bt===void 0?void 0:Bt.conf)||0),")")]},Le)})})},xr=function(B){if(!(!Pe||bn.allowMove||bn.isRequiring||!(0,Xr.jt)(dr)||!(0,Xr.jt)(ir))&&(On(function(Me){Me.foucsObjectAllIndexs=[]}),!(vt.creatingObject&&vt.activeObjectIndex>-1&&Bn===W.je.Edit&&ea[vt.creatingObject.type].startEditingWhenMouseDown({event:B,object:vt.creatingObject}))))if(vt.selectedTool!==Q.ru.Drag&&(!vt.isBatchEditing||vt.selectedModel[vt.selectedTool]===Q.HE.IVP)){Tn(function(Me){Me.editingAttribute=void 0});var ue=Q.Zo[vt.selectedTool];if(Bn===W.je.Edit&&ea[ue].startCreatingWhenMouseDown({event:B,object:vt.creatingObject,point:{x:dr.elementX,y:dr.elementY},basic:{hidden:!1,labelId:bn.latestLabelId||mr[0].id,status:W.TK.Commited,color:Ir(bn.latestLabelId||mr[0].name)}}))return}else bn.focusObjectIndex>-1&&!Sr?zr(bn.focusObjectIndex,B):(On(function(Me){Me.allowMove=!0}),Tn(function(Me){Me.activeObjectIndex=-1,Me.editingAttribute=void 0,Me.creatingObject=void 0}))},Tr=function(B){if(!(!Pe||bn.isRequiring||bn.allowMove)){if(bn.focusObjectIndex>-1?Ln("pointer"):vt.selectedTool!==Q.ru.Drag?Ln("crosshair"):Ln("grab"),vt.creatingObject&&vt.activeObjectIndex>-1){if(Bn===W.je.Edit&&ea[vt.creatingObject.type].updateEditingWhenMouseMove({event:B,object:vt.creatingObject})){var ue,Me=vt.creatingObject.type===Q.gr.Mask&&!((ue=vt.creatingObject)!==null&&ue!==void 0&&ue.maskStep);Me||tr(),yr();return}}else if(vt.selectedTool!==Q.ru.Drag&&vt.activeObjectIndex<0){var Le=Q.Zo[vt.selectedTool];if(Bn===W.je.Edit&&ea[Le].updateCreatingWhenMouseMove({event:B,object:vt.creatingObject})){var Je,Dt=Le===Q.gr.Mask&&!((Je=vt.creatingObject)!==null&&Je!==void 0&&Je.maskStep);Dt||tr(),yr();return}}_r(),yr()}},ya=function(B){if(ua(void 0),!(!Pe||bn.isRequiring)){if(bn.allowMove){On(function(Me){Me.allowMove=!1});return}if(vt.creatingObject&&vt.activeObjectIndex>-1){if(Bn===W.je.Edit&&ea[vt.creatingObject.type].finishEditingWhenMouseUp({event:B,object:vt.creatingObject}))return}else if(vt.selectedTool!==Q.ru.Drag&&vt.activeObjectIndex<0){var ue=Q.Zo[vt.selectedTool];if(Bn===W.je.Edit&&ea[ue].finishCreatingWhenMouseUp({event:B,object:vt.creatingObject}))return}}},ba=(0,g.useCallback)(function(K){On(function(B){B.focusObjectIndex=K})},[]);return(0,Za.Z)("mousedown",function(K){xr(K)}),(0,Za.Z)("mousemove",function(K){Tr(K)}),(0,Za.Z)("mouseup",function(K){ya(K)}),{selectFocusObject:zr,forceChangeFocusObject:ba,mouseRightObjectsDropDownRender:Fr}},Ta=aa,za=function(he){var Pe=he.mode,Bn=he.categories,vt=he.drawData,Tn=he.setDrawData,bn=he.setDrawDataWithHistory,On=he.framesData,Nn=he.setFramesData,dr=he.setEditState,mr=he.translateToObject,yr=he.judgeEditingAttribute,Ln=he.updateHistory,ea=function(sr){Tn(function(_r){var zr=(0,m.cloneDeep)(_r),Fr=(0,m.cloneDeep)(On);if(zr.initialized=!0,Fr){var xr=sr.map(function(ya){return(mr==null?void 0:mr(ya,Fr.list.length))||{}});Fr.objects=xr.filter(function(ya){return!!ya.objects}).map(function(ya){return ya.objects}),zr.classifications=xr.filter(function(ya){return!!ya.classification}).map(function(ya){return ya.classification}),zr.objectList=Fr.objects.map(function(ya){return ya[Fr.activeIndex]}),Nn==null||Nn(Fr)}else{var Tr=sr.map(function(ya){return(mr==null?void 0:mr(ya))||{}});zr.classifications=Tr.filter(function(ya){return ya.type===Q.gr.Classification}),zr.objectList=Tr.filter(function(ya){return ya.type!==Q.gr.Custom&&ya.type!==Q.gr.Classification})}return Ln((0,m.cloneDeep)(zr),(0,m.cloneDeep)(Fr)),zr})},Cr=function(sr){Pe===W.je.Edit&&bn(function(_r){var zr;_r.objectList.push(sr),_r.isJustCreated=!0,_r.creatingObject=void 0,_r.activeObjectIndex=-1,_r.activeClassName=((zr=Bn.find(function(Fr){return Fr.id===sr.labelId}))===null||zr===void 0?void 0:zr.name)||"",yr&&(_r.editingAttribute=yr(sr,_r.objectList.length-1))})},ir=function(sr){if(!(Pe!==W.je.Edit||!vt.objectList[sr])){dr(function(Fr){Fr.focusObjectIndex=-1,Fr.focusEleIndex=-1,Fr.focusEleType=Q.Yq.Rect});var _r=(0,m.cloneDeep)(On),zr=(0,m.cloneDeep)(vt);_r&&_r.objects[sr]&&(_r.objects.splice(sr,1),Nn==null||Nn(_r)),zr.objectList[sr]&&(zr.objectList.splice(sr,1),zr.activeObjectIndex=-1,zr.creatingObject=void 0,zr.editingAttribute=void 0),Tn(zr),Ln((0,m.cloneDeep)(zr),(0,m.cloneDeep)(_r))}},Sr=(0,g.useCallback)(function(){if(Pe===W.je.Edit){dr(function(_r){_r.focusObjectIndex=-1,_r.focusEleIndex=-1,_r.focusEleType=Q.Yq.Rect});var tr=(0,m.cloneDeep)(On),sr=(0,m.cloneDeep)(vt);tr&&(tr.objects=[],Nn==null||Nn(tr)),sr.objectList=[],sr.activeObjectIndex=-1,sr.creatingObject=void 0,sr.editingAttribute=void 0,Tn(sr),Ln((0,m.cloneDeep)(sr),(0,m.cloneDeep)(tr))}},[Pe,On,vt]),Ir=function(sr,_r){Pe!==W.je.Edit||!vt.objectList[_r]||bn(function(zr){sr.labelId!==zr.objectList[_r].labelId&&yr&&(zr.editingAttribute=yr(sr,_r)),zr.objectList[_r]=sr,zr.creatingObject&&zr.activeObjectIndex===_r&&(zr.creatingObject=t()({},sr))})},ia=function(sr){bn(function(_r){_r.objectList=sr,_r.creatingObject&&_r.objectList[_r.activeObjectIndex]&&(_r.creatingObject=t()({},_r.objectList[_r.activeObjectIndex])),_r.isJustCreated=!1})},Kn=function(sr,_r){vt.objectList[_r]&&Tn(function(zr){zr.objectList[_r]=sr,zr.creatingObject&&zr.activeObjectIndex===_r&&(zr.creatingObject=t()({},sr))})},Yr=function(sr){Tn(function(_r){_r.objectList=sr,_r.creatingObject&&_r.objectList[_r.activeObjectIndex]&&(_r.creatingObject=t()({},_r.objectList[_r.activeObjectIndex]))})},qr=(0,g.useMemo)(function(){return vt.objectList.filter(function(tr){return(tr==null?void 0:tr.status)===W.TK.Commited})},[vt.isBatchEditing,vt.objectList]),ua=(0,g.useMemo)(function(){return vt.objectList[vt.activeObjectIndex]||vt.creatingObject},[vt.objectList,vt.activeObjectIndex,vt.creatingObject]);return{initObjectList:ea,addObject:Cr,removeObject:ir,removeAllObjects:Sr,updateObject:Ir,updateAllObject:ia,updateObjectWithoutHistory:Kn,updateAllObjectWithoutHistory:Yr,commitedObjects:qr,currObject:ua}},La=za,Fo=function(he){var Pe=he.visible,Bn=he.mode,vt=he.drawData,Tn=he.categories,bn=he.isMousePress,On=he.setDrawData,Nn=he.setEditState,dr=he.onSaveAnnotations,mr=he.onAcceptAnnotations,yr=he.onRejectAnnotations,Ln=he.onChangeObjectHidden,ea=he.onChangeCategoryHidden,Cr=he.removeObject,ir=he.addObject;return(0,Ce.Z)(Ee[Ie.Save].shortcut,function(Sr){Sr.preventDefault(),Bn===W.je.Edit&&(dr==null||dr())},{exactMatch:!0}),(0,Ce.Z)(Ee[Ie.Accept].shortcut,function(Sr){Sr.preventDefault(),mr==null||mr()},{exactMatch:!0}),(0,Ce.Z)(Ee[Ie.Reject].shortcut,function(Sr){Sr.preventDefault(),yr==null||yr()},{exactMatch:!0}),(0,Ce.Z)(Ee[Ie.PanImage].shortcut,function(Sr){Pe&&(Sr.type==="keydown"&&!bn?Nn(function(Ir){Ir.allowMove=!0}):Sr.type==="keyup"&&Nn(function(Ir){Ir.allowMove=!1}))},{events:["keydown","keyup"]}),(0,Ce.Z)(Ee[Ie.CancelCurrObject].shortcut,function(Sr){Pe&&Sr.type==="keyup"&&(vt.creatingObject?On(function(Ir){var ia,Kn,Yr,qr,ua,tr;((ia=Ir.creatingObject)===null||ia===void 0?void 0:ia.type)===Q.gr.Mask&&(Kn=Ir.creatingObject)!==null&&Kn!==void 0&&(Yr=Kn.maskStep)!==null&&Yr!==void 0&&(qr=Yr.points)!==null&&qr!==void 0&&qr.length&&(ua=Ir.creatingObject)!==null&&ua!==void 0&&(tr=ua.tempMaskSteps)!==null&&tr!==void 0&&tr.length?Ir.creatingObject.maskStep=void 0:(Ir.creatingObject=void 0,Ir.activeObjectIndex=-1),Ir.AIAnnotation&&(Ir.prompt={})}):On(function(Ir){Ir.activeObjectIndex=-1}))},{events:["keydown","keyup"]}),(0,Ce.Z)(Ee[Ie.HideCurrObject].shortcut,function(Sr){vt.activeObjectIndex<0||(Sr.preventDefault(),Ln(vt.activeObjectIndex,!vt.objectList[vt.activeObjectIndex].hidden))},{exactMatch:!0}),(0,Ce.Z)(Ee[Ie.HideCurrCategory].shortcut,function(Sr){var Ir;if(!(vt.activeObjectIndex<0)){Sr.preventDefault();var ia=vt.objectList[vt.activeObjectIndex],Kn=ia.labelId,Yr=ia.hidden,qr=((Ir=Tn.find(function(ua){return ua.id===Kn}))===null||Ir===void 0?void 0:Ir.name)||"";ea(qr,!Yr)}},{exactMatch:!0}),(0,Ce.Z)(Ee[Ie.DeleteCurrObject].shortcut,function(Sr){!Pe||Bn!==W.je.Edit||["Delete","Backspace"].includes(Sr.key)&&vt.activeObjectIndex>-1&&Cr(vt.activeObjectIndex)},{events:["keyup"]}),(0,Ce.Z)(["ctrl"],function(Sr){vt.activeObjectIndex>-1||Nn(function(Ir){var ia=Sr.type==="keydown";if(Ir.isCtrlPressed===ia)return Ir;Ir.isCtrlPressed=Sr.type==="keydown",Ir.focusObjectIndex=-1,Ir.foucsObjectAllIndexs=[]})},{events:["keydown","keyup"]}),(0,Ce.Z)(["v"],function(Sr){Nn(function(Ir){var ia=Sr.type==="keydown";if(Ir.hideCreatingObject===ia)return Ir;Ir.hideCreatingObject=Sr.type==="keydown"})},{events:["keydown","keyup"]}),(0,Ce.Z)(["enter"],function(){if(!vt.AIAnnotation&&vt.creatingObject&&vt.creatingObject.type===Q.gr.Polygon){var Sr=vt.creatingObject,Ir=Sr.polygon,ia=Sr.type,Kn=Sr.hidden,Yr=Sr.labelId,qr=Sr.status,ua=Sr.color;if(Ir&&Ir.group&&Ir.group[0].length>2){var tr={polygon:Ir,type:ia,hidden:Kn,labelId:Yr,status:qr,color:ua};ir(tr)}}},{exactMatch:!0,events:["keyup"]}),{}},Jo=Fo,Yo=Object.defineProperty,zi=Object.getOwnPropertySymbols,Cs=Object.prototype.hasOwnProperty,Qi=Object.prototype.propertyIsEnumerable,js=(Ue,he,Pe)=>he in Ue?Yo(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,qi=(Ue,he)=>{for(var Pe in he||(he={}))Cs.call(he,Pe)&&js(Ue,Pe,he[Pe]);if(zi)for(var Pe of zi(he))Qi.call(he,Pe)&&js(Ue,Pe,he[Pe]);return Ue};const qo=Ue=>g.createElement("svg",qi({viewBox:"0 0 19 19",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("path",{d:"M18.33 4.069a.67.67 0 0 0 .67-.672V.671A.672.672 0 0 0 18.33 0h-2.718a.67.67 0 0 0-.671.671v.672H4.066V.67A.672.672 0 0 0 3.395 0H.67A.67.67 0 0 0 0 .671v2.72a.672.672 0 0 0 .67.67h.672v10.877H.67A.67.67 0 0 0 0 15.61v2.72A.672.672 0 0 0 .67 19h2.718a.67.67 0 0 0 .671-.671v-.672h10.869v.672a.672.672 0 0 0 .67.671h2.718a.67.67 0 0 0 .67-.671v-2.706a.672.672 0 0 0-.67-.671h-.671V4.069h.684Zm-2.014 10.876h-.67a.67.67 0 0 0-.671.671v.672H4.065v-.672a.672.672 0 0 0-.67-.671h-.671V4.069h.67a.67.67 0 0 0 .672-.672v-.671h10.868v.671a.672.672 0 0 0 .671.672h.671l.02 5.438.02 5.438Z",fill:"#fff"}),g.createElement("g",{clipPath:"url(#add-prompt_svg__a)"},g.createElement("path",{d:"M14.51 5.884a.851.851 0 0 0-1.204 0l-5.418 5.423-2.409-2.41a.851.851 0 1 0-1.204 1.205l3.01 3.012a.849.849 0 0 0 1.205 0l6.02-6.025a.852.852 0 0 0 0-1.205Z",fill:"#fff"})),g.createElement("defs",null,g.createElement("clipPath",{id:"add-prompt_svg__a"},g.createElement("path",{fill:"#fff",transform:"translate(4.025 4.129)",d:"M0 0h10.735v10.742H0z"}))));var tu="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTkgMTkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE4LjMzIDQuMDY5YS42Ny42NyAwIDAgMCAuNjctLjY3MlYuNjcxQS42NzIuNjcyIDAgMCAwIDE4LjMzIDBoLTIuNzE4YS42Ny42NyAwIDAgMC0uNjcxLjY3MXYuNjcySDQuMDY2Vi42N0EuNjcyLjY3MiAwIDAgMCAzLjM5NSAwSC42N0EuNjcuNjcgMCAwIDAgMCAuNjcxdjIuNzJhLjY3Mi42NzIgMCAwIDAgLjY3LjY3aC42NzJ2MTAuODc3SC42N0EuNjcuNjcgMCAwIDAgMCAxNS42MXYyLjcyQS42NzIuNjcyIDAgMCAwIC42NyAxOWgyLjcxOGEuNjcuNjcgMCAwIDAgLjY3MS0uNjcxdi0uNjcyaDEwLjg2OXYuNjcyYS42NzIuNjcyIDAgMCAwIC42Ny42NzFoMi43MThhLjY3LjY3IDAgMCAwIC42Ny0uNjcxdi0yLjcwNmEuNjcyLjY3MiAwIDAgMC0uNjctLjY3MWgtLjY3MVY0LjA2OWguNjg0Wm0tMi4wMTQgMTAuODc2aC0uNjdhLjY3LjY3IDAgMCAwLS42NzEuNjcxdi42NzJINC4wNjV2LS42NzJhLjY3Mi42NzIgMCAwIDAtLjY3LS42NzFoLS42NzFWNC4wNjloLjY3YS42Ny42NyAwIDAgMCAuNjcyLS42NzJ2LS42NzFoMTAuODY4di42NzFhLjY3Mi42NzIgMCAwIDAgLjY3MS42NzJoLjY3MWwuMDIgNS40MzguMDIgNS40MzhaIiBmaWxsPSIjZmZmIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTQuNTEgNS44ODRhLjg1MS44NTEgMCAwIDAtMS4yMDQgMGwtNS40MTggNS40MjMtMi40MDktMi40MWEuODUxLjg1MSAwIDEgMC0xLjIwNCAxLjIwNWwzLjAxIDMuMDEyYS44NDkuODQ5IDAgMCAwIDEuMjA1IDBsNi4wMi02LjAyNWEuODUyLjg1MiAwIDAgMCAwLTEuMjA1WiIgZmlsbD0iI2ZmZiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuMDI1IDQuMTI5KSIgZD0iTTAgMGgxMC43MzV2MTAuNzQySDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",Sl=Object.defineProperty,ul=Object.getOwnPropertySymbols,Au=Object.prototype.hasOwnProperty,cl=Object.prototype.propertyIsEnumerable,Xs=(Ue,he,Pe)=>he in Ue?Sl(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,Ps=(Ue,he)=>{for(var Pe in he||(he={}))Au.call(he,Pe)&&Xs(Ue,Pe,he[Pe]);if(ul)for(var Pe of ul(he))cl.call(he,Pe)&&Xs(Ue,Pe,he[Pe]);return Ue};const Js=Ue=>g.createElement("svg",Ps({width:16,height:16,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("g",{clipPath:"url(#brush-add_svg__a)",fill:"#fff"},g.createElement("path",{d:"M5.07 10.37 4.02 9.22l-.46-.46a1.42 1.42 0 0 1 0-1.89l.41-.41 3.84-3.73L10.34.22a.71.71 0 0 1 1.07 0c.34.31.67.63 1 .93a.66.66 0 0 1 .22.69c-.1.43-.19.87-.28 1.34l.69-.13c.25 0 .5-.1.75-.12a.82.82 0 0 1 .69.26l4.47 4.37.45.44a.87.87 0 0 1 0 1.3l-2 2-.08.08-1.34-.79 1.89-1.95-.33-.33-3.78-3.71a.3.3 0 0 0-.32-.09l-1.89.37A.74.74 0 0 1 10.7 4c.06-.33.12-.65.19-1s.1-.58.18-.85a.31.31 0 0 0-.17-.4L6.7 5.94l5 4.85c-.3.21-.61.4-.88.62a4.76 4.76 0 0 0-1.75 3 .88.88 0 0 1-.25.44l-2.94 3.37a3.42 3.42 0 0 1-5 .22 3 3 0 0 1-.83-2 3.39 3.39 0 0 1 1.33-2.88l3.32-2.89.37-.3Z"}),g.createElement("path",{d:"M17.88 13.99a4.06 4.06 0 0 0-4.46-2.68 4 4 0 0 0 .61 7.9c.22 0 .44 0 .65-.06a4 4 0 0 0 3.2-5.16Zm-2.31 2.13h-.62v.58a.94.94 0 0 1-1.87 0v-.58h-.58a.94.94 0 0 1 0-1.87h.58v-.56a.94.94 0 1 1 1.87 0v.53h.62a.94.94 0 0 1 0 1.87v.03Z"})),g.createElement("defs",null,g.createElement("clipPath",{id:"brush-add_svg__a"},g.createElement("path",{fill:"#fff",d:"M0 0h19.7v19.44H0z"}))));var Tl="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik01LjA3IDEwLjM3IDQuMDIgOS4yMmwtLjQ2LS40NmExLjQyIDEuNDIgMCAwIDEgMC0xLjg5bC40MS0uNDEgMy44NC0zLjczTDEwLjM0LjIyYS43MS43MSAwIDAgMSAxLjA3IDBjLjM0LjMxLjY3LjYzIDEgLjkzYS42Ni42NiAwIDAgMSAuMjIuNjljLS4xLjQzLS4xOS44Ny0uMjggMS4zNGwuNjktLjEzYy4yNSAwIC41LS4xLjc1LS4xMmEuODIuODIgMCAwIDEgLjY5LjI2bDQuNDcgNC4zNy40NS40NGEuODcuODcgMCAwIDEgMCAxLjNsLTIgMi0uMDguMDgtMS4zNC0uNzkgMS44OS0xLjk1LS4zMy0uMzMtMy43OC0zLjcxYS4zLjMgMCAwIDAtLjMyLS4wOWwtMS44OS4zN0EuNzQuNzQgMCAwIDEgMTAuNyA0Yy4wNi0uMzMuMTItLjY1LjE5LTFzLjEtLjU4LjE4LS44NWEuMzEuMzEgMCAwIDAtLjE3LS40TDYuNyA1Ljk0bDUgNC44NWMtLjMuMjEtLjYxLjQtLjg4LjYyYTQuNzYgNC43NiAwIDAgMC0xLjc1IDMgLjg4Ljg4IDAgMCAxLS4yNS40NGwtMi45NCAzLjM3YTMuNDIgMy40MiAwIDAgMS01IC4yMiAzIDMgMCAwIDEtLjgzLTIgMy4zOSAzLjM5IDAgMCAxIDEuMzMtMi44OGwzLjMyLTIuODkuMzctLjNaIi8+PHBhdGggZD0iTTE3Ljg4IDEzLjk5YTQuMDYgNC4wNiAwIDAgMC00LjQ2LTIuNjggNCA0IDAgMCAwIC42MSA3LjljLjIyIDAgLjQ0IDAgLjY1LS4wNmE0IDQgMCAwIDAgMy4yLTUuMTZabS0yLjMxIDIuMTNoLS42MnYuNThhLjk0Ljk0IDAgMCAxLTEuODcgMHYtLjU4aC0uNThhLjk0Ljk0IDAgMCAxIDAtMS44N2guNTh2LS41NmEuOTQuOTQgMCAxIDEgMS44NyAwdi41M2guNjJhLjk0Ljk0IDAgMCAxIDAgMS44N3YuMDNaIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgxOS43djE5LjQ0SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",du=Object.defineProperty,rs=Object.getOwnPropertySymbols,xs=Object.prototype.hasOwnProperty,Zs=Object.prototype.propertyIsEnumerable,Ts=(Ue,he,Pe)=>he in Ue?du(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,nu=(Ue,he)=>{for(var Pe in he||(he={}))xs.call(he,Pe)&&Ts(Ue,Pe,he[Pe]);if(rs)for(var Pe of rs(he))Zs.call(he,Pe)&&Ts(Ue,Pe,he[Pe]);return Ue};const _l=Ue=>g.createElement("svg",nu({width:16,height:16,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("g",{clipPath:"url(#brush-erase_svg__a)",fill:"#fff"},g.createElement("path",{d:"m6.47 5.69 4.8 4.7c-.29.2-.59.38-.85.59a4.73 4.73 0 0 0-1.74 3.05.45.45 0 0 1-.1.21l-2.89 3.34a3.24 3.24 0 0 1-2.47 1.2 3 3 0 0 1-3.23-3.1 3.34 3.34 0 0 1 1.39-2.7c1.16-.95 2.29-1.93 3.44-2.89l.14-.1-.4-.38-1-1a1.38 1.38 0 0 1 0-2.07L7.7 2.48c.76-.7 1.52-1.5 2.29-2.24a.69.69 0 0 1 1.05 0l1 .91a.59.59 0 0 1 .18.63c-.09.43-.18.87-.27 1.33l1.27-.25a.88.88 0 0 1 .84.24l2.71 2.68 2 1.92a.9.9 0 0 1 .29.8.66.66 0 0 1-.16.35c-.7.7-1.41 1.39-2.12 2.08l-1.28-.77 1.84-1.79V8.3l-4-3.88a.29.29 0 0 0-.28-.07l-1.84.43a.86.86 0 0 1-.8-.26.571.571 0 0 1-.13-.56c.12-.59.24-1.17.37-1.76 0-.19 0-.33-.18-.42L6.47 5.69Z"}),g.createElement("path",{d:"M9.69 14.71a3.88 3.88 0 1 1 3.88 3.8 3.83 3.83 0 0 1-3.88-3.8Zm3.87 1h1.57a1 1 0 0 0 1-1 1 1 0 0 0-1-1.06h-3.14a1 1 0 0 0 0 2l1.57.06Z"})),g.createElement("defs",null,g.createElement("clipPath",{id:"brush-erase_svg__a"},g.createElement("path",{fill:"#fff",d:"M0 0h19.03v18.77H0z"}))));var Ls="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Im02LjQ3IDUuNjkgNC44IDQuN2MtLjI5LjItLjU5LjM4LS44NS41OWE0LjczIDQuNzMgMCAwIDAtMS43NCAzLjA1LjQ1LjQ1IDAgMCAxLS4xLjIxbC0yLjg5IDMuMzRhMy4yNCAzLjI0IDAgMCAxLTIuNDcgMS4yIDMgMyAwIDAgMS0zLjIzLTMuMSAzLjM0IDMuMzQgMCAwIDEgMS4zOS0yLjdjMS4xNi0uOTUgMi4yOS0xLjkzIDMuNDQtMi44OWwuMTQtLjEtLjQtLjM4LTEtMWExLjM4IDEuMzggMCAwIDEgMC0yLjA3TDcuNyAyLjQ4Yy43Ni0uNyAxLjUyLTEuNSAyLjI5LTIuMjRhLjY5LjY5IDAgMCAxIDEuMDUgMGwxIC45MWEuNTkuNTkgMCAwIDEgLjE4LjYzYy0uMDkuNDMtLjE4Ljg3LS4yNyAxLjMzbDEuMjctLjI1YS44OC44OCAwIDAgMSAuODQuMjRsMi43MSAyLjY4IDIgMS45MmEuOS45IDAgMCAxIC4yOS44LjY2LjY2IDAgMCAxLS4xNi4zNWMtLjcuNy0xLjQxIDEuMzktMi4xMiAyLjA4bC0xLjI4LS43NyAxLjg0LTEuNzlWOC4zbC00LTMuODhhLjI5LjI5IDAgMCAwLS4yOC0uMDdsLTEuODQuNDNhLjg2Ljg2IDAgMCAxLS44LS4yNi41NzEuNTcxIDAgMCAxLS4xMy0uNTZjLjEyLS41OS4yNC0xLjE3LjM3LTEuNzYgMC0uMTkgMC0uMzMtLjE4LS40Mkw2LjQ3IDUuNjlaIi8+PHBhdGggZD0iTTkuNjkgMTQuNzFhMy44OCAzLjg4IDAgMSAxIDMuODggMy44IDMuODMgMy44MyAwIDAgMS0zLjg4LTMuOFptMy44NyAxaDEuNTdhMSAxIDAgMCAwIDEtMSAxIDEgMCAwIDAtMS0xLjA2aC0zLjE0YTEgMSAwIDAgMCAwIDJsMS41Ny4wNloiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDE5LjAzdjE4Ljc3SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",Ft=Object.defineProperty,Io=Object.getOwnPropertySymbols,Us=Object.prototype.hasOwnProperty,Uo=Object.prototype.propertyIsEnumerable,dl=(Ue,he,Pe)=>he in Ue?Ft(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,la=(Ue,he)=>{for(var Pe in he||(he={}))Us.call(he,Pe)&&dl(Ue,Pe,he[Pe]);if(Io)for(var Pe of Io(he))Uo.call(he,Pe)&&dl(Ue,Pe,he[Pe]);return Ue};const fl=Ue=>g.createElement("svg",la({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},Ue),g.createElement("defs",null,g.createElement("style",null,".edge-stitch_svg__cls-1{fill:#fcfefe}.edge-stitch_svg__cls-3{fill:#fff}")),g.createElement("path",{className:"edge-stitch_svg__cls-1",d:"M22.25 18.52a.82.82 0 0 0 .57.15h4.3a1.44 1.44 0 1 0 0-2.87h-.86L31 11.06a1.42 1.42 0 0 0-2-2l-4.73 4.74v-.86a1.44 1.44 0 1 0-2.87 0v4.3a.87.87 0 0 0 .14.57 1.67 1.67 0 0 0 .71.71ZM9.91 31.58a1.31 1.31 0 0 0 1-.43l4.74-4.74v.86a1.44 1.44 0 1 0 2.87 0V23a.82.82 0 0 0-.15-.57 1.7 1.7 0 0 0-.71-.72.85.85 0 0 0-.58-.15h-4.3a1.44 1.44 0 1 0 0 2.87h.86l-4.73 4.71a1.38 1.38 0 0 0 0 2 1.31 1.31 0 0 0 1 .44Z"}),g.createElement("path",{style:{fill:"none",stroke:"#fff",strokeLinecap:"round",strokeMiterlimit:10,strokeWidth:3},d:"m14.4 14.51 11.14 11.14"}),g.createElement("path",{className:"edge-stitch_svg__cls-3",d:"M7.51 5.7a3.41 3.41 0 0 1 .74.45c.85.8 1.67 1.64 2.49 2.47a1.19 1.19 0 1 1-1.69 1.67Q7.77 9 6.53 7.77a1.13 1.13 0 0 1-.26-1.33 1.33 1.33 0 0 1 1.24-.74ZM19.85 10.84a5.11 5.11 0 0 1-.92-.75.93.93 0 0 1 .07-1.24c.94-1 1.89-1.95 2.88-2.87a1.07 1.07 0 0 1 1.51.09 1.09 1.09 0 0 1 .11 1.56c-.91 1-1.87 1.9-2.83 2.83a2.88 2.88 0 0 1-.82.38ZM7.26 23.44a5 5 0 0 1-.92-.73.92.92 0 0 1 .06-1.24Q7.81 20 9.31 18.56a1.08 1.08 0 0 1 1.51.14 1.1 1.1 0 0 1 .09 1.52C10 21.21 9 22.15 8 23.09a3.07 3.07 0 0 1-.74.35ZM16.16 5.64v1.67A1.24 1.24 0 0 1 15 8.59a1.22 1.22 0 0 1-1.19-1.28v-3.4A1.22 1.22 0 0 1 15 2.63a1.23 1.23 0 0 1 1.19 1.29c-.01.57-.03 1.15-.03 1.72ZM6 15.73H4.38a1.2 1.2 0 1 1 0-2.4h3.34a1.2 1.2 0 1 1 0 2.4c-.58.02-1.15 0-1.72 0Z"}));var ru="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmY2ZlZmV9LmNscy0ze2ZpbGw6I2ZmZn08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMi4yNSAxOC41MmEuODIuODIgMCAwIDAgLjU3LjE1aDQuM2ExLjQ0IDEuNDQgMCAxIDAgMC0yLjg3aC0uODZMMzEgMTEuMDZhMS40MiAxLjQyIDAgMCAwLTItMmwtNC43MyA0Ljc0di0uODZhMS40NCAxLjQ0IDAgMSAwLTIuODcgMHY0LjNhLjg3Ljg3IDAgMCAwIC4xNC41NyAxLjY3IDEuNjcgMCAwIDAgLjcxLjcxWk05LjkxIDMxLjU4YTEuMzEgMS4zMSAwIDAgMCAxLS40M2w0Ljc0LTQuNzR2Ljg2YTEuNDQgMS40NCAwIDEgMCAyLjg3IDBWMjNhLjgyLjgyIDAgMCAwLS4xNS0uNTcgMS43IDEuNyAwIDAgMC0uNzEtLjcyLjg1Ljg1IDAgMCAwLS41OC0uMTVoLTQuM2ExLjQ0IDEuNDQgMCAxIDAgMCAyLjg3aC44NmwtNC43MyA0LjcxYTEuMzggMS4zOCAwIDAgMCAwIDIgMS4zMSAxLjMxIDAgMCAwIDEgLjQ0WiIvPjxwYXRoIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmZmY7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjNweCIgZD0ibTE0LjQgMTQuNTEgMTEuMTQgMTEuMTQiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik03LjUxIDUuN2EzLjQxIDMuNDEgMCAwIDEgLjc0LjQ1Yy44NS44IDEuNjcgMS42NCAyLjQ5IDIuNDdhMS4xOSAxLjE5IDAgMSAxLTEuNjkgMS42N1E3Ljc3IDkgNi41MyA3Ljc3YTEuMTMgMS4xMyAwIDAgMS0uMjYtMS4zMyAxLjMzIDEuMzMgMCAwIDEgMS4yNC0uNzRaTTE5Ljg1IDEwLjg0YTUuMTEgNS4xMSAwIDAgMS0uOTItLjc1LjkzLjkzIDAgMCAxIC4wNy0xLjI0Yy45NC0xIDEuODktMS45NSAyLjg4LTIuODdhMS4wNyAxLjA3IDAgMCAxIDEuNTEuMDkgMS4wOSAxLjA5IDAgMCAxIC4xMSAxLjU2Yy0uOTEgMS0xLjg3IDEuOS0yLjgzIDIuODNhMi44OCAyLjg4IDAgMCAxLS44Mi4zOFpNNy4yNiAyMy40NGE1IDUgMCAwIDEtLjkyLS43My45Mi45MiAwIDAgMSAuMDYtMS4yNFE3LjgxIDIwIDkuMzEgMTguNTZhMS4wOCAxLjA4IDAgMCAxIDEuNTEuMTQgMS4xIDEuMSAwIDAgMSAuMDkgMS41MkMxMCAyMS4yMSA5IDIyLjE1IDggMjMuMDlhMy4wNyAzLjA3IDAgMCAxLS43NC4zNVpNMTYuMTYgNS42NHYxLjY3QTEuMjQgMS4yNCAwIDAgMSAxNSA4LjU5YTEuMjIgMS4yMiAwIDAgMS0xLjE5LTEuMjh2LTMuNEExLjIyIDEuMjIgMCAwIDEgMTUgMi42M2ExLjIzIDEuMjMgMCAwIDEgMS4xOSAxLjI5Yy0uMDEuNTctLjAzIDEuMTUtLjAzIDEuNzJaTTYgMTUuNzNINC4zOGExLjIgMS4yIDAgMSAxIDAtMi40aDMuMzRhMS4yIDEuMiAwIDEgMSAwIDIuNGMtLjU4LjAyLTEuMTUgMC0xLjcyIDBaIi8+PC9zdmc+",qs=Object.defineProperty,Ll=Object.getOwnPropertySymbols,Yl=Object.prototype.hasOwnProperty,Po=Object.prototype.propertyIsEnumerable,Si=(Ue,he,Pe)=>he in Ue?qs(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,dc=(Ue,he)=>{for(var Pe in he||(he={}))Yl.call(he,Pe)&&Si(Ue,Pe,he[Pe]);if(Ll)for(var Pe of Ll(he))Po.call(he,Pe)&&Si(Ue,Pe,he[Pe]);return Ue};const ec=Ue=>g.createElement("svg",dc({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},Ue),g.createElement("defs",null,g.createElement("style",null,".magic-box_svg__cls-1,.magic-box_svg__cls-3{fill:none}.magic-box_svg__cls-2{fill:#fcfefe}.magic-box_svg__cls-3{stroke:#fcfeff;stroke-linecap:round;stroke-miterlimit:10;stroke-width:2px}")),g.createElement("path",{className:"magic-box_svg__cls-1",d:"M5.28 16.36V6.08a1 1 0 0 1 1-1h22.2a1 1 0 0 1 1 1v21.67a1 1 0 0 1-1 .95h-10v2.39H31.4V2.74H3.17v13.62ZM3.06 2.74h.11v13.62h-.11z"}),g.createElement("path",{className:"magic-box_svg__cls-2",d:"M7.28 7.12H27.4V26.7h-8.91v2h10a1 1 0 0 0 1-.95V6.08a1 1 0 0 0-1-1H6.24a1 1 0 0 0-1 1v10.28h2Z"}),g.createElement("path",{className:"magic-box_svg__cls-2",d:"M4.82 28.43a.87.87 0 0 0 .11 1.19 1 1 0 0 0 1.19.09c3.29-2.56 4.66-2.56 8 0a.92.92 0 0 0 1.28-1.28c-2.56-3.29-2.56-4.66 0-8a.92.92 0 0 0-1.28-1.28c-3.29 2.56-4.66 2.56-8 0a1.37 1.37 0 0 0-.55-.15.83.83 0 0 0-.64.27.87.87 0 0 0-.09 1.19c2.63 3.31 2.63 4.59-.02 7.97Z"}),g.createElement("path",{className:"magic-box_svg__cls-3",d:"m19.24 10.15 5.75-.07M24.99 15.91v-5.83M17.97 17.19l7.02-7.11"}));var Ja="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PGRlZnM+PHN0eWxlPi5jbHMtMSwuY2xzLTN7ZmlsbDpub25lfS5jbHMtMntmaWxsOiNmY2ZlZmV9LmNscy0ze3N0cm9rZTojZmNmZWZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDoycHh9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNS4yOCAxNi4zNlY2LjA4YTEgMSAwIDAgMSAxLTFoMjIuMmExIDEgMCAwIDEgMSAxdjIxLjY3YTEgMSAwIDAgMS0xIC45NWgtMTB2Mi4zOUgzMS40VjIuNzRIMy4xN3YxMy42MlpNMy4wNiAyLjc0aC4xMXYxMy42MmgtLjExeiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTcuMjggNy4xMkgyNy40VjI2LjdoLTguOTF2MmgxMGExIDEgMCAwIDAgMS0uOTVWNi4wOGExIDEgMCAwIDAtMS0xSDYuMjRhMSAxIDAgMCAwLTEgMXYxMC4yOGgyWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQuODIgMjguNDNhLjg3Ljg3IDAgMCAwIC4xMSAxLjE5IDEgMSAwIDAgMCAxLjE5LjA5YzMuMjktMi41NiA0LjY2LTIuNTYgOCAwYS45Mi45MiAwIDAgMCAxLjI4LTEuMjhjLTIuNTYtMy4yOS0yLjU2LTQuNjYgMC04YS45Mi45MiAwIDAgMC0xLjI4LTEuMjhjLTMuMjkgMi41Ni00LjY2IDIuNTYtOCAwYTEuMzcgMS4zNyAwIDAgMC0uNTUtLjE1LjgzLjgzIDAgMCAwLS42NC4yNy44Ny44NyAwIDAgMC0uMDkgMS4xOWMyLjYzIDMuMzEgMi42MyA0LjU5LS4wMiA3Ljk3WiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0ibTE5LjI0IDEwLjE1IDUuNzUtLjA3TTI0Ljk5IDE1Ljkxdi01LjgzTTE3Ljk3IDE3LjE5bDcuMDItNy4xMSIvPjwvc3ZnPg==",es=Object.defineProperty,ks=Object.getOwnPropertySymbols,Ra=Object.prototype.hasOwnProperty,au=Object.prototype.propertyIsEnumerable,_i=(Ue,he,Pe)=>he in Ue?es(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,El=(Ue,he)=>{for(var Pe in he||(he={}))Ra.call(he,Pe)&&_i(Ue,Pe,he[Pe]);if(ks)for(var Pe of ks(he))au.call(he,Pe)&&_i(Ue,Pe,he[Pe]);return Ue};const vl=Ue=>g.createElement("svg",El({id:"magic-brush_svg__\\u56FE\\u5C42_1","data-name":"\\u56FE\\u5C42 1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},Ue),g.createElement("defs",null,g.createElement("style",null,".magic-brush_svg__cls-1{fill:#fff}")),g.createElement("path",{className:"magic-brush_svg__cls-1",d:"M15.22 14.73 21 9l10.1 10.1-5.8 5.76ZM14.33 15.43l10.34 10.36c-.87.86-1.78 1.78-2.71 2.68-.09.08-.37 0-.53-.07-1.31-.58-2.63-1.16-3.92-1.78a.74.74 0 0 0-1 .17q-1.75 1.82-3.57 3.56a2.14 2.14 0 0 1-2.33.51 2.08 2.08 0 0 1-1.42-1.69 2.2 2.2 0 0 1 .67-2.05C11 26 12.14 24.8 13.32 23.66a.74.74 0 0 0 .19-1c-.61-1.27-1.16-2.57-1.77-3.85a.67.67 0 0 1 .15-.91c.84-.81 1.63-1.64 2.44-2.47Zm-1.82 13.18a1 1 0 1 0-2 .05 1 1 0 0 0 2-.05Z"}),g.createElement("path",{d:"M3.2 12.66a.89.89 0 0 0 .11 1.23 1 1 0 0 0 1.23.1c3.4-2.65 4.82-2.65 8.27 0a.95.95 0 0 0 1.32-1.33c-2.64-3.4-2.64-4.81 0-8.26A.9.9 0 0 0 14 3.17a.89.89 0 0 0-1.23-.1C9.41 5.72 8 5.72 4.54 3.07A1.27 1.27 0 0 0 4 2.89a.84.84 0 0 0-.66.28.9.9 0 0 0-.12 1.23c2.72 3.45 2.72 4.77-.02 8.26Z",style:{fill:"#fcfefe"}}));var fu="data:image/svg+xml;base64,PHN2ZyBpZD0i5Zu+5bGCXzEiIGRhdGEtbmFtZT0i5Zu+5bGCIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM0LjAyIDM0LjAyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZn08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNS4yMiAxNC43MyAyMSA5bDEwLjEgMTAuMS01LjggNS43NlpNMTQuMzMgMTUuNDNsMTAuMzQgMTAuMzZjLS44Ny44Ni0xLjc4IDEuNzgtMi43MSAyLjY4LS4wOS4wOC0uMzcgMC0uNTMtLjA3LTEuMzEtLjU4LTIuNjMtMS4xNi0zLjkyLTEuNzhhLjc0Ljc0IDAgMCAwLTEgLjE3cS0xLjc1IDEuODItMy41NyAzLjU2YTIuMTQgMi4xNCAwIDAgMS0yLjMzLjUxIDIuMDggMi4wOCAwIDAgMS0xLjQyLTEuNjkgMi4yIDIuMiAwIDAgMSAuNjctMi4wNUMxMSAyNiAxMi4xNCAyNC44IDEzLjMyIDIzLjY2YS43NC43NCAwIDAgMCAuMTktMWMtLjYxLTEuMjctMS4xNi0yLjU3LTEuNzctMy44NWEuNjcuNjcgMCAwIDEgLjE1LS45MWMuODQtLjgxIDEuNjMtMS42NCAyLjQ0LTIuNDdabS0xLjgyIDEzLjE4YTEgMSAwIDEgMC0yIC4wNSAxIDEgMCAwIDAgMi0uMDVaIi8+PHBhdGggZD0iTTMuMiAxMi42NmEuODkuODkgMCAwIDAgLjExIDEuMjMgMSAxIDAgMCAwIDEuMjMuMWMzLjQtMi42NSA0LjgyLTIuNjUgOC4yNyAwYS45NS45NSAwIDAgMCAxLjMyLTEuMzNjLTIuNjQtMy40LTIuNjQtNC44MSAwLTguMjZBLjkuOSAwIDAgMCAxNCAzLjE3YS44OS44OSAwIDAgMC0xLjIzLS4xQzkuNDEgNS43MiA4IDUuNzIgNC41NCAzLjA3QTEuMjcgMS4yNyAwIDAgMCA0IDIuODlhLjg0Ljg0IDAgMCAwLS42Ni4yOC45LjkgMCAwIDAtLjEyIDEuMjNjMi43MiAzLjQ1IDIuNzIgNC43Ny0uMDIgOC4yNloiIHN0eWxlPSJmaWxsOiNmY2ZlZmUiLz48L3N2Zz4=",Nl=Object.defineProperty,tc=Object.getOwnPropertySymbols,Uu=Object.prototype.hasOwnProperty,Bo=Object.prototype.propertyIsEnumerable,Ou=(Ue,he,Pe)=>he in Ue?Nl(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,Vl=(Ue,he)=>{for(var Pe in he||(he={}))Uu.call(he,Pe)&&Ou(Ue,Pe,he[Pe]);if(tc)for(var Pe of tc(he))Bo.call(he,Pe)&&Ou(Ue,Pe,he[Pe]);return Ue};const ps=Ue=>g.createElement("svg",Vl({id:"magic-click_svg__\\u56FE\\u5C42_1","data-name":"\\u56FE\\u5C42 1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},Ue),g.createElement("defs",null,g.createElement("style",null,".magic-click_svg__cls-1{fill:#fff}")),g.createElement("path",{className:"magic-click_svg__cls-1",d:"M30.88 21.21a1.6 1.6 0 0 1-1 1.35c-1.54.75-3.08 1.51-4.59 2.31a2.18 2.18 0 0 0-.87.86c-.79 1.49-1.53 3-2.27 4.53a1.49 1.49 0 0 1-2.89-.18Q17.2 23.8 15.1 17.52a1.49 1.49 0 0 1 2-2l12.55 4.19a1.56 1.56 0 0 1 1.23 1.5Zm-5.25.23-6.94-2.32 2.32 7c.37-.74.71-1.3.95-1.9a3 3 0 0 1 1.8-1.79c.6-.29 1.15-.62 1.87-.99ZM7.34 6.09a4.23 4.23 0 0 1 .89.54l3 3a1.45 1.45 0 1 1-2 2c-1-1-2.06-2-3.07-3.07A1.37 1.37 0 0 1 5.83 7a1.6 1.6 0 0 1 1.51-.91ZM22.35 12.35a6.61 6.61 0 0 1-1.12-.92 1.14 1.14 0 0 1 .09-1.51c1.14-1.19 2.3-2.37 3.5-3.49a1.31 1.31 0 0 1 1.84.1 1.34 1.34 0 0 1 .14 1.9c-1.11 1.19-2.28 2.32-3.45 3.45a3.92 3.92 0 0 1-1 .47ZM7 27.68a6 6 0 0 1-1.13-.9 1.12 1.12 0 0 1 .13-1.5c1.15-1.21 2.32-2.4 3.55-3.54a1.32 1.32 0 0 1 1.84.17 1.33 1.33 0 0 1 .1 1.85C10.35 25 9.16 26.11 8 27.25a3.75 3.75 0 0 1-1 .43ZM17.87 6v2A1.46 1.46 0 1 1 15 8V3.87a1.49 1.49 0 0 1 1.46-1.56 1.51 1.51 0 0 1 1.45 1.57c-.03.74-.04 1.44-.04 2.12ZM5.48 18.3h-2a1.5 1.5 0 0 1-1.55-1.5 1.48 1.48 0 0 1 1.59-1.42h4.07a1.49 1.49 0 0 1 1.59 1.49 1.5 1.5 0 0 1-1.6 1.42c-.69.02-1.4.01-2.1.01Z"}),g.createElement("path",{className:"magic-click_svg__cls-1",d:"M25.63 21.44c-.72.37-1.27.7-1.87.94A3 3 0 0 0 22 24.17c-.24.6-.58 1.16-.95 1.9l-2.32-6.95Z"}));var Cl="data:image/svg+xml;base64,PHN2ZyBpZD0i5Zu+5bGCXzEiIGRhdGEtbmFtZT0i5Zu+5bGCIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM0LjAyIDM0LjAyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZn08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0zMC44OCAyMS4yMWExLjYgMS42IDAgMCAxLTEgMS4zNWMtMS41NC43NS0zLjA4IDEuNTEtNC41OSAyLjMxYTIuMTggMi4xOCAwIDAgMC0uODcuODZjLS43OSAxLjQ5LTEuNTMgMy0yLjI3IDQuNTNhMS40OSAxLjQ5IDAgMCAxLTIuODktLjE4UTE3LjIgMjMuOCAxNS4xIDE3LjUyYTEuNDkgMS40OSAwIDAgMSAyLTJsMTIuNTUgNC4xOWExLjU2IDEuNTYgMCAwIDEgMS4yMyAxLjVabS01LjI1LjIzLTYuOTQtMi4zMiAyLjMyIDdjLjM3LS43NC43MS0xLjMuOTUtMS45YTMgMyAwIDAgMSAxLjgtMS43OWMuNi0uMjkgMS4xNS0uNjIgMS44Ny0uOTlaTTcuMzQgNi4wOWE0LjIzIDQuMjMgMCAwIDEgLjg5LjU0bDMgM2ExLjQ1IDEuNDUgMCAxIDEtMiAyYy0xLTEtMi4wNi0yLTMuMDctMy4wN0ExLjM3IDEuMzcgMCAwIDEgNS44MyA3YTEuNiAxLjYgMCAwIDEgMS41MS0uOTFaTTIyLjM1IDEyLjM1YTYuNjEgNi42MSAwIDAgMS0xLjEyLS45MiAxLjE0IDEuMTQgMCAwIDEgLjA5LTEuNTFjMS4xNC0xLjE5IDIuMy0yLjM3IDMuNS0zLjQ5YTEuMzEgMS4zMSAwIDAgMSAxLjg0LjEgMS4zNCAxLjM0IDAgMCAxIC4xNCAxLjljLTEuMTEgMS4xOS0yLjI4IDIuMzItMy40NSAzLjQ1YTMuOTIgMy45MiAwIDAgMS0xIC40N1pNNyAyNy42OGE2IDYgMCAwIDEtMS4xMy0uOSAxLjEyIDEuMTIgMCAwIDEgLjEzLTEuNWMxLjE1LTEuMjEgMi4zMi0yLjQgMy41NS0zLjU0YTEuMzIgMS4zMiAwIDAgMSAxLjg0LjE3IDEuMzMgMS4zMyAwIDAgMSAuMSAxLjg1QzEwLjM1IDI1IDkuMTYgMjYuMTEgOCAyNy4yNWEzLjc1IDMuNzUgMCAwIDEtMSAuNDNaTTE3Ljg3IDZ2MkExLjQ2IDEuNDYgMCAxIDEgMTUgOFYzLjg3YTEuNDkgMS40OSAwIDAgMSAxLjQ2LTEuNTYgMS41MSAxLjUxIDAgMCAxIDEuNDUgMS41N2MtLjAzLjc0LS4wNCAxLjQ0LS4wNCAyLjEyWk01LjQ4IDE4LjNoLTJhMS41IDEuNSAwIDAgMS0xLjU1LTEuNSAxLjQ4IDEuNDggMCAwIDEgMS41OS0xLjQyaDQuMDdhMS40OSAxLjQ5IDAgMCAxIDEuNTkgMS40OSAxLjUgMS41IDAgMCAxLTEuNiAxLjQyYy0uNjkuMDItMS40LjAxLTIuMS4wMVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yNS42MyAyMS40NGMtLjcyLjM3LTEuMjcuNy0xLjg3Ljk0QTMgMyAwIDAgMCAyMiAyNC4xN2MtLjI0LjYtLjU4IDEuMTYtLjk1IDEuOWwtMi4zMi02Ljk1WiIvPjwvc3ZnPg==",gl=Object.defineProperty,Wt=Object.getOwnPropertySymbols,Oi=Object.prototype.hasOwnProperty,Gl=Object.prototype.propertyIsEnumerable,$i=(Ue,he,Pe)=>he in Ue?gl(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,_o=(Ue,he)=>{for(var Pe in he||(he={}))Oi.call(he,Pe)&&$i(Ue,Pe,he[Pe]);if(Wt)for(var Pe of Wt(he))Gl.call(he,Pe)&&$i(Ue,Pe,he[Pe]);return Ue};const go=Ue=>g.createElement("svg",_o({width:16,height:16,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("g",{clipPath:"url(#pen-add_svg__a)",fill:"#fff"},g.createElement("path",{d:"M16.7 10c0-.1 0-.1.1-.2v-.2c0-.1 0-.1-.1-.1l-3.2-3.2-3.1-3.1v-.1H10.1c-.1.2-.3.3-.6.3-1.7.7-3.4 1.3-5.2 1.9-.1 0-.1.1-.2.1s0 .1 0 .2c-.2.6-.4 1.2-.6 1.9C3 9.2 2.5 11 2 12.7L.3 18.4c-.1.3-.2.7-.3 1l.2-.1L7 12.4l.1-.1V12c-.1-.2-.2-.5-.2-.8 0-.3 0-.6.1-.8.1-.3.3-.5.5-.7.2-.2.4-.3.7-.4H9c.3 0 .5.1.8.3.2.1.4.3.6.6.9-.8 2-1.2 3.3-1.2 1.1 0 2.2.4 3 1Z"}),g.createElement("path",{d:"M8.6 13.2h-.3c-.2-.1-.3-.2-.5-.3L.7 20l4-1.2 5-1.4c-.7-.9-1.2-2-1.2-3.3 0-.3.1-.6.1-.9ZM11.3 2.6 16.7 8l.8.8L20 7.2 12.8 0l-.1.1c-.5.8-1 1.5-1.5 2.2v.2l.1.1c-.1 0-.1 0 0 0ZM16.4 11c-.7-.6-1.7-1.1-2.7-1.1-1.2 0-2.3.5-3 1.3-.4.5-.8 1-.9 1.7-.1.4-.2.7-.2 1.1 0 1.2.5 2.2 1.3 3 .7.7 1.7 1.2 2.9 1.2 2.3 0 4.1-1.9 4.1-4.1-.1-1.2-.7-2.3-1.5-3.1Zm-1.1 4.1h-.7v.8c0 .6-.4 1-1 1s-1-.4-1-1v-.8H12c-.6 0-1-.4-1-1s.4-1 1-1h.6v-.5c0-.6.4-1 1-1s1 .4 1 1v.5h.7c.6 0 1 .4 1 1s-.4 1-1 1Z"})),g.createElement("defs",null,g.createElement("clipPath",{id:"pen-add_svg__a"},g.createElement("path",{fill:"#fff",d:"M0 0h20v20H0z"}))));var ku="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik0xNi43IDEwYzAtLjEgMC0uMS4xLS4ydi0uMmMwLS4xIDAtLjEtLjEtLjFsLTMuMi0zLjItMy4xLTMuMXYtLjFIMTAuMWMtLjEuMi0uMy4zLS42LjMtMS43LjctMy40IDEuMy01LjIgMS45LS4xIDAtLjEuMS0uMi4xczAgLjEgMCAuMmMtLjIuNi0uNCAxLjItLjYgMS45QzMgOS4yIDIuNSAxMSAyIDEyLjdMLjMgMTguNGMtLjEuMy0uMi43LS4zIDFsLjItLjFMNyAxMi40bC4xLS4xVjEyYy0uMS0uMi0uMi0uNS0uMi0uOCAwLS4zIDAtLjYuMS0uOC4xLS4zLjMtLjUuNS0uNy4yLS4yLjQtLjMuNy0uNEg5Yy4zIDAgLjUuMS44LjMuMi4xLjQuMy42LjYuOS0uOCAyLTEuMiAzLjMtMS4yIDEuMSAwIDIuMi40IDMgMVoiLz48cGF0aCBkPSJNOC42IDEzLjJoLS4zYy0uMi0uMS0uMy0uMi0uNS0uM0wuNyAyMGw0LTEuMiA1LTEuNGMtLjctLjktMS4yLTItMS4yLTMuMyAwLS4zLjEtLjYuMS0uOVpNMTEuMyAyLjYgMTYuNyA4bC44LjhMMjAgNy4yIDEyLjggMGwtLjEuMWMtLjUuOC0xIDEuNS0xLjUgMi4ydi4ybC4xLjFjLS4xIDAtLjEgMCAwIDBaTTE2LjQgMTFjLS43LS42LTEuNy0xLjEtMi43LTEuMS0xLjIgMC0yLjMuNS0zIDEuMy0uNC41LS44IDEtLjkgMS43LS4xLjQtLjIuNy0uMiAxLjEgMCAxLjIuNSAyLjIgMS4zIDMgLjcuNyAxLjcgMS4yIDIuOSAxLjIgMi4zIDAgNC4xLTEuOSA0LjEtNC4xLS4xLTEuMi0uNy0yLjMtMS41LTMuMVptLTEuMSA0LjFoLS43di44YzAgLjYtLjQgMS0xIDFzLTEtLjQtMS0xdi0uOEgxMmMtLjYgMC0xLS40LTEtMXMuNC0xIDEtMWguNnYtLjVjMC0uNi40LTEgMS0xczEgLjQgMSAxdi41aC43Yy42IDAgMSAuNCAxIDFzLS40IDEtMSAxWiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoMjB2MjBIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",vu=Object.defineProperty,us=Object.getOwnPropertySymbols,xl=Object.prototype.hasOwnProperty,Ei=Object.prototype.propertyIsEnumerable,Ai=(Ue,he,Pe)=>he in Ue?vu(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,ts=(Ue,he)=>{for(var Pe in he||(he={}))xl.call(he,Pe)&&Ai(Ue,Pe,he[Pe]);if(us)for(var Pe of us(he))Ei.call(he,Pe)&&Ai(Ue,Pe,he[Pe]);return Ue};const as=Ue=>g.createElement("svg",ts({width:16,height:16,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("g",{clipPath:"url(#pen-erase_svg__a)",fill:"#fff"},g.createElement("path",{d:"m16.74 10 .07-.2a.22.22 0 0 0 0-.16.22.22 0 0 0-.09-.12l-3.14-3.16-3.07-3.08a.18.18 0 0 0 0-.07H10.29l-.72.26-5.23 1.82a.42.42 0 0 0-.18.11.35.35 0 0 0-.1.19c-.17.63-.36 1.25-.55 1.88C3 9.21 2.51 11 2 12.67L.3 18.34c-.09.31-.18.66-.3 1l.16-.14L7 12.42l.06-.06a.16.16 0 0 0 0-.09.17.17 0 0 0 0-.1v-.08a1.87 1.87 0 0 1-.06-1.6A1.95 1.95 0 0 1 8.16 9.4c.27-.09.558-.118.84-.08a2 2 0 0 1 .78.26c.232.15.432.344.59.57a5 5 0 0 1 6.37-.15Z"}),g.createElement("path",{d:"M8.63 13.2c-.106.01-.214.01-.32 0a3.38 3.38 0 0 1-.52-.22L.74 20l4-1.2 5-1.44a4.9 4.9 0 0 1-1.11-4.16ZM11.25 2.62c1.83 1.82 3.62 3.62 5.43 5.43l.81.83L20 7.21 12.83 0l-.08.1c-.5.75-1 1.53-1.5 2.25v.06a.192.192 0 0 0 0 .07.19.19 0 0 0 0 .08.208.208 0 0 0 0 .06ZM16.38 11a4.1 4.1 0 0 0-6.66 2 4.24 4.24 0 0 0-.18 1.13 4.11 4.11 0 0 0 1.27 3 4.06 4.06 0 0 0 2.85 1.16A4.12 4.12 0 0 0 16.38 11Zm-1 4.08h-3.32a1 1 0 0 1 0-2h3.27a1 1 0 0 1 0 2h.05Z"})),g.createElement("defs",null,g.createElement("clipPath",{id:"pen-erase_svg__a"},g.createElement("path",{fill:"#fff",d:"M0 0h20v20H0z"}))));var yo="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Im0xNi43NCAxMCAuMDctLjJhLjIyLjIyIDAgMCAwIDAtLjE2LjIyLjIyIDAgMCAwLS4wOS0uMTJsLTMuMTQtMy4xNi0zLjA3LTMuMDhhLjE4LjE4IDAgMCAwIDAtLjA3SDEwLjI5bC0uNzIuMjYtNS4yMyAxLjgyYS40Mi40MiAwIDAgMC0uMTguMTEuMzUuMzUgMCAwIDAtLjEuMTljLS4xNy42My0uMzYgMS4yNS0uNTUgMS44OEMzIDkuMjEgMi41MSAxMSAyIDEyLjY3TC4zIDE4LjM0Yy0uMDkuMzEtLjE4LjY2LS4zIDFsLjE2LS4xNEw3IDEyLjQybC4wNi0uMDZhLjE2LjE2IDAgMCAwIDAtLjA5LjE3LjE3IDAgMCAwIDAtLjF2LS4wOGExLjg3IDEuODcgMCAwIDEtLjA2LTEuNkExLjk1IDEuOTUgMCAwIDEgOC4xNiA5LjRjLjI3LS4wOS41NTgtLjExOC44NC0uMDhhMiAyIDAgMCAxIC43OC4yNmMuMjMyLjE1LjQzMi4zNDQuNTkuNTdhNSA1IDAgMCAxIDYuMzctLjE1WiIvPjxwYXRoIGQ9Ik04LjYzIDEzLjJjLS4xMDYuMDEtLjIxNC4wMS0uMzIgMGEzLjM4IDMuMzggMCAwIDEtLjUyLS4yMkwuNzQgMjBsNC0xLjIgNS0xLjQ0YTQuOSA0LjkgMCAwIDEtMS4xMS00LjE2Wk0xMS4yNSAyLjYyYzEuODMgMS44MiAzLjYyIDMuNjIgNS40MyA1LjQzbC44MS44M0wyMCA3LjIxIDEyLjgzIDBsLS4wOC4xYy0uNS43NS0xIDEuNTMtMS41IDIuMjV2LjA2YS4xOTIuMTkyIDAgMCAwIDAgLjA3LjE5LjE5IDAgMCAwIDAgLjA4LjIwOC4yMDggMCAwIDAgMCAuMDZaTTE2LjM4IDExYTQuMSA0LjEgMCAwIDAtNi42NiAyIDQuMjQgNC4yNCAwIDAgMC0uMTggMS4xMyA0LjExIDQuMTEgMCAwIDAgMS4yNyAzIDQuMDYgNC4wNiAwIDAgMCAyLjg1IDEuMTZBNC4xMiA0LjEyIDAgMCAwIDE2LjM4IDExWm0tMSA0LjA4aC0zLjMyYTEgMSAwIDAgMSAwLTJoMy4yN2ExIDEgMCAwIDEgMCAyaC4wNVoiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDIwdjIwSDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",el=Object.defineProperty,ou=Object.getOwnPropertySymbols,Zi=Object.prototype.hasOwnProperty,iu=Object.prototype.propertyIsEnumerable,gu=(Ue,he,Pe)=>he in Ue?el(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,Ws=(Ue,he)=>{for(var Pe in he||(he={}))Zi.call(he,Pe)&&gu(Ue,Pe,he[Pe]);if(ou)for(var Pe of ou(he))iu.call(he,Pe)&&gu(Ue,Pe,he[Pe]);return Ue};const Il=Ue=>g.createElement("svg",Ws({viewBox:"0 0 19 19",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("path",{d:"M18.33 4.069a.67.67 0 0 0 .67-.672V.671A.672.672 0 0 0 18.33 0h-2.718a.67.67 0 0 0-.671.671v.672H4.066V.67A.672.672 0 0 0 3.395 0H.67A.67.67 0 0 0 0 .671v2.72a.672.672 0 0 0 .67.67h.672v10.877H.67A.67.67 0 0 0 0 15.61v2.72A.672.672 0 0 0 .67 19h2.718a.67.67 0 0 0 .671-.671v-.672h10.869v.672a.672.672 0 0 0 .67.671h2.718a.67.67 0 0 0 .67-.671v-2.706a.672.672 0 0 0-.67-.671h-.671V4.069h.684Zm-2.014 10.876h-.67a.67.67 0 0 0-.671.671v.672H4.065v-.672a.672.672 0 0 0-.67-.671h-.671V4.069h.67a.67.67 0 0 0 .672-.672v-.671h10.868v.671a.672.672 0 0 0 .671.672h.671l.02 5.438.02 5.438Z",fill:"#fff"}),g.createElement("g",{stroke:"#fff",strokeWidth:1.5,strokeLinecap:"round"},g.createElement("path",{d:"m6.71 6.713 6.037 6.043M6.71 6.713l6.037 6.043M6.71 6.713l6.037 6.043M6.71 6.713l6.037 6.043"})),g.createElement("g",{stroke:"#fff",strokeWidth:1.5,strokeLinecap:"round"},g.createElement("path",{d:"M12.747 6.713 6.71 12.756M12.747 6.713 6.71 12.756M12.747 6.713 6.71 12.756M12.747 6.713 6.71 12.756"})));var Al="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTkgMTkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE4LjMzIDQuMDY5YS42Ny42NyAwIDAgMCAuNjctLjY3MlYuNjcxQS42NzIuNjcyIDAgMCAwIDE4LjMzIDBoLTIuNzE4YS42Ny42NyAwIDAgMC0uNjcxLjY3MXYuNjcySDQuMDY2Vi42N0EuNjcyLjY3MiAwIDAgMCAzLjM5NSAwSC42N0EuNjcuNjcgMCAwIDAgMCAuNjcxdjIuNzJhLjY3Mi42NzIgMCAwIDAgLjY3LjY3aC42NzJ2MTAuODc3SC42N0EuNjcuNjcgMCAwIDAgMCAxNS42MXYyLjcyQS42NzIuNjcyIDAgMCAwIC42NyAxOWgyLjcxOGEuNjcuNjcgMCAwIDAgLjY3MS0uNjcxdi0uNjcyaDEwLjg2OXYuNjcyYS42NzIuNjcyIDAgMCAwIC42Ny42NzFoMi43MThhLjY3LjY3IDAgMCAwIC42Ny0uNjcxdi0yLjcwNmEuNjcyLjY3MiAwIDAgMC0uNjctLjY3MWgtLjY3MVY0LjA2OWguNjg0Wm0tMi4wMTQgMTAuODc2aC0uNjdhLjY3LjY3IDAgMCAwLS42NzEuNjcxdi42NzJINC4wNjV2LS42NzJhLjY3Mi42NzIgMCAwIDAtLjY3LS42NzFoLS42NzFWNC4wNjloLjY3YS42Ny42NyAwIDAgMCAuNjcyLS42NzJ2LS42NzFoMTAuODY4di42NzFhLjY3Mi42NzIgMCAwIDAgLjY3MS42NzJoLjY3MWwuMDIgNS40MzguMDIgNS40MzhaIiBmaWxsPSIjZmZmIi8+PGcgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cGF0aCBkPSJtNi43MSA2LjcxMyA2LjAzNyA2LjA0M002LjcxIDYuNzEzbDYuMDM3IDYuMDQzTTYuNzEgNi43MTNsNi4wMzcgNi4wNDNNNi43MSA2LjcxM2w2LjAzNyA2LjA0MyIvPjwvZz48ZyBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiPjxwYXRoIGQ9Ik0xMi43NDcgNi43MTMgNi43MSAxMi43NTZNMTIuNzQ3IDYuNzEzIDYuNzEgMTIuNzU2TTEyLjc0NyA2LjcxMyA2LjcxIDEyLjc1Nk0xMi43NDcgNi43MTMgNi43MSAxMi43NTYiLz48L2c+PC9zdmc+",Is=Object.defineProperty,hs=Object.getOwnPropertySymbols,Du=Object.prototype.hasOwnProperty,Hs=Object.prototype.propertyIsEnumerable,ma=(Ue,he,Pe)=>he in Ue?Is(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,at=(Ue,he)=>{for(var Pe in he||(he={}))Du.call(he,Pe)&&ma(Ue,Pe,he[Pe]);if(hs)for(var Pe of hs(he))Hs.call(he,Pe)&&ma(Ue,Pe,he[Pe]);return Ue};const Gt=Ue=>g.createElement("svg",at({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 34.02 34.02"},Ue),g.createElement("defs",null,g.createElement("style",null,".segment-everything_svg__cls-1{fill:#fff}.segment-everything_svg__cls-3{fill:none}")),g.createElement("path",{className:"segment-everything_svg__cls-1",d:"m6.26 15.54 5.88 3.88a1 1 0 0 1 0 1.56L6.1 25.29a.9.9 0 0 1-1.41-.79l.19-8.2a.9.9 0 0 1 1.38-.76ZM7.58 29.17 23.43 17.7a1.71 1.71 0 0 1 2.25.22l3.32 3.5v7.75Z"}),g.createElement("path",{d:"M31 4.35a.88.88 0 0 0-.11-1.19 1 1 0 0 0-1.19-.09c-3.29 2.56-4.66 2.56-8 0a.87.87 0 0 0-1.19.09.87.87 0 0 0-.09 1.19c2.56 3.29 2.56 4.66 0 8a.92.92 0 0 0 1.28 1.28c3.29-2.56 4.66-2.56 8 0a1.28 1.28 0 0 0 .55.18.91.91 0 0 0 .64-.27.87.87 0 0 0 .11-1.19c-2.65-3.35-2.65-4.62 0-8Z",style:{fill:"#fcfefe"}}),g.createElement("path",{className:"segment-everything_svg__cls-3",d:"M4.07 4.13h26.29v26.29H4.07z"}),g.createElement("path",{className:"segment-everything_svg__cls-3",d:"M6.39 28.56h22.49V17H16.49v-3.38a2.56 2.56 0 0 1-2 .93 2.63 2.63 0 0 1-2.59-2.72 2.66 2.66 0 0 1 2.6-2.67 2.57 2.57 0 0 1 2 .95v-4H6.39Z"}),g.createElement("path",{className:"segment-everything_svg__cls-1",d:"M14.51 9.16a2.66 2.66 0 0 0-2.6 2.67 2.63 2.63 0 0 0 2.59 2.72 2.56 2.56 0 0 0 2-.93v-3.51a2.57 2.57 0 0 0-1.99-.95Z"}),g.createElement("path",{className:"segment-everything_svg__cls-1",d:"M28.88 28.56H6.39V6.1h10.1V4.25H5.42a.88.88 0 0 0-.89.88v25.28h26.21V17h-1.86Z"}),g.createElement("path",{className:"segment-everything_svg__cls-1",d:"M17.14 11.87a2.74 2.74 0 0 0-.65-1.76v3.51a2.7 2.7 0 0 0 .65-1.75Z"}));var Hn="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmZ9LmNscy0ze2ZpbGw6bm9uZX08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Im02LjI2IDE1LjU0IDUuODggMy44OGExIDEgMCAwIDEgMCAxLjU2TDYuMSAyNS4yOWEuOS45IDAgMCAxLTEuNDEtLjc5bC4xOS04LjJhLjkuOSAwIDAgMSAxLjM4LS43NlpNNy41OCAyOS4xNyAyMy40MyAxNy43YTEuNzEgMS43MSAwIDAgMSAyLjI1LjIybDMuMzIgMy41djcuNzVaIi8+PHBhdGggZD0iTTMxIDQuMzVhLjg4Ljg4IDAgMCAwLS4xMS0xLjE5IDEgMSAwIDAgMC0xLjE5LS4wOWMtMy4yOSAyLjU2LTQuNjYgMi41Ni04IDBhLjg3Ljg3IDAgMCAwLTEuMTkuMDkuODcuODcgMCAwIDAtLjA5IDEuMTljMi41NiAzLjI5IDIuNTYgNC42NiAwIDhhLjkyLjkyIDAgMCAwIDEuMjggMS4yOGMzLjI5LTIuNTYgNC42Ni0yLjU2IDggMGExLjI4IDEuMjggMCAwIDAgLjU1LjE4LjkxLjkxIDAgMCAwIC42NC0uMjcuODcuODcgMCAwIDAgLjExLTEuMTljLTIuNjUtMy4zNS0yLjY1LTQuNjIgMC04WiIgc3R5bGU9ImZpbGw6I2ZjZmVmZSIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTQuMDcgNC4xM2gyNi4yOXYyNi4yOUg0LjA3eiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTYuMzkgMjguNTZoMjIuNDlWMTdIMTYuNDl2LTMuMzhhMi41NiAyLjU2IDAgMCAxLTIgLjkzIDIuNjMgMi42MyAwIDAgMS0yLjU5LTIuNzIgMi42NiAyLjY2IDAgMCAxIDIuNi0yLjY3IDIuNTcgMi41NyAwIDAgMSAyIC45NXYtNEg2LjM5WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0LjUxIDkuMTZhMi42NiAyLjY2IDAgMCAwLTIuNiAyLjY3IDIuNjMgMi42MyAwIDAgMCAyLjU5IDIuNzIgMi41NiAyLjU2IDAgMCAwIDItLjkzdi0zLjUxYTIuNTcgMi41NyAwIDAgMC0xLjk5LS45NVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yOC44OCAyOC41Nkg2LjM5VjYuMWgxMC4xVjQuMjVINS40MmEuODguODggMCAwIDAtLjg5Ljg4djI1LjI4aDI2LjIxVjE3aC0xLjg2WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE3LjE0IDExLjg3YTIuNzQgMi43NCAwIDAgMC0uNjUtMS43NnYzLjUxYTIuNyAyLjcgMCAwIDAgLjY1LTEuNzVaIi8+PC9zdmc+",ur=function(he){var Pe=he.drawData,Bn=he.onChangePointResolution,vt=(0,z.bU)(),Tn=vt.localeText,bn=(0,g.useMemo)(function(){return Pe.objectList.length===0&&!Pe.creatingObject||Pe.isBatchEditing},[Pe.objectList,Pe.creatingObject,Pe.isBatchEditing]),On=(0,g.useMemo)(function(){return[{key:Q.jB.PenAdd,name:Tn("DDSAnnotator.subtoolbar.mask.penAdd"),icon:(0,x.jsx)(H.Z,{component:go}),available:!0},{key:Q.jB.PenErase,name:Tn("DDSAnnotator.subtoolbar.mask.penErase"),icon:(0,x.jsx)(H.Z,{component:as}),available:!!Pe.creatingObject},{key:Q.jB.BrushAdd,name:Tn("DDSAnnotator.subtoolbar.mask.brushAdd"),icon:(0,x.jsx)(H.Z,{component:Js}),available:!0,withSize:!0},{key:Q.jB.BrushErase,name:Tn("DDSAnnotator.subtoolbar.mask.brushErase"),icon:(0,x.jsx)(H.Z,{component:_l}),available:!!Pe.creatingObject,withSize:!0}]},[Pe.creatingObject]),Nn=(0,g.useMemo)(function(){return[{key:Q.jB.AutoSegmentByBox,name:Tn("DDSAnnotator.subtoolbar.mask.box"),icon:(0,x.jsx)(H.Z,{component:ec}),available:!0},{key:Q.jB.AutoSegmentByStroke,name:Tn("DDSAnnotator.subtoolbar.mask.stroke"),icon:(0,x.jsx)(H.Z,{component:vl}),available:!0,withSize:!0},{key:Q.jB.AutoSegmentByClick,name:Tn("DDSAnnotator.subtoolbar.mask.click"),icon:(0,x.jsx)(H.Z,{component:ps}),available:!0}]},[]),dr=(0,g.useMemo)(function(){return[{key:Q.jB.AutoSegmentByBox,name:Tn("DDSAnnotator.subtoolbar.mask.box"),icon:(0,x.jsx)(H.Z,{component:ec}),available:!0,withCustomElement:!0},{key:Q.jB.AutoSegmentByStroke,name:Tn("DDSAnnotator.subtoolbar.mask.stroke"),icon:(0,x.jsx)(H.Z,{component:vl}),available:!0,withSize:!0,withCustomElement:!0},{key:Q.jB.AutoSegmentByClick,name:Tn("DDSAnnotator.subtoolbar.mask.click"),icon:(0,x.jsx)(H.Z,{component:ps}),available:!0,withCustomElement:!0}]},[]),mr=(0,g.useMemo)(function(){var Cr;return[{key:Q.jB.PositiveVisualPrompt,name:Tn("DDSAnnotator.subtoolbar.visualprompt.positive"),icon:(0,x.jsx)(H.Z,{component:qo}),available:!0},{key:Q.jB.NegativeVisualPrompt,name:Tn("DDSAnnotator.subtoolbar.visualprompt.negative"),icon:(0,x.jsx)(H.Z,{component:Il}),available:!!((Cr=Pe.prompt.promptsQueue)!==null&&Cr!==void 0&&Cr.some(function(ir){return ir.isPositive}))}]},[Pe.prompt]),yr=(0,g.useMemo)(function(){return[{key:Q.jB.AutoSegmentEverything,name:Tn("DDSAnnotator.subtoolbar.mask.sam"),icon:(0,x.jsx)(H.Z,{component:Gt}),available:bn,description:Tn(bn?"DDSAnnotator.subtoolbar.mask.sam.desc":"DDSAnnotator.subtoolbar.mask.sam.notAllow")},{key:Q.jB.AutoEdgeStitching,name:Tn("DDSAnnotator.subtoolbar.mask.edgeStitch"),icon:(0,x.jsx)(H.Z,{component:fl}),available:!0,withSize:!0}]},[bn]),Ln=(0,g.useMemo)(function(){var Cr=Pe.selectedTool,ir=Pe.creatingObject,Sr=Pe.AIAnnotation,Ir=Pe.selectedModel;return!!(Cr===Q.ru.Mask||(ir==null?void 0:ir.type)===Q.gr.Mask||Cr===Q.ru.Rectangle&&Sr&&Ir[Cr]===Q.HE.IVP||(Cr===Q.ru.Polygon||(ir==null?void 0:ir.type)===Q.gr.Polygon)&&Sr)},[Pe.selectedTool,Pe.creatingObject,Pe.AIAnnotation,Pe.selectedModel]),ea=(0,g.useMemo)(function(){var Cr,ir;if(Pe.selectedTool===Q.ru.Mask||((Cr=Pe.creatingObject)===null||Cr===void 0?void 0:Cr.type)===Q.gr.Mask){if(!Pe.AIAnnotation)return{basicTools:On,smartTools:[]};var Sr=Pe.selectedModel[Pe.selectedTool];return Sr===Q.HE.IVP?{basicTools:[],smartTools:mr}:Sr===Q.HE.SegmentByMask?{basicTools:[],smartTools:Nn}:Sr===Q.HE.SegmentEverything?{basicTools:[],smartTools:yr}:{basicTools:On,smartTools:[]}}else{if(Pe.selectedTool===Q.ru.Polygon||((ir=Pe.creatingObject)===null||ir===void 0?void 0:ir.type)===Q.gr.Polygon)return{basicTools:[],smartTools:dr,customElement:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"dds-annotator-subtoolbar-title",children:Tn("DDSAnnotator.subtoolbar.polygon.pointResolution")}),(0,x.jsx)("div",{className:"dds-annotator-subtoolbar-slider",children:(0,x.jsx)(Wn.Z,{min:.1,max:.9,step:.1,value:Pe.pointResolution,onChange:Bn,onAfterChange:function(ia){return Bn(ia,!0)}})})]})};if(Pe.selectedTool===Q.ru.Rectangle&&Pe.AIAnnotation&&Pe.selectedModel[Pe.selectedTool]===Q.HE.IVP)return{basicTools:[],smartTools:mr}}return{basicTools:[],smartTools:[]}},[Pe.selectedTool,Pe.creatingObject,Pe.AIAnnotation,Pe.selectedModel,dr,On,Nn,yr,mr,Pe.pointResolution]);return{showSubTools:Ln,currSubTools:ea}},wa=ur,fo=function(he){var Pe=he.mode,Bn=he.manualMode,vt=he.drawData,Tn=he.setDrawData,bn=he.setDrawDataWithHistory,On=he.editState,Nn=he.setEditState,dr=he.clientSize,mr=he.naturalSize,yr=he.addObject,Ln=he.updateObject,ea=he.updateAllObject,Cr=he.getAnnotColor,ir=he.onAiAnnotation,Sr=(0,z.bU)(),Ir=Sr.localeText,ia=(0,g.useCallback)(function(lt){var en;return On.annotsDisplayOptions.colorByCategory?Cr(lt):vt.activeObjectIndex>-1?vt.objectList[vt.activeObjectIndex].color:((en=vt.creatingObject)===null||en===void 0?void 0:en.color)||Cr(lt)},[On.annotsDisplayOptions.colorByCategory,Cr,vt.activeObjectIndex,vt.objectList,vt.creatingObject]),Kn=function(en){var En=vt.objectList[vt.activeObjectIndex];if(En){var wn=t()(t()({},vt.objectList[vt.activeObjectIndex]),{},{attributes:void 0});wn.labelId=en,On.annotsDisplayOptions.colorByCategory&&(wn.color=Cr(en)),wn.type===Q.gr.Mask&&wn.maskRle&&(wn.maskCanvasElement=(0,fr.ei)(wn.maskRle,mr,wn.color)),vt.isBatchEditing&&(wn.conf=1),Ln(wn,vt.activeObjectIndex)}Nn(function(_n){_n.latestLabelId=en})},Yr=(0,g.useCallback)(function(lt){var en,En;if(((en=vt.creatingObject)===null||en===void 0?void 0:en.type)===Q.gr.Mask){var wn,_n,vr=(0,fr.G9)(dr,mr,((wn=vt.creatingObject)===null||wn===void 0?void 0:wn.tempMaskSteps)||[],(_n=vt.creatingObject)===null||_n===void 0?void 0:_n.maskCanvasElement);if(vr&&vr.length>0){var Lr=ia(lt),ga=t()(t()({},vt.objectList[vt.activeObjectIndex]),{},{type:Q.gr.Mask,labelId:lt,hidden:!1,maskRle:vr,maskCanvasElement:(0,fr.ei)(vr,mr,Lr),conf:1,status:W.TK.Commited,color:Lr});vt.activeObjectIndex>-1?Ln(ga,vt.activeObjectIndex):yr(ga)}else vr?S.ZP.warning(Ir("DDSAnnotator.anno.mask.emptyWarning")):S.ZP.error(Ir("DDSAnnotator.anno.mask.translateToRleError"))}else if(((En=vt.creatingObject)===null||En===void 0?void 0:En.type)===Q.gr.Polygon){var wr,ta=Cr(lt),ja=t()(t()({},vt.objectList[vt.activeObjectIndex]),{},{type:Q.gr.Polygon,labelId:lt,hidden:!1,polygon:(wr=vt.creatingObject)===null||wr===void 0?void 0:wr.polygon,conf:1,status:W.TK.Commited,color:ta});vt.activeObjectIndex>-1?Ln(ja,vt.activeObjectIndex):yr(ja)}else{var vo=t()({},vt.objectList[vt.activeObjectIndex]);vo.labelId=lt,On.annotsDisplayOptions.colorByCategory&&(vo.color=Cr(lt)),vt.isBatchEditing&&(vo.conf=1),Ln(vo,vt.activeObjectIndex)}Tn(function(Fa){Fa.creatingObject=void 0,Fa.prompt={},Fa.activeObjectIndex=-1,Fa.selectedSubTool===Q.jB.PenErase?Fa.selectedSubTool=Q.jB.PenAdd:Fa.selectedSubTool===Q.jB.BrushErase&&(Fa.selectedSubTool=Q.jB.BrushAdd)}),Nn(function(Fa){Fa.latestLabelId=lt})},[vt.creatingObject,vt.activeObjectIndex,vt.objectList,vt.selectedSubTool]),qr=(0,g.useCallback)(function(){bn(function(lt){var en=(0,m.cloneDeep)(vt.objectList).filter(function(En){return En.status!==W.TK.Unchecked}).map(function(En){return En.status=W.TK.Commited,En.type!==Q.gr.Mask&&(En.color=Cr(En.labelId)),En});lt.objectList=en,lt.isBatchEditing=!1,lt.activeObjectIndex=-1,lt.creatingObject=void 0,lt.prompt={}})},[vt.objectList,bn]),ua=(0,g.useCallback)(function(){bn(function(lt){var en=(0,m.cloneDeep)(vt.objectList).filter(function(En){return En.status===W.TK.Commited});lt.objectList=en,lt.isBatchEditing=!1,lt.activeObjectIndex=-1,lt.creatingObject=void 0,lt.prompt={}})},[vt.objectList,bn]),tr=(0,g.useCallback)(function(){var lt=vt.selectedTool,en=vt.AIAnnotation,En=vt.selectedModel,wn=vt.selectedSubTool,_n=vt.isBatchEditing,vr=vt.creatingObject,Lr=function(){if(!en)return!1;if(lt===Q.ru.Rectangle)return _n;if(lt===Q.ru.Polygon)return vr;if(lt===Q.ru.Skeleton)return _n;if(lt===Q.ru.Mask){var ta=En[lt];return ta===Q.HE.IVP||ta===Q.HE.SegmentEverything&&wn===Q.jB.AutoSegmentEverything?_n:ta===Q.HE.SegmentByMask?vr:!1}return!1},ga=Lr();return ga&&S.ZP.warning(Ir("DDSAnnotator.smart.tip.limitJump")),ga},[vt.selectedTool,vt.selectedModel,vt.AIAnnotation,vt.selectedSubTool,vt.isBatchEditing,vt.creatingObject]),sr=(0,g.useCallback)(function(lt){Pe!==W.je.Edit||lt===vt.selectedTool&&!vt.AIAnnotation||tr()||Tn(function(en){en.selectedTool=lt,en.isJustCreated=!1,en.AIAnnotation=!1,en.activeObjectIndex=-1,en.creatingObject=void 0,en.editingAttribute=void 0,en.prompt={}})},[Pe,vt.selectedTool,vt.isBatchEditing,vt.AIAnnotation,tr]),_r=(0,g.useCallback)(function(lt){var en=vt.selectedTool,En=vt.selectedModel,wn=vt.selectedSubTool,_n=vt.AIAnnotation,vr=vt.isBatchEditing;Pe!==W.je.Edit||lt===wn||en===Q.ru.Mask&&_n&&En[en]===Q.HE.SegmentEverything&&vr||Tn(function(Lr){Lr.selectedSubTool=lt})},[Pe,vt.selectedTool,vt.AIAnnotation,vt.selectedModel,vt.isBatchEditing,vt.selectedSubTool,tr]),zr=(0,g.useCallback)(function(lt,en){Tn(function(En){En.selectedTool=lt,En.selectedSubTool=en})},[]),Fr=(0,g.useCallback)(function(){bn(function(lt){lt.objectList=lt.objectList.filter(function(en){return en.status===W.TK.Commited}),lt.AIAnnotation=!1,lt.isBatchEditing=!1,lt.creatingObject=void 0,lt.prompt={}})},[bn]),xr=(0,g.useCallback)(function(lt){Pe===W.je.Edit&&Tn(function(en){en.brushSize=lt})},[Pe]),Tr=(0,g.useCallback)(function(lt){Pe===W.je.Edit&&Tn(function(en){en.pointResolution=lt})},[Pe]),ya=(0,g.useCallback)(function(lt,en){if(Tr(lt),en&&vt.creatingObject&&vt.creatingObject.type===Q.gr.Polygon&&vt.prompt.promptsQueue&&vt.prompt.promptsQueue.length>0){var En=t()(t()({},vt),{},{pointResolution:lt});ir({type:Q.gr.Polygon,drawData:En,promptsQueue:vt.prompt.promptsQueue})}},[vt.creatingObject,vt.prompt]),ba=function(){n.Z.info({centered:!0,closable:!0,title:Ir("DDSAnnotator.smart.infoModal.title"),content:Ir("DDSAnnotator.smart.infoModal.content"),okText:Ir("DDSAnnotator.smart.infoModal.action"),onOk:function(){window.open("https://deepdataspace.com","_blank")}})},K=(0,g.useCallback)(function(lt){Pe!==W.je.Edit||Bn||tr()||Tn(function(en){en.AIAnnotation=lt})},[Pe,Bn,tr]),B=(0,g.useCallback)(function(lt){bn(function(en){var En=(0,m.cloneDeep)(vt.objectList).map(function(wn){return wn.status===W.TK.Commited?wn:wn.conf===void 0?(wn.status=W.TK.Unchecked,wn):(wn.status=wn.conflt[1]?W.TK.Unchecked:W.TK.Checked,wn)});en.objectList=En})},[vt.objectList,bn]),ue=(0,g.useCallback)(function(lt){bn(function(en){var En=(0,m.cloneDeep)(vt.objectList).map(function(_n){return _n.status===W.TK.Commited||(_n.status=_n.conf&&_n.conf>=lt?W.TK.Checked:W.TK.Unchecked),_n});en.objectList=En;var wn=En.filter(function(_n){return _n.status===W.TK.Checked}).length;S.ZP.success(Ir("DDSAnnotator.smart.tip.annotationApplied",{count:wn}))})},[vt.objectList,bn]),Me=(0,g.useCallback)(function(lt){Nn(function(en){en.imageDisplayOptions=lt})},[]),Le=(0,g.useCallback)(function(lt){Nn(function(en){en.annotsDisplayOptions=lt})},[]),Je=(0,g.useCallback)(function(){if(!(!vt.objectList||!vt.objectList.length)){var lt=(0,m.cloneDeep)(vt.objectList).map(function(en){var En=Cr(en.labelId);return en.type===Q.gr.Mask&&en.maskRle&&en.maskRle.length>0?t()(t()({},en),{},{color:En,maskCanvasElement:(0,fr.ei)(en.maskRle,mr,En)}):t()(t()({},en),{},{color:En})});ea(lt)}},[vt.objectList,Cr]),Dt=(0,g.useCallback)(function(lt){var en=vt.selectedTool,En=Q.Xn[en];return!(!En.includes(lt)||tr())},[Q.Xn,vt.selectedTool,tr]),Bt=(0,g.useCallback)(function(lt){Dt(lt)&&Tn(function(en){en.selectedModel[en.selectedTool]=lt})},[Dt]);return(0,g.useEffect)(function(){Tn(function(lt){if(lt.AIAnnotation){var en=lt.selectedModel[lt.selectedTool];switch(lt.selectedTool){case Q.ru.Rectangle:en===Q.HE.IVP?lt.selectedSubTool=Q.jB.PositiveVisualPrompt:lt.selectedSubTool=Q.jB.PenAdd;break;case Q.ru.Mask:if(en===Q.HE.IVP)lt.selectedSubTool=Q.jB.PositiveVisualPrompt;else if(en===Q.HE.SegmentEverything){var En=lt.objectList.length===0&&!lt.creatingObject||lt.isBatchEditing;lt.selectedSubTool=En?Q.jB.AutoSegmentEverything:Q.jB.PenAdd}else lt.selectedSubTool=Q.jB.AutoSegmentByBox;break;case Q.ru.Polygon:lt.selectedSubTool=Q.jB.AutoSegmentByBox;break;case Q.ru.Skeleton:case Q.ru.Drag:lt.selectedSubTool=Q.jB.PenAdd;break}}else lt.selectedSubTool=Q.jB.PenAdd})},[vt.selectedTool,vt.AIAnnotation,vt.selectedModel]),{onChangeObjectLabel:Kn,onFinishCurrCreate:Yr,onAcceptValidObjects:qr,onAbortBatchObjects:ua,selectTool:sr,selectSubTool:_r,forceChangeTool:zr,onExitAIAnnotation:Fr,setBrushSize:xr,activeAIAnnotation:K,displayAIModeUnavailableModal:ba,onChangeSkeletonConf:B,onChangeLimitConf:ue,onChangeImageDisplayOpts:Me,onChangeAnnotsDisplayOpts:Le,onChangeColorMode:Je,onChangePointResolution:ya,onSelectModel:Bt,isInAiSession:tr}},ci=fo,ko=e(92183),ns=Object.defineProperty,oi=Object.getOwnPropertySymbols,gi=Object.prototype.hasOwnProperty,Ao=Object.prototype.propertyIsEnumerable,To=(Ue,he,Pe)=>he in Ue?ns(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,Wi=(Ue,he)=>{for(var Pe in he||(he={}))gi.call(he,Pe)&&To(Ue,Pe,he[Pe]);if(oi)for(var Pe of oi(he))Ao.call(he,Pe)&&To(Ue,Pe,he[Pe]);return Ue};const ys=Ue=>g.createElement("svg",Wi({viewBox:"0 0 22 22",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("g",{clipPath:"url(#docs_svg__a)"},g.createElement("path",{d:"M14.666 5.5a.917.917 0 1 1 0 1.833H7.333a.917.917 0 1 1 0-1.833h7.333Zm7.065 16.231a.916.916 0 0 1-1.296 0l-2.206-2.206a4.086 4.086 0 0 1-4.48-.053 4.125 4.125 0 1 1 6.417-3.43 4.085 4.085 0 0 1-.641 2.187l2.206 2.206a.917.917 0 0 1 0 1.296Zm-5.69-3.398a2.292 2.292 0 1 0 0-4.583 2.292 2.292 0 0 0 0 4.583Zm-4.125 1.834h-5.5a2.75 2.75 0 0 1-2.75-2.75V4.583a2.75 2.75 0 0 1 2.75-2.75h11a.917.917 0 0 1 .917.917v7.333a.917.917 0 0 0 1.833 0V2.75A2.75 2.75 0 0 0 17.416 0h-11a4.589 4.589 0 0 0-4.583 4.583v12.834A4.589 4.589 0 0 0 6.416 22h5.5a.917.917 0 1 0 0-1.833Z"})),g.createElement("defs",null,g.createElement("clipPath",{id:"docs_svg__a"},g.createElement("path",{d:"M0 0h22v22H0z"}))));var wu="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjIgMjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTQuNjY2IDUuNWEuOTE3LjkxNyAwIDEgMSAwIDEuODMzSDcuMzMzYS45MTcuOTE3IDAgMSAxIDAtMS44MzNoNy4zMzNabTcuMDY1IDE2LjIzMWEuOTE2LjkxNiAwIDAgMS0xLjI5NiAwbC0yLjIwNi0yLjIwNmE0LjA4NiA0LjA4NiAwIDAgMS00LjQ4LS4wNTMgNC4xMjUgNC4xMjUgMCAxIDEgNi40MTctMy40MyA0LjA4NSA0LjA4NSAwIDAgMS0uNjQxIDIuMTg3bDIuMjA2IDIuMjA2YS45MTcuOTE3IDAgMCAxIDAgMS4yOTZabS01LjY5LTMuMzk4YTIuMjkyIDIuMjkyIDAgMSAwIDAtNC41ODMgMi4yOTIgMi4yOTIgMCAwIDAgMCA0LjU4M1ptLTQuMTI1IDEuODM0aC01LjVhMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NVY0LjU4M2EyLjc1IDIuNzUgMCAwIDEgMi43NS0yLjc1aDExYS45MTcuOTE3IDAgMCAxIC45MTcuOTE3djcuMzMzYS45MTcuOTE3IDAgMCAwIDEuODMzIDBWMi43NUEyLjc1IDIuNzUgMCAwIDAgMTcuNDE2IDBoLTExYTQuNTg5IDQuNTg5IDAgMCAwLTQuNTgzIDQuNTgzdjEyLjgzNEE0LjU4OSA0LjU4OSAwIDAgMCA2LjQxNiAyMmg1LjVhLjkxNy45MTcgMCAxIDAgMC0xLjgzM1oiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBkPSJNMCAwaDIydjIySDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",Kl=Object.defineProperty,cs=Object.getOwnPropertySymbols,ju=Object.prototype.hasOwnProperty,Ql=Object.prototype.propertyIsEnumerable,ds=(Ue,he,Pe)=>he in Ue?Kl(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,Ic=(Ue,he)=>{for(var Pe in he||(he={}))ju.call(he,Pe)&&ds(Ue,Pe,he[Pe]);if(cs)for(var Pe of cs(he))Ql.call(he,Pe)&&ds(Ue,Pe,he[Pe]);return Ue};const nc=Ue=>g.createElement("svg",Ic({viewBox:"0 0 33 33",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},Ue),g.createElement("path",{d:"m15.5 1 13.423 7.75v15.5L15.5 32 2.077 24.25V8.75L15.5 1Z",fill:"#fff"}),g.createElement("path",{fill:"url(#logo_svg__a)",d:"M0 0h33v33H0z"}),g.createElement("defs",null,g.createElement("pattern",{id:"logo_svg__a",patternContentUnits:"objectBoundingBox",width:1,height:1},g.createElement("use",{xlinkHref:"#logo_svg__b",transform:"scale(.00417)"})),g.createElement("image",{id:"logo_svg__b",width:240,height:240,xlinkHref:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAADwCAYAAAA+VemSAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABLHSURBVHgB7d1fVhw3FgbwKxX2jIE47QWYFCtIWMHACoLBeQ5eAbACmhUAK8B5DtidFcAOcFbgMlmAexyMk4GSRqqmCSYBd3dJKl3V93vKOfPnnND9dd0rXakEQXLy5U+LOtNbmnQhS7ld9B4VBEkSBMnIl3VHyU9bJPTGZ/+Blt0P6o+9fu9JnyApCHAi5lZscEsTXNG5479SaK23f3s1+5IgGQgwc7ZcVlLtm08yH/F/YsvqJZTVaUCAmTLBzU2fu2/63EWazEv0x/whwMwM+tw/1kmoLtXXN/3x7umrR9sELCHAjOSr5+uKbHDv7HMnhf6YKQSYgRvbQovkkSDRE6XYRFnNBwIcMQd97qTQHzOBAEforz733m0h31BWM4AAR+bpytmaELTTYHBvKzSVm78dPu4RRAcBjkSoPrcGlNURQoAbVpXL2cdd81H8SBxo2ZWKfkKQ44AANySSPndS6I8jgQA3YILxx1gVsnzwrOg9fEPQCAQ4oPyHs++0kjsR97mTQn/cEAQ4gDuP+aXG9McYywwLAfbM4/hjrNAfB4QAe5JQnzupN6asfoay2i8E2LEGxx9jhf7YIwTYEcfH/FJTmP74Jfpj9xBgB1rY504K/bFjCHANDMYfo4Rji+4gwBMY9LnK7OfSMkEd6I9rQoDHwHz8MVYoq2tAgEdUHfMjsdXibSHfcGxxAgjwF6DPDQ5l9RgQ4DuwO+aXGrxNYiQI8C3oc6OC/vgLEOAbMP4YLbxN4g4IMCV9zC816I9vaXWAW3PMLzU4tnittQHG+CN76I+phQG2fW4py10hxLcEKWj1scXWBBjH/JLXyv44+QBjW6hVCtJi7/TV9C61RNIBRp/bWq3pj5MMMMYf4UryZXVSAbZ9rsrKLsYf4TNa7Eol9lIMchIBRp8LI0iyrGYf4KerH5eFph2MP8KI7FjmC/M0PqYEsA0w+lyoKYn+mF2AMf4ITjE/tsgqwHMrNrjoc8E5tv0xiwDjmB8Ewu7YYtQBxvgjNIRNfxxlgNHnQgT6pj/ejf3YYnQBTmT8sW9+fLal+Qet5LoWOifgKur+OJoAp3PMT+/JcqZb9ES1qonpsDQIEseiFC9iK6sbD3AqfW71AUu1Wfw8++af/vPq31PqIzyN2YuqP24swKmMP5rgFkKUL4qDr45H+e/nK2drmuQWgsxaNMcWGwlw9ZYDQTv8+1y1Jy9nd4fl8qhQViej8f44aIBTGX80f7SeKGXtt+tdvSTttSb6joCzxsrqIAFO5YlT9bmi3B61XB4VyupENHBs0WuAEzrmV20LnR7Meut5qh+5qcs1s/e4RcBZ0LLaW4ATOuZnyqPpzXH73EkNqpVL80MhvyfgrJDlg2dF7+Eb8sh5gBM95he8x0FZnQyv3x1nAW7B+GMjo3Vzz3/voqxOgKe3STgJcMuO+QXfOsC2UzKcf3dqBbjlx/yCvxEAZXUynB1brBXgudWPmiB4f3xVVq+bf8TFBnwVp4cz81STJKhrTWXqqGojAjk9+KprfjQWTGP1E0GrIcBu5CRU11Qkb+2YKAVgn/inh7NrUuhNgtZCgN3KhRD736yev7YLTxRAcTC7a57G80KLgqB1EGAPzB74simr35on8n6IINunsVBiCSFuHwTYr6v++Nz73jhC3E5JBtgsrXsdXxuT6Y/1Toj+GCH+nD18Iql8lvJiX1IBtofrpVBL7w5nFmxfGNkHV/XHvsvqKsSZMl9aYnlRuQvV90DrF+8Op5eKw8e9arEv0XWCVAJsD9dvi/LRwvCo3/UqrfkgI/vg1qr+2OO2k73Wx6xOR32boid/fQ9uTTvZ78O7V9PzEX4faklhkGOkQYpIhx+8TnPZ1XC7oEYtMM6lc5Ec3XQyyME2wJMcro90priQUj+76zK8OvLl9x2VPXxLCU9sCU2/Cqk2JrlkoeHvQ2sDXPtwff7890Wtsv2IZor7JsRLPkI8t2IqD5HkaSZnlyw0NGPewgCb/maSS+Tukj8/24jo4nVvIf5m5fxtWgcgPr972xXbZgmV/Rjob9WeWehqO8CsItoZYJcfmp1istsukaxWd5QSR/kPZ84vuBOk9igB19+Dw9kNHzek2O9XRN+HkUT9BB73zuU6Irp4vfhQ/m/B5ftquffCIb8HQ4P+WJ2Qv79Z+k9gralHl1MFBRDRNkP+dfav1+RQYX8MFMthhr9tD4Zwdc79iBj84MVdQgu9YUcRQ53wsez+YdNllL1PzPX4pcx0j3ixlwk6b5vuY4Nrtt6O7HeOyyUVnBax7C0Gdp/vmAJp+OL1viml512W0ubzek+RP1V83b19n4buc2vdgf68OhgQ6ISPVZXVdiyzmbK681j+y+32j6JfKF796/HHQOG1wbUTcSr7+JbrZYwcRymvRxE7ZnGGArguq00/RiGZL5XLHyspdEyHPIaqPteWy0XAiwJtW6bk+Ym9iIHzZYx8Z6HNH/5x9vAk6A0Yg6ts5m2ZR4Go6rZPR2RcAb7aFlpoos+1B0tSuIwxlUvtgtyCf5MdAlFa2BLX96+3s174ajvpPTWszvjjpK7WM3bMFzaW2XBcaneD6Y8vToL2x4OrbBYC9Ma2F14jB4rBj0CTxwzt+OPmu1cz34Xvc8uTiMLrTGoH+r0f1btpcID+zwXfJbUQ5O49SbqpANvxR7st5O8Fcbflq+frgwUq3n3ufVK+FzroGxTmVs9e+jzVYsroJy7K6LkV+4UO1/s1VC4vlrLcNX3utxQvlNBfMLwB422IstpeHuBz+KMz9e8m9qJr0ntCTS+GK5c/5cNBjMjD60wbLrXLQ90QKcuLDV/3camy5NW/mV7X16GD2wZ97vmO/ZwTeyvmF7XpVkrbH594vcrGlLiilH7uo5IiJx769l6yUL0u90GMutp2rWxn+AYFX09ju7BlvsDPyD0OJeHgTHOY02OLg34+3QWqUbT1XuhqLPPp6kcvZengC+z8DG78J2O03vRxIcFNHA8c+NTmi91z06++9lVSy/KyS25L6bgDLGjb5yhk1eealX4b3Lb1uffBmxlsSe0hxNXQhHb7FA41+z0u80PYOz2Y6ZIntlKq+ly84PxvEGCrCrH7159IdWkXcpw9hTv07+gCXN2WUUpvb0i0q8u2Umpzn3sfBHhI6J38+adFcsjHUzg2QisvLze3JfPTlbM3bV1dHhUCfIPSyvlrQa+ewkmyT18ffW91H5U8P2nLMEYdCPDnOjrT++RQtTcc8PhhSPbpS44NwosV5lFFficWbYe+m8rHfVTmyZ7c2/F8PX1LWfYQ3tHFfSul0oMXlAm1FPSVoUI7ve0jUxc9SoyPp2+1YIWyeSwsSmg7GBH4bqrOY/nQ2VO4WswSUb2zuLa+4x+l6mYVLFiNjVUPbEu2YHc3C1p3uu9a0q+Ujl/cXjz/KTcleYrvb/KO5SLWdZCF3vQYZKdP4UgvlJuI+QF1+vSt3hCIvncirFehr99t5Ou2SPMUJkdKoQpKhcqOyZHBth0mrCbFfhvp5m2RHlasO66GOzIpC0pAtfrscHDD9bZd2ySzD1wF2a5YOw6ys4P0F1mTl8m5VJAj1U2ROJhQS3KDHDeD7GTrSQp3F8olQCvlbDGu6n2hlmQnsaobI0vlYsg+D3VVLQvCYSugxX8IasEo5SiyC4YXyvmhSTlpBZ6ufljGynN9CPAIlJ7KCZwSJJO7ZL0JCPAoMN7nHv6mTiQe4KmCnFBPKBWi+at57DuaTC2OtsQBPIFHYPY+v6Z0RHCzxRTC6wgCDMGVmcb1OI4gwBCc0BmewI4gwACMIcAQnkYJ7QoCDA3AFbGuIMAAjCHAAIwhwACMIcAAjCHAAIwhwKE8KLHyCs4hwKFcYO8T3EOAARhDgAEYQ4ABGEOAARhDgAEYQ4ABGEOAYSyCRE4QDQQYgDEEGIAxBBiAMQQYgDEEuEXwkrb0IMAAjCHAAIwhwACMIcAjwVleiBMCPAIdxQvBAP4OAQZgDAEGYAwBBmAMAQZgDAEGYAwBBmAMAQZgDAEOpJQiJwDHEGAAxhBgGI/GWGlMog5wJrOCIC4y+5ogGngCAzCGAAMwhgADMIYAAzCGAAMwhgADMIYAAzCGALfJgzKOIQypMAziCALcJhdxTFEJwjCIKwgwAGNxB1hfoNQCuEfUAVaUvZ5b+bTVWX6PIFcy/B3gM/GX0EJ1H2cPT56unK1R201FsggF0eDSA+dCiP251Y9v8YY9gL9wW8TKVabemiDvI8gAfFeh10yQT2x/TAAtxnkbqWP7Y1tW39UfF71HBQEkLIV94Ko//mb1/AhlNbRNMoMcmvQi+mNomxQnsWx/fDS3cr5B4JwgnRNEI9VRypyE3rH9MQEkLPVZ6JwiIUjkBOAYDjPAWDSJgiAaCDCMR5X/JYgGAgzjEbIgiAYCDGORUrwhiAYCDGPpX/5RO8BaYyvKFQQYRmZW0o/7vSd9qkvEszvAHQIMIxNa/UQ15T+cfUfgTK0AS61fCI1thTYwT9+ieDX7kmoqlcqp5WwlI4V6QQ7UCrD9QN+9mp6XQm8iyGkTpVgiB4SSi9RS9kfQPvTeHU4vFQdfHZMDTkro4mB2Vyj7AevaJVakOq0+ICFo29nRzEz8h9qnb365tkX5aMFFFXOTsx7YfsCnh7NrspTztkSgtHSqk07ML9grs0nuhdZ7pwczXXKg+hHU1KoeWBD1TCYWTg++6hY9UX8B8Bbni1g2yLZESLI/5n7BnpZjBtiE93DW2amuUpaL1BJXfe7Su8OZZz4vlvC2Cj3sj23pQLaESEc7Ltgz6xouw1v9X5JowxVIffu3c9nn3sf7NpItHWwJkWB/nOQFe9VCi3lynJp1DXLo6eqH5eT3f83DSpbT867/dvcJsg/8WX+c3mp1Qhfs6b1qocXDk0PS1DolqiqXzXfbV597n6CDHFV/bLed0uuPv3jBXsyun7qmZPbxBbR/E3vlESVm+HeryuWGLlBsZBLL9sdC/blw1R+nhNsFe9X2hvkCzvvs1xLsfYd97nyIPvc+jY1SFr0n/av+eD61/pjJBXsvh9sb5NHcysettHpfvRe6z73PFDXsqvRYy1c/9LSe2tEiqZMqtj9enFs537OxjoHt14Qot0M8Oezcs1LUpQRUfzepNoufZ6M6TikoMnnVL8mtxILshBTSbE08OqYJ5cu6E2qRxVYeSqoj7k9f2+eaH7wXTZfKd4nuNNKgP056LLMx4cKrO6Use8zD+9f4Y6ThtaI8Tnhz2wlB5kdn5/tmMe9b4uvloM8Nvy00rsZ74Ptc98crZ8coq+Nnn7w6+/Sa65ZRyPUBV6Lrge8z9/z3rlDZj20Nct0e2Cfb89qymemTty+13nR9UigEVjdy2JIG/XF8THgX7YIVw/D2h+OPHMNrsXoC32R/8XWmTLnWnuNpsT2Bbcms5Cezz6vZvYeqKpdL8YL7K2jZ3ok1OLY4s4BrfZrxdPXjspLnJ9zCKzT92vT4o0tsn8C32f6YtEz6uFoMT2BbLutMbzFcqLLjj9uxTFC5ksytlKmOZX5GXzR2G4gtl+dWznfsq1v5hTeu8UeXknkC32RH+HQpXye4Wl1orbd/C7jgMuhz/1gnUZpSWbC6TiiVPvc+SQZ4KOGxzEJTufnb4eMeeXS1urzPbaIq9vFHl5IOsFXN5E5driXaH9sTRduunzCDFX69z7PPVXu+T1jFJPkAD1VBzsqu+Vf+kVKjZVcq+qlukDlvCw363JnoRx9da02Ah/LVD8sJHlu0avXH+er5uiLVZdnnMht/dKl1AR5KuT+W5YNnRe/hSOdWbZ9bynKX2xRV1eeS3iwOZ7yuA8SutQG2ki6rv9Afc+9z5eXsbtvK5X/S6gAPDYJ8afYI5feUGtMfn756dH33GOdtIfK0aMcZAnxD0ttOpj+2/yAE7aDPTQcC/A/afmwxImyP+YWCAN8h8f44duhzR4QAf0Ebjy02qQ3jjy4hwCPCbZl+2WN+QqoN9LnjQYDH1IZji4ElecwvFAR4AuiPXWnn+KNLCHANCR9b9Ap9rjsIsAPoj0fTpmN+oSDAjlxNc20QyWTfg1sDtoU8QYAdQ398G/pcnxBgT9peVmP8MQwE2LP8+dmGVnK9LUHGMb+wEOAAWlJWo89tAAIcEOMzuPcyX6KeKOUmtoXCQ4AbkEp/jD63eQhwg67GMu22E7eD9Rh/jAQC3DB2/bF9mx/63GggwJGo+mOpj2ItqzH+GCcEODKx9ccYf4wbAhyhfPl9R01NbTR8bBF9LgMIcMSa648x/sgFAsxA/vz3Ra2yfd9lddXnSrVZ/Dw70qXw0DwEmBFf/TH6XL4QYGYcH1vE+CNzCDBTDvrjl7Kc3kRweUOAmRu3rMb4Y1oQ4ER86dhi1edqtY23HKQFAU7IHWU1+tyEIcAJGh5bNPu5fRzzS9v/AWiP/NYPzz1QAAAAAElFTkSuQmCC"})));var ml="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzMgMzMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxwYXRoIGQ9Im0xNS41IDEgMTMuNDIzIDcuNzV2MTUuNUwxNS41IDMyIDIuMDc3IDI0LjI1VjguNzVMMTUuNSAxWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGZpbGw9InVybCgjYSkiIGQ9Ik0wIDBoMzN2MzNIMHoiLz48ZGVmcz48cGF0dGVybiBpZD0iYSIgcGF0dGVybkNvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjx1c2UgeGxpbms6aHJlZj0iI2IiIHRyYW5zZm9ybT0ic2NhbGUoLjAwNDE3KSIvPjwvcGF0dGVybj48aW1hZ2UgaWQ9ImIiIHdpZHRoPSIyNDAiIGhlaWdodD0iMjQwIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVBBQUFBRHdDQVlBQUFBK1ZlbVNBQUFBQ1hCSVdYTUFBQ0U0QUFBaE9BRkZsakZnQUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFCTEhTVVJCVkhnQjdkMWZWaHczRmdid0t4WDJqSUU0N1FXWUZDdElXTUhBQ29MQmVRNWVBYkFDbWhVQUs4QjVEdGlkRmNBT2NGYmdNbG1BZXh5TWs0R1NScXFtQ1NZQmQzZEpLbDNWOTN2S09mUG5uTkQ5ZGQwclhha0VRWEx5NVUrTE90TmJtblFoUzdsZDlCNFZCRWtTQk1uSWwzVkh5VTliSlBUR1ovK0JsdDBQNm8rOWZ1OUpueUFwQ0hBaTVsWnNjRXNUWE5HNTQ3OVNhSzIzZjNzMSs1SWdHUWd3YzdaY1ZsTHRtMDh5SC9GL1lzdnFKWlRWYVVDQW1UTEJ6VTJmdTIvNjNFV2F6RXYweC93aHdNd00rdHcvMWttb0x0WFhOLzN4N3VtclI5c0VMQ0hBak9TcjUrdUtiSER2N0hNbmhmNllLUVNZZ1J2YlFvdmtrU0RSRTZYWVJGbk5Cd0ljTVFkOTdxVFFIek9CQUVmb3J6NzMzbTBoMzFCV000QUFSK2JweXRtYUVMVFRZSEJ2S3pTVm03OGRQdTRSUkFjQmprU29QcmNHbE5VUlFvQWJWcFhMMmNkZDgxSDhTQnhvMlpXS2ZrS1E0NEFBTnlTU1BuZFM2SThqZ1FBM1lJTHh4MWdWc256d3JPZzlmRVBRQ0FRNG9QeUhzKyswa2pzUjk3bVRRbi9jRUFRNGdEdVArYVhHOU1jWXl3d0xBZmJNNC9oanJOQWZCNFFBZTVKUW56dXBONmFzZm9heTJpOEUyTEVHeHg5amhmN1lJd1RZRWNmSC9GSlRtUDc0SmZwajl4QmdCMXJZNTA0Sy9iRmpDSEFORE1ZZm80UmppKzRnd0JNWTlMbks3T2ZTTWtFZDZJOXJRb0RId0h6OE1WWW9xMnRBZ0VkVUhmTWpzZFhpYlNIZmNHeHhBZ2p3RjZEUERRNWw5UmdRNER1d08rYVhHcnhOWWlRSThDM29jNk9DL3ZnTEVPQWJNUDRZTGJ4TjRnNElNQ1Y5ekM4MTZJOXZhWFdBVzNQTUx6VTR0bml0dFFIRytDTjc2SStwaFFHMmZXNHB5MTBoeExjRUtXajFzY1hXQkJqSC9KTFh5djQ0K1FCalc2aFZDdEppNy9UVjlDNjFSTklCUnAvYldxM3BqNU1NTU1ZZjRVcnlaWFZTQWJaOXJzcktMc1lmNFROYTdFb2w5bElNY2hJQlJwOExJMGl5ckdZZjRLZXJINWVGcGgyTVA4S0k3RmptQy9NMFBxWUVzQTB3K2x5b0tZbittRjJBTWY0SVRqRS90c2dxd0hNck5yam9jOEU1dHYweGl3RGptQjhFd3U3WVl0UUJ4dmdqTklSTmZ4eGxnTkhuUWdUNnBqL2VqZjNZWW5RQlRtVDhzVzkrZkxhbCtRZXQ1TG9XT2lmZ0t1citPSm9BcDNQTVQrL0pjcVpiOUVTMXFvbnBzRFFJRXNlaUZDOWlLNnNiRDNBcWZXNzFBVXUxV2Z3OCsrYWYvdlBxMzFQcUl6eU4yWXVxUDI0c3dLbU1QNXJnRmtLVUw0cURyNDVIK2UvbksyZHJtdVFXZ3N4YU5NY1dHd2x3OVpZRFFUdjgrMXkxSnk5bmQ0Zmw4cWhRVmllajhmNDRhSUJUR1g4MGY3U2VLR1h0dCt0ZHZTVHR0U2I2am9DenhzcnFJQUZPNVlsVDlibWkzQjYxWEI0Vnl1cEVOSEJzMFd1QUV6cm1WMjBMblI3TWV1dDVxaCs1cWNzMXMvZTRSY0JaMExMYVc0QVRPdVpueXFQcHpYSDczRWtOcXBWTDgwTWh2eWZnckpEbGcyZEY3K0ViOHNoNWdCTTk1aGU4eDBGWm5ReXYzeDFuQVc3QitHTWpvM1Z6ejMvdm9xeE9nS2UzU1RnSmNNdU8rUVhmT3NDMlV6S2NmM2RxQmJqbHgveUN2eEVBWlhVeW5CMWJyQlhndWRXUG1pQjRmM3hWVnErYmY4VEZCbndWcDRjejgxU1RKS2hyVFdYcXFHb2pBams5K0twcmZqUVdUR1AxRTBHckljQnU1Q1JVMTFRa2IrMllLQVZnbi9pbmg3TnJVdWhOZ3RaQ2dOM0toUkQ3MzZ5ZXY3WUxUeFJBY1RDN2E1N0c4MEtMZ3FCMUVHQVB6Qjc0c2ltcjM1b244bjZJSU51bnNWQmlDU0Z1SHdUWXI2disrTno3M2poQzNFNUpCdGdzclhzZFh4dVQ2WS8xVG9qK0dDSCtuRDE4SXFsOGx2SmlYMUlCdG9mcnBWQkw3dzVuRm14ZkdOa0hWL1hIdnN2cUtzU1pNbDlhWW5sUnVRdlY5MERyRis4T3A1ZUt3OGU5YXJFdjBYV0NWQUpzRDlkdmkvTFJ3dkNvMy9VcXJma2dJL3ZnMXFyKzJPTzJrNzNXeDZ4T1IzMmJvaWQvZlE5dVRUdlo3OE83VjlQekVYNGZha2xoa0dPa1FZcEloeCs4VG5QWjFYQzdvRVl0TU02bGM1RWMzWFF5eU1FMndKTWNybzkwcHJpUVVqKzc2eks4T3ZMbDl4MlZQWHhMQ1U5c0NVMi9DcWsySnJsa29lSHZRMnNEWFB0d2ZmNzg5MFd0c3YySVpvcjdKc1JMUGtJOHQySXFENUhrYVNabmx5dzBOR1Bld2dDYi9tYVNTK1R1a2o4LzI0am80blZ2SWY1bTVmeHRXZ2NnUHI5NzJ4WGJaZ21WL1Jqb2I5V2VXZWhxTzhDc0l0b1pZSmNmbXAxaXN0c3VrYXhXZDVRU1Iva1BaODR2dUJPazlpZ0IxOStEdzlrTkh6ZWsyTzlYUk4rSGtVVDlCQjczenVVNklycDR2ZmhRL20vQjVmdHF1ZmZDSWI4SFE0UCtXSjJRdjc5WitrOWdyYWxIbDFNRkJSRFJOa1ArZGZhdjErUlFZWDhNRk10aGhyOXRENFp3ZGM3OWlCajg0TVZkUWd1OVlVY1JRNTN3c2V6K1lkTmxsTDFQelBYNHBjeDBqM2l4bHdrNmI1dnVZNE5ydHQ2TzdIZU95eVVWbkJheDdDMEdkcC92bUFKcCtPTDF2aW1sNTEyVzB1YnplaytSUDFWODNiMTluNGJ1YzJ2ZGdmNjhPaGdRNklTUFZaWFZkaXl6bWJLNjgxait5KzMyajZKZktGNzk2L0hIUU9HMXdiVVRjU3I3K0piclpZd2NSeW12UnhFN1puR0dBcmd1cTAwL1JpR1pMNVhMSHlzcGRFeUhQSWFxUHRlV3kwWEFpd0p0VzZiaytZbTlpSUh6Wll4OFo2SE5ILzV4OXZBazZBMFlnNnRzNW0yWlI0R282clpQUjJSY0FiN2FGbHBvb3MrMUIwdFN1SXd4bFV2dGd0eUNmNU1kQWxGYTJCTFg5NiszczE3NGFqdnBQVFdzenZqanBLN1dNM2JNRnphVzJYQmNhbmVENlk4dlRvTDJ4NE9yYkJZQzlNYTJGMTRqQjRyQmowQ1R4d3p0K09QbXUxY3ozNFh2Yzh1VGlNTHJUR29IK3IwZjFidHBjSUQrendYZkpiVVE1TzQ5U2JxcEFOdnhSN3N0NU84RmNiZmxxK2ZyZ3dVcTNuM3VmVksrRnpyb0d4VG1WczllK2p6Vllzcm9KeTdLNkxrVis0VU8xL3MxVkM0dmxyTGNOWDN1dHhRdmxOQmZNTHdCNDIySXN0cGVIdUJ6K0tNejllOG05cUpyMG50Q1RTK0dLNWMvNWNOQmpNakQ2MHdiTHJYTFE5MFFLY3VMRFYvM2NhbXk1TlcvbVY3WDE2R0Qyd1o5N3ZtTy9ad1RleXZtRjdYcFZrcmJINTk0dmNyR2xMaWlsSDd1bzVJaUp4NzY5bDZ5VUwwdTkwR011dHAycld4bitBWUZYMDlqdTdCbHZzRFB5RDBPSmVIZ1RIT1kwMk9MZzM0KzNRV3FVYlQxWHVocUxQUHA2a2N2WmVuZ0MrejhERzc4SjJPMDN2UnhJY0ZOSEE4YytOVG1pOTF6MDYrKzlsVlN5L0t5UzI1TDZiZ0RMR2piNXloazFlZWFsWDRiM0xiMXVmZkJteGxzU2UwaHhOWFFoSGI3RkE0MSt6MHU4MFBZT3oyWTZaSW50bEtxK2x5ODRQeHZFR0NyQ3JINzE1OUlkV2tYY3B3OWhUdjA3K2dDWE4yV1VVcHZiMGkwcTh1MlVtcHpuM3NmQkhoSTZKMzgrYWRGY3NqSFV6ZzJRaXN2THplM0pmUFRsYk0zYlYxZEhoVUNmSVBTeXZsclFhK2V3a215VDE4ZmZXOTFINVU4UDJuTE1FWWRDUERuT2pyVCsrUlF0VGNjOFBoaFNQYnBTNDROd29zVjVsRkZmaWNXYlllK204ckhmVlRteVo3YzIvRjhQWDFMV2ZZUTN0SEZmU3VsMG9NWGxBbTFGUFNWb1VJN3ZlMGpVeGM5U295UHAyKzFZSVd5ZVN3c1NtZzdHQkg0YnFyT1kvblEyVk80V3N3U1ViMnp1TGErNHgrbDZtWVZMRmlOalZVUGJFdTJZSGMzQzFwM3V1OWEwcStVamwvY1hqei9LVGNsZVlydmIvS081U0xXZFpDRjN2UVlaS2RQNFVndmxKdUkrUUYxK3ZTdDNoQ0l2bmNpckZlaHI5OXQ1T3UyU1BNVUprZEtvUXBLaGNxT3laSEJ0aDBtckNiRmZodnA1bTJSSGxhc082NkdPeklwQzBwQXRmcnNjSEREOWJaZDJ5U3pEMXdGMmE1WU93NnlzNFAwRjFtVGw4bTVWSkFqMVUyUk9KaFFTM0tESERlRDdHVHJTUXAzRjhvbFFDdmxiREd1Nm4yaGxtUW5zYW9iSTB2bFlzZytEM1ZWTFF2Q1lTdWd4WDhJYXNFbzVTaXlDNFlYeXZtaFNUbHBCWjZ1ZmxqR3luTjlDUEFJbEo3S0Nad1NKSk83WkwwSkNQQW9NTjduSHY2bVRpUWU0S21DbkZCUEtCV2krYXQ1N0R1YVRDMk90c1FCUElGSFlQWSt2NlowUkhDenhSVEM2d2dDRE1HVm1jYjFPSTRnd0JDYzBCbWV3STRnd0FDTUljQVFua1lKN1FvQ0RBM0FGYkd1SU1BQWpDSEFBSXdod0FDTUljQUFqQ0hBQUl3aHdLRThLTEh5Q3M0aHdLRmNZTzhUM0VPQUFSaERnQUVZUTRBQkdFT0FBUmhEZ0FFWVE0QUJHRU9BWVN5Q1JFNFFEUVFZZ0RFRUdJQXhCQmlBTVFRWWdERUV1RVh3a3JiMElNQUFqQ0hBQUl3aHdBQ01JY0Fqd1ZsZWlCTUNQQUlkeFF2QkFQNE9BUVpnREFFR1lBd0JCbUFNQVFaZ0RBRUdZQXdCQm1BTUFRWmdEQUVPcEpRaUp3REhFR0FBeGhCZ0dJL0dXR2xNb2c1d0pyT0NJQzR5KzVvZ0duZ0NBekNHQUFNd2hnQURNSVlBQXpDR0FBTXdoZ0FETUlZQUF6Q0dBTGZKZ3pLT0lReXBNQXppQ0FMY0poZHhURkVKd2pDSUt3Z3dBR054QjFoZm9OUUN1RWZVQVZhVXZaNWIrYlRWV1g2UElGY3kvQjNnTS9HWDBFSjFIMmNQVDU2dW5LMVIyMDFGc2dnRjBlRFNBK2RDaVAyNTFZOXY4WVk5Z0w5d1c4VEtWYWJlbWlEdkk4Z0FmRmVoMTB5UVQyeC9UQUF0eG5rYnFXUDdZMXRXMzlVZkY3MUhCUUVrTElWOTRLby8vbWIxL0FobE5iUk5Nb01jbXZRaSttTm9teFFuc1d4L2ZEUzNjcjVCNEp3Z25STkVJOVZSeXB5RTNySDlNUUVrTFBWWjZKd2lJVWprQk9BWURqUEFXRFNKZ2lBYUNEQ01SNVgvSllnR0FnempFYklnaUFZQ0RHT1JVcndoaUFZQ0RHUHBYLzVSTzhCYVl5dktGUVFZUm1aVzBvLzd2U2Q5cWt2RXN6dkFIUUlNSXhOYS9VUTE1VCtjZlVmZ1RLMEFTNjFmQ0kxdGhUWXdUOStpZURYN2ttb3FsY3FwNVd3bEk0VjZRUTdVQ3JEOVFOKzltcDZYUW04aXlHa1RwVmdpQjRTU2k5UlM5a2ZRUHZUZUhVNHZGUWRmSFpNRFRrcm80bUIyVnlqN0FldmFKVmFrT3EwK0lDRm8yOW5SekV6OGg5cW5iMzY1dGtYNWFNRkZGWE9Uc3g3WWZzQ25oN05yc3BUenRrU2d0SFNxazA3TUw5Z3JzMG51aGRaN3B3Y3pYWEtnK2hIVTFLb2VXQkQxVENZV1RnKys2aFk5VVg4QjhCYm5pMWcyeUxaRVNMSS81bjdCbnBaakJ0aUU5M0RXMmFtdVVwYUwxQkpYZmU3U3U4T1paejR2bHZDMkNqM3NqMjNwUUxhRVNFYzdMdGd6NnhvdXcxdjlYNUpvd3hWSWZmdTNjOW5uM3NmN05wSXRIV3dKa1dCL25PUUZlOVZDaTNseW5KcDFEWExvNmVxSDVlVDNmODNEU3BiVDg2Ny9kdmNKc2cvOFdYK2MzbXAxUWhmczZiMXFvY1hEazBQUzFEb2xxaXFYelhmYlY1OTduNkNESEZWL2JMZWQwdXVQdjNqQlhzeXVuN3FtWlBieEJiUi9FM3ZsRVNWbStIZXJ5dVdHTGxCc1pCTEw5c2RDL2JsdzFSK25oTnNGZTlYMmh2a0N6dnZzMXhMc2ZZZDk3bnlJUHZjK2pZMVNGcjBuL2F2K2VENjEvcGpKQlhzdmg5c2I1TkhjeXNldHRIcGZ2UmU2ejczUEZEWHNxdlJZeTFjLzlMU2UydEVpcVpNcXRqOWVuRnM1MzdPeGpvSHQxNFFvdDBNOE9lemNzMUxVcFFSVWZ6ZXBOb3VmWjZNNlRpa29Nbm5WTDhtdHhJTHNoQlRTYkUwOE9xWUo1Y3U2RTJxUnhWWWVTcW9qN2s5ZjIrZWFIN3dYVFpmS2Q0bnVOTktnUDA1NkxMTXg0Y0tyTzZVc2U4ekQrOWY0WTZUaHRhSThUbmh6MndsQjVrZG41L3RtTWU5YjR1dmxvTThOdnkwMHJzWjc0UHRjOThjclo4Y29xK05ubjd3NisvU2E2NVpSeVBVQlY2THJnZTh6OS96M3JsRFpqMjBOY3QwZTJDZmI4OXF5bWVtVHR5KzEzblI5VWlnRVZqZHkySklHL1hGOFRIZ1g3WUlWdy9EMmgrT1BITU5yc1hvQzMyUi84WFdtVExuV251TnBzVDJCYmNtczVDZXp6NnZadlllcUtwZEw4WUw3SzJqWjNvazFPTFk0czRCcmZacnhkUFhqc3BMbko5ekNLelQ5MnZUNG8wdHNuOEMzMmY2WXRFejZ1Rm9NVDJCYkx1dE1iekZjcUxMamo5dXhURkM1a3N5dGxLbU9aWDVHWHpSMkc0Z3RsK2RXem5mc3ExdjVoVGV1OFVlWGtua0MzMlJIK0hRcFh5ZTRXbDFvcmJkL0M3amdNdWh6LzFnblVacFNXYkM2VGlpVlB2YytTUVo0S09HeHpFSlR1Zm5iNGVNZWVYUzF1cnpQYmFJcTl2RkhsNUlPc0ZYTjVFNWRyaVhhSDlzVFJkdXVuekNERlg2OXo3UFBWWHUrVDFqRkpQa0FEMVZCenNxdStWZitrVktqWlZjcStxbHVrRGx2Q3czNjNKbm9SeDlkYTAyQWgvTFZEOHNKSGx1MGF2WEgrZXI1dWlMVlpkbm5NaHQvZEtsMUFSNUt1VCtXNVlOblJlL2hTT2RXYlo5YnluS1gyeFJWMWVlUzNpd09aN3l1QThTdXRRRzJraTZydjlBZmMrOXo1ZVhzYnR2SzVYL1M2Z0FQRFlKOGFmWUk1ZmVVR3RNZm43NTZkSDMzR09kdElmSzBhTWNaQW54RDB0dE9waisyL3lBRTdhRFBUUWNDL0EvYWZtd3hJbXlQK1lXQ0FOOGg4ZjQ0ZHVoelI0UUFmMEViankwMnFRM2pqeTRod0NQQ2JabCsyV04rUXFvTjlMbmpRWURIMUlaamk0RWxlY3d2RkFSNEF1aVBYV25uK0tOTENIQU5DUjliOUFwOXJqc0lzQVBvajBmVHBtTitvU0RBamx4TmMyMFF5V1RmZzFzRHRvVThRWUFkUTM5OEcvcGNueEJnVDlwZVZtUDhNUXdFMkxQOCtkbUdWbks5TFVIR01iK3dFT0FBV2xKV284OXRBQUljRU9NenVQY3lYNktlS09VbXRvWENRNEFia0VwL2pENjNlUWh3ZzY3R011MjJFN2VEOVJoL2pBUUMzREIyL2JGOW14LzYzR2dnd0pHbyttT3BqMkl0cXpIK0dDY0VPREt4OWNjWWY0d2JBaHloZlBsOVIwMU5iVFI4YkJGOUxnTUljTVNhNjQ4eC9zZ0ZBc3hBL3Z6M1JhMnlmZDlsZGRYblNyVlovRHc3MHFYdzBEd0VtQkZmL1RINlhMNFFZR1ljSDF2RStDTnpDREJURHZyamw3S2Mza1J3ZVVPQW1SdTNyTWI0WTFvUTRFUjg2ZGhpMWVkcXRZMjNIS1FGQVU3SUhXVTErdHlFSWNBSkdoNWJOUHU1ZlJ6elM5di9BV2lQL05ZUHp6MVFBQUFBQUVsRlRrU3VRbUNDIi8+PC9kZWZzPjwvc3ZnPg==",Ol=Object.defineProperty,Rl=Object.getOwnPropertySymbols,Wu=Object.prototype.hasOwnProperty,Ac=Object.prototype.propertyIsEnumerable,mu=(Ue,he,Pe)=>he in Ue?Ol(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,pu=(Ue,he)=>{for(var Pe in he||(he={}))Wu.call(he,Pe)&&mu(Ue,Pe,he[Pe]);if(Rl)for(var Pe of Rl(he))Ac.call(he,Pe)&&mu(Ue,Pe,he[Pe]);return Ue};const hu=Ue=>g.createElement("svg",pu({className:"displayReset_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},Ue),g.createElement("path",{d:"m193.07 70.353 5.423.931a34.91 34.91 0 0 1 28.37 40.425l-.024.07-12.87 72.541A448.698 448.698 0 0 1 507.857 75.38c246.831 0 447.023 197.912 447.023 442.182S754.688 959.744 507.857 959.744c-160.186 0-305.687-84.084-385.466-218.159a37.795 37.795 0 0 1 13.359-51.921 38.167 38.167 0 0 1 52.154 13.289c66.21 111.243 186.903 180.992 319.953 180.992 204.87 0 370.851-164.096 370.851-366.383S712.728 151.18 507.858 151.18c-107.288 0-206.802 45.265-276.318 121.995H373.04a34.91 34.91 0 0 1 0 69.818H163.584c-2.607 0-5.19-.279-7.657-.837a34.63 34.63 0 0 1-5.26-.512l-5.422-.931a34.91 34.91 0 0 1-28.346-40.495l35.77-201.588a34.91 34.91 0 0 1 40.402-28.277z",fill:"#fff"}));var os="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0ibTE5My4wNyA3MC4zNTMgNS40MjMuOTMxYTM0LjkxIDM0LjkxIDAgMCAxIDI4LjM3IDQwLjQyNWwtLjAyNC4wNy0xMi44NyA3Mi41NDFBNDQ4LjY5OCA0NDguNjk4IDAgMCAxIDUwNy44NTcgNzUuMzhjMjQ2LjgzMSAwIDQ0Ny4wMjMgMTk3LjkxMiA0NDcuMDIzIDQ0Mi4xODJTNzU0LjY4OCA5NTkuNzQ0IDUwNy44NTcgOTU5Ljc0NGMtMTYwLjE4NiAwLTMwNS42ODctODQuMDg0LTM4NS40NjYtMjE4LjE1OWEzNy43OTUgMzcuNzk1IDAgMCAxIDEzLjM1OS01MS45MjEgMzguMTY3IDM4LjE2NyAwIDAgMSA1Mi4xNTQgMTMuMjg5YzY2LjIxIDExMS4yNDMgMTg2LjkwMyAxODAuOTkyIDMxOS45NTMgMTgwLjk5MiAyMDQuODcgMCAzNzAuODUxLTE2NC4wOTYgMzcwLjg1MS0zNjYuMzgzUzcxMi43MjggMTUxLjE4IDUwNy44NTggMTUxLjE4Yy0xMDcuMjg4IDAtMjA2LjgwMiA0NS4yNjUtMjc2LjMxOCAxMjEuOTk1SDM3My4wNGEzNC45MSAzNC45MSAwIDAgMSAwIDY5LjgxOEgxNjMuNTg0Yy0yLjYwNyAwLTUuMTktLjI3OS03LjY1Ny0uODM3YTM0LjYzIDM0LjYzIDAgMCAxLTUuMjYtLjUxMmwtNS40MjItLjkzMWEzNC45MSAzNC45MSAwIDAgMS0yOC4zNDYtNDAuNDk1bDM1Ljc3LTIwMS41ODhhMzQuOTEgMzQuOTEgMCAwIDEgNDAuNDAyLTI4LjI3N3oiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",Pu=Object.defineProperty,bs=Object.getOwnPropertySymbols,Xi=Object.prototype.hasOwnProperty,Ns=Object.prototype.propertyIsEnumerable,tl=(Ue,he,Pe)=>he in Ue?Pu(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,Vo=(Ue,he)=>{for(var Pe in he||(he={}))Xi.call(he,Pe)&&tl(Ue,Pe,he[Pe]);if(bs)for(var Pe of bs(he))Ns.call(he,Pe)&&tl(Ue,Pe,he[Pe]);return Ue};const su=Ue=>g.createElement("svg",Vo({viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("g",{clipPath:"url(#settings-sliders_svg__a)"},g.createElement("path",{d:"M.833 3.958h2.28a3.107 3.107 0 0 0 5.996 0h10.058a.833.833 0 0 0 0-1.667H9.109a3.107 3.107 0 0 0-5.996 0H.833a.833.833 0 0 0 0 1.667Zm5.278-2.292a1.458 1.458 0 1 1 0 2.917 1.458 1.458 0 0 1 0-2.917ZM19.167 9.167h-2.28a3.106 3.106 0 0 0-5.995 0H.833a.833.833 0 0 0 0 1.666h10.059a3.105 3.105 0 0 0 5.995 0h2.28a.833.833 0 0 0 0-1.666Zm-5.278 2.291a1.458 1.458 0 1 1 0-2.915 1.458 1.458 0 0 1 0 2.915ZM19.167 16.042H9.109a3.107 3.107 0 0 0-5.996 0H.833a.833.833 0 1 0 0 1.666h2.28a3.107 3.107 0 0 0 5.996 0h10.058a.833.833 0 0 0 0-1.666ZM6.11 18.333a1.458 1.458 0 1 1 0-2.915 1.458 1.458 0 0 1 0 2.915Z"})),g.createElement("defs",null,g.createElement("clipPath",{id:"settings-sliders_svg__a"},g.createElement("path",{d:"M0 0h20v20H0z"}))));var fs="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNLjgzMyAzLjk1OGgyLjI4YTMuMTA3IDMuMTA3IDAgMCAwIDUuOTk2IDBoMTAuMDU4YS44MzMuODMzIDAgMCAwIDAtMS42NjdIOS4xMDlhMy4xMDcgMy4xMDcgMCAwIDAtNS45OTYgMEguODMzYS44MzMuODMzIDAgMCAwIDAgMS42NjdabTUuMjc4LTIuMjkyYTEuNDU4IDEuNDU4IDAgMSAxIDAgMi45MTcgMS40NTggMS40NTggMCAwIDEgMC0yLjkxN1pNMTkuMTY3IDkuMTY3aC0yLjI4YTMuMTA2IDMuMTA2IDAgMCAwLTUuOTk1IDBILjgzM2EuODMzLjgzMyAwIDAgMCAwIDEuNjY2aDEwLjA1OWEzLjEwNSAzLjEwNSAwIDAgMCA1Ljk5NSAwaDIuMjhhLjgzMy44MzMgMCAwIDAgMC0xLjY2NlptLTUuMjc4IDIuMjkxYTEuNDU4IDEuNDU4IDAgMSAxIDAtMi45MTUgMS40NTggMS40NTggMCAwIDEgMCAyLjkxNVpNMTkuMTY3IDE2LjA0Mkg5LjEwOWEzLjEwNyAzLjEwNyAwIDAgMC01Ljk5NiAwSC44MzNhLjgzMy44MzMgMCAxIDAgMCAxLjY2NmgyLjI4YTMuMTA3IDMuMTA3IDAgMCAwIDUuOTk2IDBoMTAuMDU4YS44MzMuODMzIDAgMCAwIDAtMS42NjZaTTYuMTEgMTguMzMzYTEuNDU4IDEuNDU4IDAgMSAxIDAtMi45MTUgMS40NTggMS40NTggMCAwIDEgMCAyLjkxNVoiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBkPSJNMCAwaDIwdjIwSDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+",rc=(0,g.memo)(function(Ue){var he=Ue.displayOption,Pe=Ue.onChangeImageDisplayOpts,Bn=Ue.onChangeAnnotsDisplayOpts,vt=(0,z.bU)(),Tn=vt.localeText,bn=(0,g.useMemo)(function(){return(0,x.jsxs)("div",{className:"dds-annotator-display-pop-container",children:[(0,x.jsxs)("div",{className:"dds-annotator-display-pop-container-header",children:[(0,x.jsx)("div",{children:Tn("DDSAnnotator.imgDisplayTool.title")}),(0,x.jsx)(C.ZP,{type:"primary",className:"dds-annotator-display-pop-container-btn",icon:(0,x.jsx)(H.Z,{component:hu}),onClick:function(){return Pe(W.O4)}})]}),(0,x.jsxs)("div",{className:"dds-annotator-display-pop-container-option",children:[(0,x.jsx)("label",{children:Tn("DDSAnnotator.imgDisplayTool.brightness")}),(0,x.jsx)(Wn.Z,{value:he.brightness,onChange:function(Nn){return Pe(t()(t()({},he),{},{brightness:Nn}))},min:0,max:200})]}),(0,x.jsxs)("div",{className:"dds-annotator-display-pop-container-option",children:[(0,x.jsx)("label",{children:Tn("DDSAnnotator.imgDisplayTool.contrast")}),(0,x.jsx)(Wn.Z,{value:he.contrast,onChange:function(Nn){return Pe(t()(t()({},he),{},{contrast:Nn}))},min:0,max:200})]}),(0,x.jsxs)("div",{className:"dds-annotator-display-pop-container-option",children:[(0,x.jsx)("label",{children:Tn("DDSAnnotator.imgDisplayTool.saturate")}),(0,x.jsx)(Wn.Z,{value:he.saturate,onChange:function(Nn){return Pe(t()(t()({},he),{},{saturate:Nn}))},min:0,max:200})]})]})},[he.brightness,he.contrast,he.saturate,Pe,Bn]);return(0,x.jsx)(fn.Z,{placement:"top",content:bn,trigger:"click",overlayClassName:"dds-annotator-display-popover",color:"#212121",children:(0,x.jsx)(L.Z,{title:Tn("DDSAnnotator.imgDisplayTool.title"),children:(0,x.jsx)(H.Z,{component:su,className:"dds-annotator-display"})})})}),nl=rc,pl=Object.defineProperty,Rs=Object.getOwnPropertySymbols,mi=Object.prototype.hasOwnProperty,As=Object.prototype.propertyIsEnumerable,yu=(Ue,he,Pe)=>he in Ue?pl(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,Tu=(Ue,he)=>{for(var Pe in he||(he={}))mi.call(he,Pe)&&yu(Ue,Pe,he[Pe]);if(Rs)for(var Pe of Rs(he))As.call(he,Pe)&&yu(Ue,Pe,he[Pe]);return Ue};const hl=Ue=>g.createElement("svg",Tu({viewBox:"0 0 27 27",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("g",{clipPath:"url(#label_svg__a)"},g.createElement("path",{d:"M13.5 27C20.956 27 27 20.956 27 13.5S20.956 0 13.5 0 0 6.044 0 13.5 6.044 27 13.5 27Z",fill:"#26A1F4"}),g.createElement("path",{d:"m18.201 12.527-.007-.008-3.721-3.723s-4.535 4.535-6.72 6.765c-.273.278-.479.664-.601 1.037-.359 1.097-.656 2.215-.986 3.322-.088.297-.07.559.162.78.22.211.466.219.751.133 1.055-.316 2.116-.617 3.176-.92a3.243 3.243 0 0 0 1.432-.865c2.082-2.095 6.514-6.521 6.514-6.521ZM20.373 7.9l-1.272-1.272a1.74 1.74 0 0 0-2.46 0l-1.442 1.44 3.733 3.734 1.442-1.442a1.74 1.74 0 0 0 0-2.46Z",fill:"#fff"})),g.createElement("defs",null,g.createElement("clipPath",{id:"label_svg__a"},g.createElement("path",{fill:"#fff",d:"M0 0h27v27H0z"}))));var Hu="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjcgMjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTMuNSAyN0MyMC45NTYgMjcgMjcgMjAuOTU2IDI3IDEzLjVTMjAuOTU2IDAgMTMuNSAwIDAgNi4wNDQgMCAxMy41IDYuMDQ0IDI3IDEzLjUgMjdaIiBmaWxsPSIjMjZBMUY0Ii8+PHBhdGggZD0ibTE4LjIwMSAxMi41MjctLjAwNy0uMDA4LTMuNzIxLTMuNzIzcy00LjUzNSA0LjUzNS02LjcyIDYuNzY1Yy0uMjczLjI3OC0uNDc5LjY2NC0uNjAxIDEuMDM3LS4zNTkgMS4wOTctLjY1NiAyLjIxNS0uOTg2IDMuMzIyLS4wODguMjk3LS4wNy41NTkuMTYyLjc4LjIyLjIxMS40NjYuMjE5Ljc1MS4xMzMgMS4wNTUtLjMxNiAyLjExNi0uNjE3IDMuMTc2LS45MmEzLjI0MyAzLjI0MyAwIDAgMCAxLjQzMi0uODY1YzIuMDgyLTIuMDk1IDYuNTE0LTYuNTIxIDYuNTE0LTYuNTIxWk0yMC4zNzMgNy45bC0xLjI3Mi0xLjI3MmExLjc0IDEuNzQgMCAwIDAtMi40NiAwbC0xLjQ0MiAxLjQ0IDMuNzMzIDMuNzM0IDEuNDQyLTEuNDQyYTEuNzQgMS43NCAwIDAgMCAwLTIuNDZaIiBmaWxsPSIjZmZmIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgyN3YyN0gweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==",Lu=Object.defineProperty,zl=Object.getOwnPropertySymbols,Dl=Object.prototype.hasOwnProperty,Fl=Object.prototype.propertyIsEnumerable,ni=(Ue,he,Pe)=>he in Ue?Lu(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,F=(Ue,he)=>{for(var Pe in he||(he={}))Dl.call(he,Pe)&&ni(Ue,Pe,he[Pe]);if(zl)for(var Pe of zl(he))Fl.call(he,Pe)&&ni(Ue,Pe,he[Pe]);return Ue};const ve=Ue=>g.createElement("svg",F({viewBox:"0 0 27 27",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("path",{d:"M13.5 27C20.956 27 27 20.956 27 13.5S20.956 0 13.5 0 0 6.044 0 13.5 6.044 27 13.5 27Z",fill:"#FFD305"}),g.createElement("path",{d:"m20.713 19.26-.369-.37-.063-.064-1.493 1.493.036.036.396.396c.254.254.791.125 1.207-.287.415-.412.54-.952.286-1.204ZM16.709 15.31a5.797 5.797 0 1 0-1.515 1.47l3.229 3.181 1.493-1.492-3.207-3.16Zm-4.655.717a4.092 4.092 0 1 1 0-8.184 4.092 4.092 0 0 1 0 8.184Z",fill:"#fff"}));var Ze="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjcgMjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEzLjUgMjdDMjAuOTU2IDI3IDI3IDIwLjk1NiAyNyAxMy41UzIwLjk1NiAwIDEzLjUgMCAwIDYuMDQ0IDAgMTMuNSA2LjA0NCAyNyAxMy41IDI3WiIgZmlsbD0iI0ZGRDMwNSIvPjxwYXRoIGQ9Im0yMC43MTMgMTkuMjYtLjM2OS0uMzctLjA2My0uMDY0LTEuNDkzIDEuNDkzLjAzNi4wMzYuMzk2LjM5NmMuMjU0LjI1NC43OTEuMTI1IDEuMjA3LS4yODcuNDE1LS40MTIuNTQtLjk1Mi4yODYtMS4yMDRaTTE2LjcwOSAxNS4zMWE1Ljc5NyA1Ljc5NyAwIDEgMC0xLjUxNSAxLjQ3bDMuMjI5IDMuMTgxIDEuNDkzLTEuNDkyLTMuMjA3LTMuMTZabS00LjY1NS43MTdhNC4wOTIgNC4wOTIgMCAxIDEgMC04LjE4NCA0LjA5MiA0LjA5MiAwIDAgMSAwIDguMTg0WiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==",ot=(0,g.memo)(function(Ue){var he=Ue.mode,Pe=(0,z.bU)(),Bn=Pe.localeText;return he===W.je.View?null:(0,x.jsx)("div",{className:c()("dds-annotator-editor-status","dds-annotator-editor-status-".concat(he)),children:he===W.je.Edit?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(hl,{}),Bn("DDSAnnotator.status.labeling")]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(ve,{}),Bn("DDSAnnotator.status.reviewing")]})})}),Lt=ot,jn=e(12673),Rr=e(51244),lo=(0,g.memo)(function(Ue){var he=Ue.onAdd,Pe=(0,z.bU)(),Bn=Pe.localeText,vt=(0,g.useRef)(null),Tn=(0,g.useState)(""),bn=s()(Tn,2),On=bn[0],Nn=bn[1],dr=function(Ln){Ln.stopPropagation(),Nn(Ln.target.value)},mr=function(){var Ln;On!==""&&(he(On),Nn(""),(Ln=vt.current)===null||Ln===void 0||Ln.focus())};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Rr.Z,{style:{margin:"8px 0"}}),(0,x.jsxs)(Fn.Z,{style:{padding:"0 8px 4px"},children:[(0,x.jsx)(T.Z,{placeholder:Bn("DDSAnnotator.annotsEditor.addCategory"),ref:vt,value:On,onChange:dr,onKeyDown:function(Ln){Ln.code==="Enter"&&mr(),Ln.stopPropagation()}}),(0,x.jsx)(C.ZP,{type:"text",icon:(0,x.jsx)(jn.Z,{}),onClick:mr,children:Bn("DDSAnnotator.annotsEditor.add")})]})]})}),Ro=lo,di=(0,g.memo)(function(Ue){var he,Pe=Ue.drawData,Bn=Ue.latestLabelId,vt=Ue.isSeperate,Tn=Ue.labelOptions,bn=Ue.labelColors,On=Ue.onChangeObjectLabel,Nn=Ue.onCreateCategory,dr=(0,z.bU)(),mr=dr.localeText,yr=(0,g.useMemo)(function(){if(Tn.length>0){var Ln,ea=(Ln=Tn[0])===null||Ln===void 0?void 0:Ln.labelType,Cr=ea&&Q.t[ea],ir=Q.Zo[Cr];if(ir)return Q.ef[ir]}},[Tn]);return(0,x.jsx)("div",{className:"dds-annotator-label-selector",children:(0,x.jsx)(zt.Z,{showSearch:!0,placeholder:mr("DDSAnnotator.label.select"),size:"middle",value:((he=Pe.objectList[Pe.activeObjectIndex])===null||he===void 0?void 0:he.labelId)||Bn,onChange:On,popupClassName:"objects-select-popup",onClick:function(ea){return ea.stopPropagation()},onKeyUp:function(ea){return ea.stopPropagation()},onInputKeyDown:function(ea){ea.code!=="Enter"&&ea.stopPropagation()},filterOption:function(ea,Cr){var ir,Sr,Ir,ia=(Cr==null||(ir=Cr.children)===null||ir===void 0?void 0:ir[((Cr==null||(Sr=Cr.children)===null||Sr===void 0?void 0:Sr.length)||0)-1])||"";return(Ir=ia.toLowerCase())===null||Ir===void 0?void 0:Ir.includes(ea.toLowerCase())},dropdownRender:function(ea){return(0,x.jsxs)(x.Fragment,{children:[ea,vt&&(0,x.jsx)(Ro,{onAdd:Nn})]})},children:Tn==null?void 0:Tn.map(function(Ln){return(0,x.jsxs)(zt.Z.Option,{value:Ln.id,className:"dds-annotator-label-selector-option",children:[yr?(0,x.jsx)(yr,{color:Ln.renderColor,fill:Ln.renderColor}):(0,x.jsx)("div",{className:"dds-annotator-label-selector-option-color",style:{backgroundColor:bn==null?void 0:bn[Ln.id]}}),Ln.name]},Ln.id)})})})}),Yi=di,rl=(0,g.memo)(function(Ue){var he=Ue.selectedTool,Pe=Ue.selectedModel,Bn=Ue.modelOptions,vt=Ue.onSelectModel,Tn=(0,z.bU)(),bn=Tn.localeText,On=Q.Zo[he];return(0,x.jsx)("div",{className:"dds-annotator-model-selector",children:(0,x.jsx)(zt.Z,{placeholder:bn("DDSAnnotator.label.select"),size:"middle",value:Pe,onChange:vt,popupClassName:"objects-select-popup",onClick:function(dr){return dr.stopPropagation()},onKeyUp:function(dr){return dr.stopPropagation()},onInputKeyDown:function(dr){dr.code!=="Enter"&&dr.stopPropagation()},children:Bn==null?void 0:Bn.map(function(Nn,dr){return(0,x.jsxs)(zt.Z.Option,{value:Nn,className:"dds-annotator-model-selector-option",children:[(0,x.jsx)(H.Z,{component:Q.VC[On]}),Q.TR[Nn]&&bn(Q.TR[Nn].name)]},dr)})})})}),yl=rl,ac=(0,g.memo)(function(Ue){var he,Pe=Ue.toolOptions,Bn=Ue.selectedSubTool,vt=Ue.isAIAnnotationActive,Tn=Ue.brushSize,bn=Ue.onChangeSubTool,On=Ue.onChangeBrushSize,Nn=(0,g.useMemo)(function(){return[].concat(Kt()(Pe.basicTools),Kt()(Pe.smartTools))},[Pe.basicTools,Pe.smartTools]),dr=(0,g.useMemo)(function(){for(var Cr=[],ir=1;ir<=Nn.length;ir++)Cr.push(ir.toString());return Cr},[Nn]);(0,Ce.Z)(dr,function(Cr){var ir=Nn.find(function(Sr,Ir){return(Ir+1).toString()===Cr.key});if(ir&&ir.available){if(Pe.smartTools.find(function(Sr){return ir.key===Sr.key})&&!vt)return;bn(ir.key)}},{exactMatch:!0});var mr=function(ir){var Sr=Nn.find(function(Ir){return Ir.key===Bn});ir.type==="mouseup"&&(Sr!=null&&Sr.withSize||Sr!=null&&Sr.withCustomElement)||ir.stopPropagation()},yr=function(ir){var Sr=Nn.findIndex(function(Ir){return Ir.key===ir.key})+1;return(0,x.jsxs)("div",{className:"dds-annotator-subtoolbar-popover",children:[(0,x.jsxs)("div",{children:[(0,x.jsx)("span",{className:"dds-annotator-subtoolbar-popover-title",children:ir.name}),Sr&&(0,x.jsx)("span",{className:"dds-annotator-subtoolbar-popover-key",children:Sr})]}),ir.description&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"dds-annotator-subtoolbar-popover-divider"}),(0,x.jsx)("div",{children:ir.description})]})]})},Ln=function(ir){var Sr=Nn.find(function(Ir){return Ir.key===ir});Sr&&Sr.available&&bn(ir)},ea=function(ir){return(0,x.jsx)(fn.Z,{placement:"bottom",content:yr(ir),children:(0,x.jsx)(C.ZP,{className:c()("dds-annotator-subtoolbar-btn",{"dds-annotator-subtoolbar-btn-active":Bn===ir.key&&ir.available,"dds-annotator-subtoolbar-btn-limited":ir.available}),style:{cursor:ir.available?"pointer":"not-allowed"},icon:ir.icon,onClick:function(){return Ln(ir.key)}})},ir.key)};return(0,x.jsx)(A,{eventHandler:mr,children:(0,x.jsxs)("div",{className:"dds-annotator-subtoolbar",children:[Pe.basicTools.map(function(Cr){return ea(Cr)}),vt&&(0,x.jsxs)(x.Fragment,{children:[Pe.basicTools.length>0&&Pe.smartTools.length>0&&(0,x.jsx)("div",{className:"dds-annotator-subtoolbar-divider"}),Pe.smartTools.map(function(Cr){return ea(Cr)})]}),Pe.customElement&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"dds-annotator-subtoolbar-divider"}),Pe.customElement]}),!!((he=Nn.find(function(Cr){return Cr.key===Bn}))!==null&&he!==void 0&&he.withSize)&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"dds-annotator-subtoolbar-divider"}),(0,x.jsx)("div",{className:"dds-annotator-subtoolbar-title",children:"Brush Size"}),(0,x.jsx)("div",{className:"dds-annotator-subtoolbar-slider",children:(0,x.jsx)(Wn.Z,{defaultValue:20,min:1,max:100,value:Tn,onChange:function(ir){return On(ir)}})})]})]})})}),Ji=ac,Nu=function(he){var Pe=he.className,Bn=Pe===void 0?"":Pe,vt=he.children,Tn=he.leftTools,bn=Tn===void 0?[]:Tn,On=he.rightTools,Nn=On===void 0?[]:On,dr=function(yr){return yr.map(function(Ln,ea){var Cr=Ln.title,ir=Ln.icon,Sr=Ln.onClick,Ir=Ln.disabled,ia=Ln.splitLine,Kn=Ln.customElement;return(0,x.jsxs)(g.Fragment,{children:[Kn||(0,x.jsx)(L.Z,{title:Cr,children:(0,x.jsx)("div",{className:c()("dds-annnotator-toptools-row-icon",{"dds-annnotator-toptools-row-icon-disabled":!!Ir}),onClick:Sr,children:ir})}),ia&&(0,x.jsx)("div",{className:"dds-annnotator-toptools-row-split"})]},ea)})};return(0,x.jsxs)("div",{className:c()("dds-annnotator-toptools",Bn),onMouseDown:function(yr){yr.stopPropagation()},children:[(0,x.jsx)("div",{className:"dds-annnotator-toptools-row",children:dr(bn)}),(0,x.jsx)("div",{className:"dds-annnotator-toptools-progress",children:vt}),(0,x.jsx)("div",{className:"dds-annnotator-toptools-row",children:dr(Nn)})]})},fc=Nu,_u=function(he){var Pe=he.isOldMode,Bn=he.isSeperate,vt=he.mode,Tn=he.fileName,bn=he.drawData,On=he.editState,Nn=he.hideTopBarActions,dr=he.titleElements,mr=he.actionElements,yr=he.enableReviewerModify,Ln=he.labelOptions,ea=he.labelColors,Cr=he.showSubTools,ir=he.currSubTools,Sr=he.topBarCenterElement,Ir=he.selectSubTool,ia=he.setBrushSize,Kn=he.activeAIAnnotation,Yr=he.onChangeImageDisplayOpts,qr=he.onChangeAnnotsDisplayOpts,ua=he.onChangeObjectLabel,tr=he.onCreateCategory,sr=he.onSaveAnnotations,_r=he.onCommitAnnotations,zr=he.onRejectAnnotations,Fr=he.onAcceptAnnotations,xr=he.onModifyAnnotations,Tr=he.onCancelAnnotations,ya=he.onSelectModel,ba=(0,z.bU)(),K=ba.localeText,B=function(){window.open("https://docs.deepdataspace.com")},ue=(0,g.useMemo)(function(){var Je=mr?mr.map(function(Dt){return{customElement:Dt}}):[];return Nn||(vt===W.je.Review&&Je.push.apply(Je,[{customElement:(0,x.jsx)(C.ZP,{type:"primary",danger:!0,onClick:zr,children:K("DDSAnnotator.reject")})}].concat(Kt()(Pe||!yr?[]:[{customElement:(0,x.jsx)(C.ZP,{type:"default",onClick:xr,children:K("DDSAnnotator.modify")})}]),[{customElement:(0,x.jsx)(C.ZP,{type:"primary",onClick:Fr,children:K("DDSAnnotator.approve")})}])),vt===W.je.Edit&&!Bn&&(Je.push({customElement:(0,x.jsx)(C.ZP,{type:"default",onClick:sr,children:K("DDSAnnotator.save")})}),Pe||Je.push({customElement:(0,x.jsx)(C.ZP,{type:"primary",onClick:_r,children:K("DDSAnnotator.commit")})})),Je.unshift({customElement:(0,x.jsxs)(x.Fragment,{children:[vt===W.je.Edit&&(0,x.jsxs)("div",{className:"dds-annotator-qk-actions",children:[(0,x.jsx)(L.Z,{title:K("DDSAnnotator.docs"),children:(0,x.jsx)(H.Z,{component:ys,onClick:B})}),(0,x.jsx)(nl,{displayOption:On.imageDisplayOptions,colorByCategory:On.annotsDisplayOptions.colorByCategory,onChangeImageDisplayOpts:Yr,onChangeAnnotsDisplayOpts:qr})]}),(0,x.jsx)(cr,{mode:vt}),(0,x.jsx)(Lt,{mode:vt})]})}),vt===W.je.Edit&&Tn&&Je.unshift({customElement:(0,x.jsx)(x.Fragment,{children:Tn})})),Je},[vt,Pe,yr,Nn,sr,_r,Tr,zr,Fr,xr]),Me=function(){var Dt=[];return dr?Dt.push.apply(Dt,Kt()(dr.map(function(Bt){return{customElement:Bt}}))):(Bn||vt===W.je.Edit?Dt.push({customElement:(0,x.jsx)(L.Z,{title:K("DDSAnnotator.exit"),children:(0,x.jsx)(nc,{className:"dds-annotator-logo",onClick:Tr})})}):Dt.push({title:K("DDSAnnotator.exit"),icon:(0,x.jsx)(ko.Z,{}),onClick:function(){return Tr()}}),vt!==W.je.Edit&&Tn&&Dt.push({customElement:Tn})),vt===W.je.Edit&&Q.Xn[bn.selectedTool]&&Q.Xn[bn.selectedTool].length>1&&bn.AIAnnotation&&bn.selectedModel&&Dt.push({customElement:(0,x.jsx)(yl,{selectedTool:bn.selectedTool,selectedModel:bn.selectedModel[bn.selectedTool],modelOptions:Q.Xn[bn.selectedTool],onSelectModel:ya})}),vt===W.je.Edit&&(bn.objectList[bn.activeObjectIndex]||bn.selectedTool!==Q.ru.Drag)&&Dt.push({customElement:(0,x.jsx)(Yi,{drawData:bn,latestLabelId:On.latestLabelId,isSeperate:Bn,labelOptions:Ln,labelColors:ea,onChangeObjectLabel:ua,onCreateCategory:tr})}),vt===W.je.Edit&&Cr&&Dt.push({customElement:(0,x.jsx)(Ji,{toolOptions:ir,selectedSubTool:bn.selectedSubTool,isAIAnnotationActive:bn.AIAnnotation,brushSize:bn.brushSize,onChangeSubTool:Ir,onChangeBrushSize:ia,onActiveAIAnnotation:Kn})}),Dt},Le=(0,x.jsx)(fc,{leftTools:Me(),rightTools:ue,children:Sr});return{topToolsBar:Le}},vc=_u,gc=function(he){var Pe=he.isOldMode,Bn=he.clientSize,vt=he.naturalSize,Tn=he.categories,bn=he.getAnnotColor,On=function(Ln){var ea=Ln.categoryId,Cr=Ln.boundingBox,ir=Ln.points,Sr=Ln.lines,Ir=Ln.pointNames,ia=Ln.pointColors,Kn=Ln.segmentation,Yr=Ln.mask,qr=Ln.alpha,ua=Ln.point,tr=Ln.polyline,sr=Ln.lineColor,_r=Ln.lineType,zr=bn(ea||""),Fr={labelId:ea||"",type:Q.gr.Rectangle,hidden:!1,conf:Ln.conf||1,customStyles:Ln.customStyles,status:W.TK.Commited,color:zr};if(Cr){var xr=(0,Xr.cO)(Cr,Bn);Object.assign(Fr,{rect:t()({visible:!0},xr)})}if(ir&&ir.length>0&&Sr&&Sr.length>0&&Ir&&ia){var Tr=(0,Xr.el)(ir,Ir,ia,vt,Bn);Object.assign(Fr,{keypoints:{points:Tr,lines:Sr}})}if(Kn){var ya=(0,Xr.Vh)(Kn,vt,Bn),ba={group:ya,visible:!0};Object.assign(Fr,{polygon:ba})}if(Yr){var K=Yr.counts||"";Object.assign(Fr,{maskRle:K,maskCanvasElement:(0,fr.ei)(K,vt,zr)})}if(qr){var B=new Image;B.src=qr,Object.assign(Fr,{alpha:qr,alphaImageElement:B})}if(ua&&Object.assign(Fr,{point:t()(t()({},(0,Xr.YO)(ua,vt,Bn)),{},{visible:Q.GI.labeledVisible})}),tr&&_r&&sr){var ue=(0,Xr.aH)(tr).map(function(Le){return(0,Xr.YO)([Le.x,Le.y],vt,Bn)}),Me={group:[ue],visible:!0,lineType:_r,color:(0,Xr.Yc)(sr)};Object.assign(Fr,{polyline:Me})}return Fr.type=(0,Xr.tQ)(Fr),Fr},Nn=function(Ln){var ea,Cr=Ln.labelId,ir=Ln.rect,Sr=Ln.keypoints,Ir=Ln.polygon,ia=Ln.maskRle,Kn=Ln.point,Yr=((ea=Tn.find(function(zr){return zr.id===Cr}))===null||ea===void 0?void 0:ea.name)||"",qr={categoryId:Cr,categoryName:Yr};if(ir&&Object.assign(qr,{boundingBox:(0,Xr.kq)(ir,Bn)}),Sr&&Object.assign(qr,t()({lines:Sr.lines},(0,Xr.yn)(Sr.points,vt,Bn))),Ir){var ua=(0,Xr.Vi)(Ir,vt,Bn);Object.assign(qr,{segmentation:ua})}if(ia&&Object.assign(qr,{mask:{counts:ia,size:[vt.height,vt.width]}}),Kn){var tr=(0,Xr.AR)([Kn.x,Kn.y],vt,Bn),sr=tr.x,_r=tr.y;Object.assign(qr,{point:[sr,_r]})}return qr},dr=function(Ln,ea){var Cr,ir=Ln.labelId,Sr=Ln.labelValue,Ir=bn(ir),ia=Tn.find(function(sr){return sr.id===ir}),Kn=(ia==null||(Cr=ia.attributes)===null||Cr===void 0?void 0:Cr.map(function(sr,_r){var zr;return((zr=Ln.attributes)===null||zr===void 0?void 0:zr[_r])||null}))||void 0,Yr={labelId:ir,type:Q.gr.Custom,hidden:!1,status:W.TK.Commited,color:Ir,attributes:Kn},qr=function(_r,zr){switch(ia==null?void 0:ia.labelType){case Q.Ze.Rectangle:{var Fr=(0,Xr.JP)(zr,vt,Bn);Object.assign(_r,{rect:t()({visible:!0},Fr),type:Q.gr.Rectangle});break}case Q.Ze.Polygon:{var xr=(0,Xr.Uy)(zr,vt,Bn),Tr={group:xr,visible:!0};Object.assign(_r,{polygon:Tr,type:Q.gr.Polygon});break}case Q.Ze.Skeleton:{var ya=(0,Xr.OX)(zr,Q.v_.pointNames,Q.v_.pointColors,vt,Bn);Object.assign(_r,{keypoints:{points:ya,lines:Q.v_.lines},type:Q.gr.Skeleton});break}case Q.Ze.Mask:{var ba=zr.counts||"";Object.assign(_r,{maskRle:ba,maskCanvasElement:(0,fr.ei)(ba,vt,Ir),type:Q.gr.Mask});break}case Q.Ze.Classification:{Object.assign(_r,{labelValue:zr,type:Q.gr.Classification});break}}return _r};if(ea&&ea>0){if((ia==null?void 0:ia.labelType)===Q.Ze.Classification)return{classification:qr(Yr,Sr)};var ua=new Array(ea).fill(void 0),tr;return Object.keys(Sr).forEach(function(sr){tr=qr((0,m.cloneDeep)(Yr),Sr[sr]),ua[Number(sr)]=t()(t()({},tr),{},{frameEmpty:!1})}),{objects:ua.map(function(sr){return sr||t()(t()({},(0,m.cloneDeep)(tr)),{},{frameEmpty:!0})})}}return qr(Yr,Sr)},mr=function(Ln){var ea,Cr=Ln.labelId,ir=Ln.rect,Sr=Ln.keypoints,Ir=Ln.polygon,ia=Ln.maskRle,Kn=Ln.attributes,Yr=Tn.find(function(sr){return sr.id===Cr}),qr={labelId:Cr,attributes:Kn||(Yr==null||(ea=Yr.attributes)===null||ea===void 0?void 0:ea.map(function(){return null}))||[]};switch(Yr==null?void 0:Yr.labelType){case Q.Ze.Rectangle:{ir&&(qr.labelValue=(0,Xr.cx)(ir,Bn,vt));break}case Q.Ze.Polygon:{Ir&&(qr.labelValue=(0,Xr.A_)(Ir,vt,Bn));break}case Q.Ze.Skeleton:{if(Sr){var ua=(0,Xr.$G)(Sr.points,vt,Bn),tr=ua.points;qr.labelValue=tr}break}case Q.Ze.Mask:{ia&&(qr.labelValue={counts:ia,size:[vt.height,vt.width]});break}}return qr};return{translateAnnotationToObject:On,translateObjectToAnnotation:Nn,translateLabelToObject:dr,translateObjectToLabel:mr,translateObject:Pe?Nn:mr,translateToObject:Pe?On:dr}},lu=gc,Ui=e(87478),bo=function(he){var Pe,Bn=he.theme,vt=Bn===void 0?"dark":Bn,Tn=he.isOldMode,bn=he.isSeperate,On=he.visible,Nn=he.categories,dr=he.list,mr=he.current,yr=he.pagination,Ln=he.mode,ea=he.enableReviewerModify,Cr=he.limitToolTypes,ir=he.titleElements,Sr=he.actionElements,Ir=he.layoutOptions,ia=he.displayOptionsResult,Kn=he.manualMode,Yr=he.forceColorByObject,qr=he.limitActiveObject,ua=he.customDefaultDrawData,tr=he.onPrev,sr=he.onNext,_r=he.onCancel,zr=he.onSave,Fr=he.onCommit,xr=he.onReviewModify,Tr=he.onReviewAccept,ya=he.onReviewReject,ba=he.setCategories,K=he.onAutoSave,B=he.objectsFilter,ue=n.Z.useModal(),Me=s()(ue,2),Le=Me[0],Je=Me[1],Dt=(0,M.x)([]),Bt=s()(Dt,2),lt=Bt[0],en=Bt[1],En=(0,M.x)((0,m.cloneDeep)(W.rl)),wn=s()(En,2),_n=wn[0],vr=wn[1],Lr=(0,M.x)(t()(t()({},(0,m.cloneDeep)(W.f7)),ua)),ga=s()(Lr,2),wr=ga[0],ta=ga[1],ja=(0,g.useRef)(null),vo=(0,g.useRef)(null),Fa=(0,g.useRef)(null),da=(0,g.useMemo)(function(){return dr[mr]},[dr,mr]),io=da,$a=xi({categories:Nn,editState:_n,forceColorByObject:Yr}),ka=$a.getAnnotColor,so=$a.labelColors,Oo=Mi({visible:On,drawData:wr,allowMove:_n.allowMove,isRequiring:_n.isRequiring,minPadding:(Ir==null?void 0:Ir.minPadding)||{top:30,left:80},cursorSize:wr.brushSize,hideReferenceLine:!!(Ir!=null&&Ir.hideReferenceLine)}),ii=Oo.scale,uo=Oo.naturalSize,Do=Oo.clientSize,oo=Oo.containerMouse,ho=Oo.contentMouse,Ti=Oo.imagePos,Fi=Oo.onLoadImg,Os=Oo.onZoomIn,Va=Oo.onZoomOut,pi=Oo.onReset,Aa=Oo.CanvasContainer,Wo=Oo.isMousePress,fi=lu({isOldMode:Tn,clientSize:Do,naturalSize:uo,categories:Nn,getAnnotColor:ka}),Hi=fi.translateObject,Ds=fi.translateToObject,yi=jo({clientSize:Do,naturalSize:uo,setDrawData:ta,onAutoSave:K,translateObject:Hi}),il=yi.undo,Vi=yi.redo,Su=yi.clearHistory,Yu=yi.flagSaved,sc=yi.hadChangeRecord,gs=yi.updateHistory,Gi=yi.setDrawDataWithHistory,Pi=Ya({setDrawDataWithHistory:Gi,categories:Nn}),is=Pi.judgeEditingAttribute,wl=Pi.onConfirmAttibuteEdit,uu=Pi.onCancelAttibuteEdit,Ms=La({mode:Ln,categories:Nn,drawData:wr,setDrawData:ta,setDrawDataWithHistory:Gi,setEditState:vr,translateToObject:Ds,judgeEditingAttribute:is,updateHistory:gs}),zs=Ms.addObject,cu=Ms.removeObject,Zl=Ms.removeAllObjects,Sd=Ms.initObjectList,ud=Ms.updateAllObject,Pc=Ms.updateObject,cd=Ms.updateObjectWithoutHistory,Eu=Ms.updateAllObjectWithoutHistory,yc=Ms.commitedObjects,Zc=Ms.currObject,Cu=Zo({isOldMode:Tn,mode:Ln,categories:Nn,setCategories:ba,drawData:wr,setDrawData:ta,editState:_n,updateObjectWithoutHistory:cd,updateAllObjectWithoutHistory:Eu}),Jl=Cu.labelOptions,Di=Cu.latestLabel,Ss=Cu.classificationOptions,Es=Cu.onChangeObjectHidden,Vs=Cu.onChangeCategoryHidden,ql=Cu.onChangeActiveClass,Tc=Cu.onCreateCategory,Fs=Cu.onChangePointVisible,Uc=wo({currImageItem:io,drawData:wr,setDrawData:ta,setDrawDataWithHistory:Gi,editState:_n,setEditState:vr,naturalSize:uo,clientSize:Do,getAnnotColor:ka}),Vu=Uc.onAiAnnotation,qc=Ri({topCanvas:vo.current,editState:_n,drawData:wr}),kc=qc.updateMouseCursor,ss=ci({mode:Ln,manualMode:!!Kn,drawData:wr,setDrawData:ta,setDrawDataWithHistory:Gi,editState:_n,setEditState:vr,getAnnotColor:ka,clientSize:Do,naturalSize:uo,addObject:zs,updateObject:Pc,updateAllObject:ud,onAiAnnotation:Vu}),jl=ss.onChangeObjectLabel,dd=ss.onFinishCurrCreate,Lc=ss.onAcceptValidObjects,Gu=ss.onAbortBatchObjects,Wc=ss.selectTool,fd=ss.selectSubTool,lc=ss.forceChangeTool,ed=ss.onExitAIAnnotation,uc=ss.setBrushSize,Hc=ss.activeAIAnnotation,_c=ss.onChangeSkeletonConf,Ul=ss.onChangeLimitConf,Yc=ss.onChangeAnnotsDisplayOpts,td=ss.onChangeImageDisplayOpts,Pl=ss.onChangeColorMode,Ku=ss.onChangePointResolution,eu=ss.onSelectModel,nd=ss.isInAiSession,vd=wa({drawData:wr,onChangePointResolution:Ku}),kl=vd.showSubTools,rd=vd.currSubTools,gd=(0,Ui.Vr)({imgRef:Fa,editState:_n,clientSize:Do,naturalSize:uo,contentMouse:ho,imagePos:Ti,containerMouse:oo,canvasRef:ja,activeCanvasRef:vo,setEditState:vr,drawData:wr,setDrawData:ta,setDrawDataWithHistory:Gi,updateHistory:gs,updateObject:Pc,addObject:zs,updateMouseCursor:kc,onAiAnnotation:Vu,getAnnotColor:ka,categories:Nn,displayOptionsResult:ia}),ad=gd.objectHooksMap,Ed=Ni({visible:On,drawData:wr,editState:_n,clientSize:Do,imagePos:Ti,containerMouse:oo,canvasRef:ja,activeCanvasRef:vo,imgRef:Fa,objectHooksMap:ad}),zu=Ed.updateRender,Cd=Ed.renderPopoverMenu,Vc=Ta({visible:On,mode:Ln,drawData:wr,setDrawData:ta,editState:_n,setEditState:vr,clientSize:Do,contentMouse:ho,categories:Nn,updateRender:zu,updateMouseCursor:kc,objectHooksMap:ad,imagePos:Ti,containerMouse:oo,getAnnotColor:ka,limitActiveObject:qr}),bc=Vc.selectFocusObject,md=Vc.forceChangeFocusObject,Mc=Vc.mouseRightObjectsDropDownRender,Sc=jr({mode:Ln,currImageItem:io,modal:Le,drawData:wr,editState:_n,setEditState:vr,hadChangeRecord:sc,categories:Nn,translateObject:Hi,flagSaved:Yu,onCancel:_r,onSave:zr,onCommit:Fr,onReviewModify:xr,onReviewAccept:Tr,onReviewReject:ya,classificationOptions:Ss,isInAiSession:nd}),pd=Sc.onSaveAnnotations,hd=Sc.onCommitAnnotations,od=Sc.onCancelAnnotations,xd=Sc.onRejectAnnotations,Id=Sc.onAcceptAnnotations,Ad=Sc.onModifyAnnotations;Jo({visible:On,mode:Ln,drawData:wr,categories:Nn,isMousePress:Wo,setDrawData:ta,setEditState:vr,onSaveAnnotations:pd,onAcceptAnnotations:Id,onRejectAnnotations:xd,onChangeObjectHidden:Es,onChangeCategoryHidden:Vs,removeObject:cu,addObject:zs});var Od=ti({imagePos:Ti,clientSize:Do,naturalSize:uo,annotations:lt,setAnnotations:en,drawData:wr,setDrawData:ta,editState:_n,setEditState:vr,initObjectList:Sd,updateRender:zu,clearHistory:Su,objectsFilter:B,labelOptions:Jl,customDefaultDrawData:ua}),Ec=Od.resetDataWithImageData;(0,g.useEffect)(function(){return document.body.style.overflow=On?"hidden":"overlay",function(){document.body.style.overflow="overlay"}},[On]),(0,g.useEffect)(function(){Ec(io,On)},[On,Ln,mr,io==null?void 0:io.id,B]),(0,g.useEffect)(function(){Pl()},[_n.annotsDisplayOptions.colorByCategory]);var Bd=(0,g.useMemo)(function(){if(da!=null&&da.name)return da==null?void 0:da.name;if(da!=null&&da.url&&(da==null?void 0:da.url.indexOf("http"))===0){var sd=decodeURIComponent(da==null?void 0:da.url);return sd.replace(/\?.*$/,"").split("/").pop()||""}return""},[da]),Nc=yr&&yr.show?(0,x.jsx)(Qr,{list:dr,current:mr,total:yr.total,customText:yr.customText,customDisableNext:yr.customDisableNext,onPrev:tr,onNext:sr}):null,id=vc({isOldMode:Tn,isSeperate:bn,mode:Ln,hideTopBarActions:Ir==null?void 0:Ir.hideTopBarActions,fileName:Bd,drawData:wr,editState:_n,titleElements:ir,actionElements:Sr,enableReviewerModify:ea,labelOptions:Jl,showSubTools:kl,currSubTools:rd,topBarCenterElement:Nc,labelColors:so,selectSubTool:fd,setBrushSize:uc,activeAIAnnotation:Hc,onChangeImageDisplayOpts:td,onChangeAnnotsDisplayOpts:Yc,onChangeObjectLabel:jl,onCreateCategory:Tc,onSaveAnnotations:pd,onCommitAnnotations:hd,onRejectAnnotations:xd,onAcceptAnnotations:Id,onModifyAnnotations:Ad,onCancelAnnotations:od,onSelectModel:eu}),ls=id.topToolsBar;return On?(0,x.jsxs)("div",{className:c()("dds-annotator","dds-annotator-editor","dds-annotator-editor-".concat(vt)),style:{height:(Ir==null?void 0:Ir.wrapHeight)||"100vh"},children:[!(Ir!=null&&Ir.hideTopBar)&&ls,(0,x.jsxs)("div",{className:"editor-container",style:{top:Ir!=null&&Ir.hideTopBar?"0":""},children:[!(Ir!=null&&Ir.hideMainToolBar)&&(0,x.jsx)(Ea,{onlySupportZoom:Ln!==W.je.Edit,selectedTool:wr.selectedTool,manualMode:!!Kn,limitToolTypes:Cr,isAIAnnotationActive:wr.AIAnnotation,onChangeSelectedTool:Wc,onActiveAIAnnotation:Hc,hideUndoRedoActions:Ir==null?void 0:Ir.hideUndoRedoActions,undo:il,redo:Vi,deleteAll:Zl,scale:ii,onZoomIn:Os,onZoomOut:Va,onZoomReset:pi}),(0,x.jsxs)("div",{className:"center-content",children:[io&&(0,x.jsx)(d.Z,{dropdownRender:Mc,trigger:["contextMenu"],open:_n.foucsObjectAllIndexs.length>0,children:Aa({className:"edit-wrap",children:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(ne,{url:io==null?void 0:io.url,imgRef:Fa,canvasRef:ja,activeCanvasRef:vo,clientSize:Do,imagePos:Ti,onLoad:function(Rc){zu(),Fi(Rc)}}),Cd()]})})}),(0,x.jsx)(mt,{mode:Ln,isAiAnnotation:wr.AIAnnotation,latestLabelId:_n.latestLabelId,currObject:Zc,onFinishCurrCreate:dd}),(0,x.jsx)(on,{mode:Ln,isAiAnnotation:wr.AIAnnotation,currObject:Zc,currObjectIndex:wr.activeObjectIndex,focusObjectIndex:_n.focusObjectIndex,focusEleType:_n.focusEleType,focusEleIndex:_n.focusEleIndex,onChangePointVisible:Fs,setEditState:vr}),(0,x.jsx)(cn,{selectedTool:wr.selectedTool,selectedSubTool:wr.selectedSubTool,selectedModel:wr.selectedModel[wr.selectedTool],isBatchEditing:wr.isBatchEditing,AIAnnotation:wr.AIAnnotation,hasPolygonPreds:!!((Pe=wr.creatingObject)!==null&&Pe!==void 0&&Pe.polygon),isCtrlPressed:_n.isCtrlPressed,limitConf:wr.limitConf,naturalSize:uo,latestLabel:Di,forceChangeTool:lc,onAiAnnotation:Vu,onExitAIAnnotation:ed,onChangeConfidenceRange:_c,onChangeLimitConf:Ul,onAcceptValidObjects:Lc,onCancelBatchEdit:Gu}),(0,x.jsx)(me,{AIAnnotation:wr.AIAnnotation,modelOptions:Q.Xn[wr.selectedTool],selectedModel:wr.selectedModel[wr.selectedTool],onSelectModel:eu,onCloseModal:function(){return ta(function(Rc){Rc.AIAnnotation=!1})}}),wr.editingAttribute&&(0,x.jsx)(fe,{data:wr.editingAttribute,supportEdit:Ln===W.je.Edit,onConfirmAttibuteEdit:wl,onCancelAttibuteEdit:uu})]}),!(Ir!=null&&Ir.hideRightList)&&(0,x.jsxs)("div",{className:"right-slider",children:[Ss.length>0&&(0,x.jsx)(qe,{className:"classifications",supportEdit:Ln===W.je.Edit,classificationOptions:Ss,values:wr.classifications,setDrawDataWithHistory:Gi}),(0,x.jsx)(et,{supportEdit:Ln===W.je.Edit,className:"object-list",objects:yc,categories:Nn,activeObjectIndex:wr.activeObjectIndex,activeClassName:wr.activeClassName,onFocusObject:md,onActiveObject:bc,onChangeObjectHidden:Es,onChangeCategoryHidden:Vs,onDeleteObject:cu,onChangeActiveClassName:ql,setDrawDataWithHistory:Gi,colorByCategory:_n.annotsDisplayOptions.colorByCategory,onChangeAnnotsDisplayOpts:Yc})]})]}),(0,x.jsx)("div",{onMouseDown:function(Rc){Rc.stopPropagation()},children:Je})]}):null},vs=bo,mc=e(16962),bu=e.n(mc),oc=Object.defineProperty,Fc=Object.getOwnPropertySymbols,_s=Object.prototype.hasOwnProperty,al=Object.prototype.propertyIsEnumerable,Oc=(Ue,he,Pe)=>he in Ue?oc(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,ic=(Ue,he)=>{for(var Pe in he||(he={}))_s.call(he,Pe)&&Oc(Ue,Pe,he[Pe]);if(Fc)for(var Pe of Fc(he))al.call(he,Pe)&&Oc(Ue,Pe,he[Pe]);return Ue};const ol=Ue=>g.createElement("svg",ic({width:16,height:16,fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("path",{d:"m8.379 7.648-4.56-5.825a.283.283 0 0 0-.224-.11h-1.38a.142.142 0 0 0-.113.231L6.842 8l-4.74 6.055a.143.143 0 0 0 .112.23h1.38a.289.289 0 0 0 .226-.109l4.559-5.823a.571.571 0 0 0 0-.705Zm5.428 0L9.248 1.823a.283.283 0 0 0-.225-.11h-1.38a.142.142 0 0 0-.112.231L12.27 8l-4.74 6.055a.143.143 0 0 0 .113.23h1.38a.289.289 0 0 0 .225-.109l4.56-5.823a.571.571 0 0 0 0-.705Z",fill:"#fff",opacity:.85}));var Bl="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTguMzc5IDcuNjQ4LTQuNTYtNS44MjVhLjI4My4yODMgMCAwIDAtLjIyNC0uMTFoLTEuMzhhLjE0Mi4xNDIgMCAwIDAtLjExMy4yMzFMNi44NDIgOGwtNC43NCA2LjA1NWEuMTQzLjE0MyAwIDAgMCAuMTEyLjIzaDEuMzhhLjI4OS4yODkgMCAwIDAgLjIyNi0uMTA5bDQuNTU5LTUuODIzYS41NzEuNTcxIDAgMCAwIDAtLjcwNVptNS40MjggMEw5LjI0OCAxLjgyM2EuMjgzLjI4MyAwIDAgMC0uMjI1LS4xMWgtMS4zOGEuMTQyLjE0MiAwIDAgMC0uMTEyLjIzMUwxMi4yNyA4bC00Ljc0IDYuMDU1YS4xNDMuMTQzIDAgMCAwIC4xMTMuMjNoMS4zOGEuMjg5LjI4OSAwIDAgMCAuMjI1LS4xMDlsNC41Ni01LjgyM2EuNTcxLjU3MSAwIDAgMCAwLS43MDVaIiBmaWxsPSIjZmZmIiBvcGFjaXR5PSIuODUiLz48L3N2Zz4=",Ru=Object.defineProperty,Ys=Object.getOwnPropertySymbols,$l=Object.prototype.hasOwnProperty,Dc=Object.prototype.propertyIsEnumerable,wc=(Ue,he,Pe)=>he in Ue?Ru(Ue,he,{enumerable:!0,configurable:!0,writable:!0,value:Pe}):Ue[he]=Pe,pc=(Ue,he)=>{for(var Pe in he||(he={}))$l.call(he,Pe)&&wc(Ue,Pe,he[Pe]);if(Ys)for(var Pe of Ys(he))Dc.call(he,Pe)&&wc(Ue,Pe,he[Pe]);return Ue};const Bc=Ue=>g.createElement("svg",pc({viewBox:"0 0 14 14",fill:"#595959",xmlns:"http://www.w3.org/2000/svg"},Ue),g.createElement("path",{d:"M6.887 9.657a.143.143 0 0 0 .225 0l2-2.53A.142.142 0 0 0 9 6.897H7.677V.854A.143.143 0 0 0 7.534.71H6.462a.143.143 0 0 0-.143.143v6.041H5a.142.142 0 0 0-.112.23l2 2.532Zm6.649-.625h-1.072a.143.143 0 0 0-.143.143v2.75H1.678v-2.75a.143.143 0 0 0-.142-.143H.464a.143.143 0 0 0-.143.143v3.536a.57.57 0 0 0 .572.572h12.214a.57.57 0 0 0 .571-.572V9.175a.143.143 0 0 0-.142-.143Z"}));var $c="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTQgMTQiIGZpbGw9IiM1OTU5NTkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYuODg3IDkuNjU3YS4xNDMuMTQzIDAgMCAwIC4yMjUgMGwyLTIuNTNBLjE0Mi4xNDIgMCAwIDAgOSA2Ljg5N0g3LjY3N1YuODU0QS4xNDMuMTQzIDAgMCAwIDcuNTM0LjcxSDYuNDYyYS4xNDMuMTQzIDAgMCAwLS4xNDMuMTQzdjYuMDQxSDVhLjE0Mi4xNDIgMCAwIDAtLjExMi4yM2wyIDIuNTMyWm02LjY0OS0uNjI1aC0xLjA3MmEuMTQzLjE0MyAwIDAgMC0uMTQzLjE0M3YyLjc1SDEuNjc4di0yLjc1YS4xNDMuMTQzIDAgMCAwLS4xNDItLjE0M0guNDY0YS4xNDMuMTQzIDAgMCAwLS4xNDMuMTQzdjMuNTM2YS41Ny41NyAwIDAgMCAuNTcyLjU3MmgxMi4yMTRhLjU3LjU3IDAgMCAwIC41NzEtLjU3MlY5LjE3NWEuMTQzLjE0MyAwIDAgMC0uMTQyLS4xNDNaIi8+PC9zdmc+",hc=function(he){var Pe,Bn,vt=he.isOldMode,Tn=he.visible,bn=he.categories,On=he.list,Nn=he.current,dr=he.onPrev,mr=he.onNext,yr=he.onCancel,Ln=he.objectsFilter,ea=he.displayOptionsResult,Cr=(0,M.x)([]),ir=s()(Cr,2),Sr=ir[0],Ir=ir[1],ia=(0,M.x)((0,m.cloneDeep)(W.rl)),Kn=s()(ia,2),Yr=Kn[0],qr=Kn[1],ua=(0,M.x)((0,m.cloneDeep)(W.f7)),tr=s()(ua,2),sr=tr[0],_r=tr[1],zr=(0,g.useRef)(null),Fr=(0,g.useRef)(null),xr=(0,g.useRef)(null),Tr=Mi({visible:Tn,drawData:sr,allowMove:Yr.allowMove,isRequiring:Yr.isRequiring,minPadding:{top:120,left:300},cursorSize:sr.brushSize,onClickMaskBg:yr}),ya=Tr.scale,ba=Tr.naturalSize,K=Tr.clientSize,B=Tr.containerMouse,ue=Tr.contentMouse,Me=Tr.imagePos,Le=Tr.onLoadImg,Je=Tr.onZoomIn,Dt=Tr.onZoomOut,Bt=Tr.CanvasContainer,lt=xi({categories:bn,editState:Yr}),en=lt.getAnnotColor,En=Ri({topCanvas:Fr.current,editState:Yr,drawData:sr}),wn=En.updateMouseCursor,_n=lu({isOldMode:vt,clientSize:K,naturalSize:ba,categories:bn,getAnnotColor:en}),vr=_n.translateToObject,Lr=jo({clientSize:K,naturalSize:ba,setDrawData:_r}),ga=Lr.clearHistory,wr=Lr.updateHistory,ta=Lr.setDrawDataWithHistory,ja=La({mode:W.je.View,categories:bn,drawData:sr,setDrawData:_r,setDrawDataWithHistory:ta,setEditState:qr,translateToObject:vr,updateHistory:wr}),vo=ja.addObject,Fa=ja.initObjectList,da=ja.updateObject,io=(0,Ui.Vr)({imgRef:xr,editState:Yr,clientSize:K,naturalSize:ba,contentMouse:ue,imagePos:Me,containerMouse:B,canvasRef:zr,activeCanvasRef:Fr,setEditState:qr,drawData:sr,setDrawData:_r,setDrawDataWithHistory:ta,updateHistory:wr,updateObject:da,addObject:vo,updateMouseCursor:wn,displayOptionsResult:ea,getAnnotColor:en,categories:bn}),$a=io.objectHooksMap,ka=Ni({visible:Tn,drawData:sr,editState:Yr,clientSize:K,imagePos:Me,containerMouse:B,canvasRef:zr,activeCanvasRef:Fr,imgRef:xr,objectHooksMap:$a}),so=ka.updateRender;Ta({visible:Tn,mode:W.je.View,drawData:sr,setDrawData:_r,editState:Yr,setEditState:qr,clientSize:K,contentMouse:ue,categories:bn,updateRender:so,updateMouseCursor:wn,objectHooksMap:$a,imagePos:Me,containerMouse:B,getAnnotColor:en,limitActiveObject:!0}),(0,g.useEffect)(function(){document.body.style.overflow=Tn?"hidden":"overlay"},[Tn]);var Oo=ti({imagePos:Me,clientSize:K,naturalSize:ba,annotations:Sr,setAnnotations:Ir,drawData:sr,setDrawData:_r,editState:Yr,setEditState:qr,initObjectList:Fa,updateRender:so,clearHistory:ga,objectsFilter:Ln,labelOptions:bn}),ii=Oo.resetDataWithImageData;(0,g.useEffect)(function(){ii(On[Nn],Tn)},[Tn,On[Nn],Ln]),(0,g.useEffect)(function(){so()},[ea]);var uo=(0,g.useState)(!0),Do=s()(uo,2),oo=Do[0],ho=Do[1],Ti=(0,g.useCallback)(function(){ho(function(pi){return!pi})},[]),Fi=function(){var pi=nr()(hn()().mark(function Aa(Wo){var fi,Hi;return hn()().wrap(function(yi){for(;;)switch(yi.prev=yi.next){case 0:return Wo.preventDefault(),Wo.stopPropagation(),fi=S.ZP.loading("Creating image...",6e4),Hi=function(){return new Promise(function(Vi,Su){setTimeout(function(){try{if(!zr.current)return;var Yu=zr.current.toDataURL(),sc=document.createElement("a");sc.setAttribute("download","".concat(On[Nn].id,".png")),sc.setAttribute("href",Yu),sc.click(),fi(),Vi(null)}catch(gs){Su(gs)}},500)})},yi.prev=4,qr(function(il){il.focusObjectIndex=-1}),so(),yi.next=9,Hi();case 9:yi.next=16;break;case 11:yi.prev=11,yi.t0=yi.catch(4),console.error(yi.t0),fi(),S.ZP.error("Create image fail, please try again");case 16:case"end":return yi.stop()}},Aa,null,[[4,11]])}));return function(Wo){return pi.apply(this,arguments)}}();(0,Ce.Z)(Ee[Ie.PreviousImage].shortcut,function(){Tn&&(dr==null||dr())},{exactMatch:!0}),(0,Ce.Z)(Ee[Ie.NextImage].shortcut,function(){Tn&&(mr==null||mr())},{exactMatch:!0});var Os=function(){var Aa;if(Yr.focusObjectIndex>-1&&sr.objectList[Yr.focusObjectIndex]&&!((Aa=sr.objectList[Yr.focusObjectIndex])!==null&&Aa!==void 0&&Aa.hidden)&&Yr.focusEleIndex>-1&&Yr.focusEleType===Q.Yq.Circle){var Wo,fi,Hi,Ds=(Wo=sr.objectList[Yr.focusObjectIndex])===null||Wo===void 0||(fi=Wo.keypoints)===null||fi===void 0||(Hi=fi.points)===null||Hi===void 0?void 0:Hi[Yr.focusEleIndex];if(Ds)return(0,x.jsx)(Xo,{index:Yr.focusEleIndex,targetElement:Ds,imagePos:Me.current})}return(0,x.jsx)(x.Fragment,{})};if(!Tn)return(0,x.jsx)(x.Fragment,{});var Va=(0,m.isEmpty)((Pe=On[Nn])===null||Pe===void 0?void 0:Pe.metadata)?void 0:On[Nn].metadata;return(0,x.jsxs)("div",{className:"dds-annotator dds-annotator-preview",children:[(0,x.jsx)(fc,{className:"top-tools",leftTools:[{icon:(0,x.jsx)(mn.Z,{}),onClick:Je,disabled:ya>=Q.Fv},{icon:(0,x.jsx)(tn.Z,{}),onClick:Dt,disabled:ya<=Q.vL},{icon:(0,x.jsx)(Bc,{}),onClick:Fi}],rightTools:[{icon:(0,x.jsx)(h.Z,{}),onClick:yr}],children:"".concat(Nn+1," / ").concat(On.length)}),Bt({className:"edit-wrap",children:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(ne,{url:(Bn=On[Nn])===null||Bn===void 0?void 0:Bn.url,imgRef:xr,canvasRef:zr,activeCanvasRef:Fr,clientSize:K,imagePos:Me,onLoad:Le}),Os()]})}),(0,x.jsx)("div",{className:c()("switch","switch-left",{"switch-disable":Nn===0}),onClick:dr,children:(0,x.jsx)(Wr.Z,{})}),(0,x.jsx)("div",{className:c()("switch","switch-right",{"switch-disable":Nn===On.length-1}),onClick:mr,children:(0,x.jsx)(Da.Z,{})}),oo&&Va&&(0,x.jsxs)("div",{className:"info-wrap",children:[(0,x.jsx)("div",{className:"info-box",children:Object.keys(Va).map(function(pi){return(0,x.jsxs)("div",{className:"item",children:[pi,(0,x.jsx)("br",{}),bu()(Va[pi])==="object"?JSON.stringify(Va[pi]):Va[pi]]},pi)})}),(0,x.jsx)("div",{className:"bottom-mask"}),(0,x.jsx)("div",{className:"hide-info-btn",onClick:Ti,children:(0,x.jsx)(ol,{})})]}),!oo&&(0,x.jsx)("div",{className:"show-info-btn",onClick:Ti,children:(0,x.jsx)(ol,{})})]})},jc=hc,Xl=function(he){var Pe=he.isOldMode,Bn=he.categories,vt=he.data,Tn=he.currentSize,bn=he.wrapWidth,On=he.wrapHeight,Nn=he.minHeight,dr=he.objectsFilter,mr=he.displayOptionsResult,yr=(0,M.x)([]),Ln=s()(yr,2),ea=Ln[0],Cr=Ln[1],ir=(0,M.x)((0,m.cloneDeep)(W.rl)),Sr=s()(ir,2),Ir=Sr[0],ia=Sr[1],Kn=(0,M.x)((0,m.cloneDeep)(W.f7)),Yr=s()(Kn,2),qr=Yr[0],ua=Yr[1],tr=(0,g.useRef)(null),sr=(0,g.useRef)(null),_r=(0,g.useRef)(null),zr=(0,g.useRef)({x:0,y:0}),Fr=(0,g.useState)({width:0,height:Nn||0}),xr=s()(Fr,2),Tr=xr[0],ya=xr[1],ba=(0,g.useMemo)(function(){if(Tn)return Tn;if(!Tr.width)return{width:bn||0,height:On||Nn||0};var so=(0,Xr.t9)(Tr.width,Tr.height,bn,On),Oo=s()(so,2),ii=Oo[0],uo=Oo[1];return{width:ii,height:uo}},[bn,On,Nn,Tr,Tn]),K=(0,g.useMemo)(function(){var so={screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,elementX:0,elementY:0,elementPosX:0,elementPosY:0,elementW:ba.width,elementH:ba.height};return[so,so]},[ba]),B=s()(K,2),ue=B[0],Me=B[1],Le=xi({categories:Bn,editState:Ir}),Je=Le.getAnnotColor,Dt=lu({isOldMode:Pe,clientSize:ba,naturalSize:Tr,categories:Bn,getAnnotColor:Je}),Bt=Dt.translateToObject,lt=jo({clientSize:ba,naturalSize:Tr,setDrawData:ua}),en=lt.clearHistory,En=lt.updateHistory,wn=lt.setDrawDataWithHistory,_n=La({mode:W.je.View,categories:Bn,drawData:qr,setDrawData:ua,setDrawDataWithHistory:wn,setEditState:ia,translateToObject:Bt,updateHistory:En}),vr=_n.addObject,Lr=_n.initObjectList,ga=_n.updateObject,wr=Ri({topCanvas:sr.current,editState:Ir,drawData:qr}),ta=wr.updateMouseCursor,ja=(0,Ui.Vr)({imgRef:_r,editState:Ir,clientSize:ba,naturalSize:Tr,contentMouse:ue,containerMouse:Me,imagePos:zr,canvasRef:tr,activeCanvasRef:sr,setEditState:ia,drawData:qr,setDrawData:ua,setDrawDataWithHistory:wn,updateHistory:En,updateObject:ga,addObject:vr,updateMouseCursor:ta,displayOptionsResult:mr,getAnnotColor:Je,categories:Bn}),vo=ja.objectHooksMap,Fa=Ni({visible:!0,drawData:qr,editState:Ir,clientSize:ba,imagePos:zr,containerMouse:Me,canvasRef:tr,activeCanvasRef:sr,imgRef:_r,objectHooksMap:vo}),da=Fa.updateRender,io=ti({imagePos:zr,clientSize:ba,naturalSize:Tr,annotations:ea,setAnnotations:Cr,drawData:qr,setDrawData:ua,editState:Ir,setEditState:ia,initObjectList:Lr,updateRender:da,clearHistory:en,objectsFilter:dr,labelOptions:Bn}),$a=io.resetDataWithImageData;(0,g.useEffect)(function(){$a(vt,!0)},[vt,dr]),(0,g.useEffect)(function(){da()},[mr]);var ka=function(Oo){var ii=Oo.target,uo={width:ii.naturalWidth,height:ii.naturalHeight};ya(uo)};return(0,x.jsx)("div",{className:"dds-annotator-view",children:(0,x.jsx)(ne,{url:vt==null?void 0:vt.url,imgRef:_r,canvasRef:tr,activeCanvasRef:sr,clientSize:ba,imagePos:zr,onLoad:ka})})},Mu=Xl},87478:function(b,y,e){"use strict";e.d(y,{$N:function(){return x},hF:function(){return X},G9:function(){return W},_G:function(){return O},Vr:function(){return le}});var a=e(63900),t=e.n(a),o=e(2657),s=e.n(o),n=e(17410),d=e(46134),l=e(81179),c=e(67761),m=function(U){var A=U.imgRef,V=U.imagePos,fe=U.canvasRef,pe=U.clientSize,ge=U.displayOptionsResult,be=function(Ke){if(!(!Ke||!fe.current||!A.current)){var ye=ge||{},ne=ye.showMattingColorFill,H=fe.current.getContext("2d"),R=t()({x:V.current.x,y:V.current.y},pe);(0,l.UN)(fe.current),(0,l.AE)(fe.current,Ke,R),ne?(H.globalCompositeOperation="source-out",(0,l.CR)(fe.current,R,"#000"),H.globalCompositeOperation="destination-atop",(0,l.CR)(fe.current,R,"#fff")):(H.globalCompositeOperation="source-in",(0,l.AE)(fe.current,A.current,R),H.globalCompositeOperation="destination-over",(0,l.CR)(fe.current,R,"#fff"))}},Te=function(Ke){var ye=Ke.object,ne=ye.alphaImageElement;ne&&(be(ne),ne.onload=function(){be(ne)})},Ge=function(){},qe=function(){},Qe=function(){},ht=function(){return!1},Et=function(){return!1},gt=function(){return!1},Ht=function(){return!1},$e=function(){return!1},Xe=function(){return!1};return{renderObject:Te,renderCreatingObject:Ge,renderEditingObject:qe,renderPrompt:Qe,startEditingWhenMouseDown:ht,startCreatingWhenMouseDown:Et,updateEditingWhenMouseMove:gt,updateCreatingWhenMouseMove:Ht,finishEditingWhenMouseUp:$e,finishCreatingWhenMouseUp:Xe}},g=m,M=function(U){var A=U.canvasRef,V=function(gt){var Ht=gt.object,$e=gt.styles,Xe=Ht.point;if(Xe&&Xe.visible){var rt=Xe.x,Ke=Xe.y,ye=$e.strokeColor,ne=$e.fillColor;(0,l.G5)(A.current,{x:rt,y:Ke},4,ne,2,ye)}},fe=function(){},pe=function(){},ge=function(){},be=function(){return!1},Te=function(){return!1},Ge=function(){return!1},qe=function(){return!1},Qe=function(){return!1},ht=function(){return!1};return{renderObject:V,renderCreatingObject:fe,renderEditingObject:pe,renderPrompt:ge,startEditingWhenMouseDown:be,startCreatingWhenMouseDown:Te,updateEditingWhenMouseMove:Ge,updateCreatingWhenMouseMove:qe,finishEditingWhenMouseUp:Qe,finishCreatingWhenMouseUp:ht}},h=M,S=e(34485),w=e.n(S),C=e(39378),z=e(34095),Z=e(50910),N=e(14464),L=function(U){var A=U.editState,V=U.clientSize,fe=U.naturalSize,pe=U.imagePos,ge=U.containerMouse,be=U.canvasRef,Te=U.activeCanvasRef,Ge=U.contentMouse,qe=U.setEditState,Qe=U.drawData,ht=U.setDrawData,Et=U.setDrawDataWithHistory,gt=U.updateHistory,Ht=U.updateMouseCursor,$e=U.updateObject,Xe=U.addObject,rt=U.onAiAnnotation,Ke=U.displayOptionsResult,ye=function(J){var de=J.object,xe=J.color,ce=J.styles,Ne=J.isFocus,Oe=J.isJustCreated,we=de.polygon;if(we&&we.visible){var Re=ce.fillColor;!Ne&&!Oe&&(Re=(0,N.a7)(xe,z.mh.DEFAULT_SHAPE));var st=ce.thickness;Ke&&(!Ke.showSegFilling&&!Ne&&(Re="transparent"),Ke.showSegContour||(st=0)),we==null||we.group.forEach(function(tt){(0,l.fb)(be.current,tt,Re,ce.strokeColor,st,ce.strokeDash)})}},ne=function(J){var de=J.object,xe=J.styles,ce=de.currIndex,Ne=(0,d.lT)(de,{x:-pe.current.x,y:-pe.current.y}),Oe=Ne.polygon;Oe&&Oe.visible&&Oe.group.forEach(function(we,Re){ce===Re?we.forEach(function(st,tt){(0,l.G5)(Te.current,st,tt===0?6:4,xe.strokeColor,3,"#1f4dd8"),we.length>1&&tt-1&&tt>-1){var ke=Oe.group[st][tt];ke&&(0,l.G5)(Te.current,ke,4,"#fff",5,xe)}else if(st>-1&&Ye>-1){var Be=(0,d.Iw)(Oe.group[st]);if(Be[Ye]){var it=Be[Ye],Ve=it.start,xt=it.end,_t=(0,d.Z4)({x:Ge.elementX+pe.current.x,y:Ge.elementY+pe.current.y},Ve,xt);_t&&(0,l.G5)(Te.current,_t,4,"#fff",5,xe)}}}},R=function(J){var de=J.prompt;if(de.creatingPrompt){var xe=z.XQ.CREATING,ce=z.Bt.CREATING;switch(de.creatingPrompt.type){case Z.Ae.Rect:{var Ne=de.creatingPrompt.startPoint,Oe=(0,d.A7)(Ne,{x:Ge.elementX,y:Ge.elementY},{width:Ge.elementW,height:Ge.elementH}),we=(0,d.ZU)(Oe,{x:-pe.current.x,y:-pe.current.y});(0,l.Mu)(Te.current,we,xe,2,[0],ce);break}case Z.Ae.Point:{if(!de.creatingPrompt.point)break;var Re=(0,d.aF)(de.creatingPrompt.point,{x:-pe.current.x,y:-pe.current.y});(0,l.G5)(Te.current,Re,4,de.creatingPrompt.isPositive?z.lz.POSITIVE:z.lz.NEGATIVE,2,"#fff")}case Z.Ae.Stroke:{if(!de.creatingPrompt.stroke||!de.creatingPrompt.radius)break;var st=(0,d.U8)(de.creatingPrompt.stroke,{x:-pe.current.x,y:-pe.current.y}),tt=de.creatingPrompt.radius*V.width/fe.width,Ye=de.creatingPrompt.isPositive?z.lz.POSITIVE:z.lz.NEGATIVE;(0,l.AT)(Te.current,st,Ye,tt);break}default:break}if(A.isRequiring&&de.activeRectWhileLoading){var ke=(0,d.ZU)(de.activeRectWhileLoading,{x:-pe.current.x,y:-pe.current.y});(0,l.HU)(Te.current,ke)}}de.promptsQueue&&de.promptsQueue.forEach(function(Be){if(Be.type===Z.Ae.Point){var it=(0,d.aF)(Be.point,{x:-pe.current.x,y:-pe.current.y});(0,l.G5)(Te.current,it,4,Be.isPositive?z.lz.POSITIVE:z.lz.NEGATIVE,2,"#fff")}})},P=function(J){var de={x:Ge.elementX,y:Ge.elementY};ht(function(xe){switch(xe.selectedSubTool){case n.jB.AutoSegmentByBox:xe.prompt.creatingPrompt={type:Z.Ae.Rect,startPoint:de,isPositive:!0};break;case n.jB.AutoSegmentByClick:xe.prompt.creatingPrompt={type:Z.Ae.Point,startPoint:de,point:de,isPositive:X(J)};break;case n.jB.AutoSegmentByStroke:{xe.prompt.creatingPrompt={type:Z.Ae.Stroke,startPoint:de,stroke:[de],radius:xe.brushSize,isPositive:X(J)};break}default:}})},ae=function(J){var de=J.object,xe=J.event;return Qe.AIAnnotation?(P(xe),!0):(xe==null?void 0:xe.button)===2?!1:!!x({object:de,contentMouse:Ge,setEditState:qe,setDrawData:ht})},Q=function(J){var de=J.event,xe=J.point,ce=J.basic;return ht(function(Ne){if(!Ne.creatingObject||Ne.activeObjectIndex>-1)if(Ne.activeObjectIndex=-1,Ne.AIAnnotation)switch(Ne.selectedSubTool){case n.jB.AutoSegmentByBox:Ne.prompt.creatingPrompt={type:Z.Ae.Rect,startPoint:xe,isPositive:!0};break;case n.jB.AutoSegmentByClick:Ne.prompt.creatingPrompt={type:Z.Ae.Point,startPoint:xe,point:xe,isPositive:X(de)};break;case n.jB.AutoSegmentByStroke:{Ne.prompt.creatingPrompt={type:Z.Ae.Stroke,startPoint:xe,stroke:[xe],radius:Ne.brushSize,isPositive:X(de)};break}}else Ne.creatingObject=t()({type:n.gr.Polygon,polygon:{visible:!0,group:[[xe]]},currIndex:0},ce),gt((0,C.cloneDeep)(Qe));else if(Ne.AIAnnotation)P(de);else{var Oe=Ne.creatingObject.currIndex,we=Ne.creatingObject.polygon;if(Oe>-1){var Re=we.group[Oe][0];(0,d.uN)(Re,Ge)?Ne.creatingObject.currIndex=-1:Ne.creatingObject.polygon&&(we.group[Oe].push(xe),gt((0,C.cloneDeep)(Ne)))}else we.group.push([xe]),Ne.creatingObject.currIndex=we.group.length-1,gt((0,C.cloneDeep)(Ne))}}),!0},ie=function(J){var de=J.event,xe=Qe.selectedSubTool===n.jB.AutoSegmentByStroke,ce=de.buttons===1||de.buttons===2;if(Qe.prompt.creatingPrompt&&xe&&ce){var Ne={x:Ge.elementX,y:Ge.elementY};return ht(function(Oe){var we,Re;(we=Oe.prompt.creatingPrompt)===null||we===void 0||(Re=we.stroke)===null||Re===void 0||Re.push(Ne)}),!0}return!!Qe.creatingObject},me=function(J){var de=J.event;if(Qe.AIAnnotation)return Ht("crosshair"),ie({event:de});var xe=A.focusEleType,ce=A.focusEleIndex,Ne=A.focusObjectIndex,Oe=A.focusPolygonInfo;if(Ne===Qe.activeObjectIndex&&xe===n.Yq.Polygon&&(Oe.pointIndex>-1?Ht("pointer"):Oe.lineIndex>-1?Ht("crosshair"):Ht("move")),xe===n.Yq.Polygon&&ce===0){var we=A.focusPolygonInfo,Re=we.index,st=we.pointIndex;if(A.startElementMovePoint&&Re>-1)return st>-1?(ht(function(tt){var Ye,ke;if(tt.activeObjectIndex>-1&&A.focusEleIndex>-1&&A.startElementMovePoint&&(Ye=tt.creatingObject)!==null&&Ye!==void 0&&(ke=Ye.polygon)!==null&&ke!==void 0&&ke.group[Re]){var Be,it,Ve=(Be=tt.creatingObject)===null||Be===void 0||(it=Be.polygon)===null||it===void 0?void 0:it.group[Re];Ve[st]=(0,d.E5)(Ge)}}),!0):(ht(function(tt){var Ye,ke;if(tt.activeObjectIndex>-1&&A.focusEleIndex>-1&&A.startElementMovePoint&&(Ye=tt.creatingObject)!==null&&Ye!==void 0&&(ke=Ye.polygon)!==null&&ke!==void 0&&ke.group[Re]){var Be,it,Ve=(Be=tt.creatingObject)===null||Be===void 0||(it=Be.polygon)===null||it===void 0?void 0:it.group[Re],xt=(0,d.s5)(Ve,A.startElementMovePoint,Ge);tt.creatingObject.polygon.group[Re]=xt,qe(function(_t){_t.startElementMovePoint&&(_t.startElementMovePoint.mousePoint={x:Ge.elementX,y:Ge.elementY})})}}),!0)}return!1},je=function(J){var de=J.event;return ie({event:de})},Ce=function(){if(Qe.prompt.promptsQueue&&Qe.prompt.promptsQueue.length>0)return Qe.prompt.promptsQueue;var J=!Qe.prompt.sessionId&&Qe.creatingObject;if(J){var de,xe,ce=((de=Qe.creatingObject)===null||de===void 0||(xe=de.polygon)===null||xe===void 0?void 0:xe.group.map(function(Oe){return Oe.reduce(function(we,Re){return we.concat([Re.x,Re.y])},[])}))||[],Ne={type:Z.Ae.Modify,isPositive:!0,polygons:ce};return[Ne]}else return[]},Se=function(){var J={x:Ge.elementX,y:Ge.elementY},de=Ce();switch(Qe.selectedSubTool){case n.jB.AutoSegmentByBox:{var xe,ce,Ne;if(!((xe=Qe.prompt.creatingPrompt)!==null&&xe!==void 0&&xe.startPoint))break;if(J.x===((ce=Qe.prompt.creatingPrompt.startPoint)===null||ce===void 0?void 0:ce.x)||J.y===((Ne=Qe.prompt.creatingPrompt.startPoint)===null||Ne===void 0?void 0:Ne.y)){ht(function(Ve){return Ve.prompt.creatingPrompt=void 0});break}var Oe=(0,d.A7)(Qe.prompt.creatingPrompt.startPoint,J,{width:Ge.elementW,height:Ge.elementH}),we={type:Z.Ae.Rect,isPositive:!0,rect:Oe};Et(function(Ve){Ve.prompt.activeRectWhileLoading=Oe});var Re=[].concat(w()(de),[we]);rt==null||rt({type:n.gr.Polygon,drawData:Qe,promptsQueue:Re});break}case n.jB.AutoSegmentByClick:{var st;if(!(0,d.jt)(Ge)||!(0,d.jt)(ge)||!((st=Qe.prompt.creatingPrompt)!==null&&st!==void 0&&st.point))break;var tt={type:Z.Ae.Point,isPositive:Qe.prompt.creatingPrompt.isPositive,point:Qe.prompt.creatingPrompt.point},Ye=[].concat(w()(de),[tt]);rt==null||rt({type:n.gr.Polygon,drawData:Qe,promptsQueue:Ye});break}case n.jB.AutoSegmentByStroke:{var ke;if(!((ke=Qe.prompt.creatingPrompt)!==null&&ke!==void 0&&ke.stroke))break;var Be={type:Z.Ae.Stroke,isPositive:Qe.prompt.creatingPrompt.isPositive,stroke:Qe.prompt.creatingPrompt.stroke,radius:Qe.brushSize},it=[].concat(w()(de),[Be]);rt==null||rt({type:n.gr.Polygon,drawData:Qe,promptsQueue:it});break}}},We=function(J){var de=J.object;if(Qe.AIAnnotation)Se();else{var xe,ce,Ne=A.startRectResizeAnchor||A.startElementMovePoint,Oe=A.startElementMovePoint&&((xe=A.startElementMovePoint.initPoint)===null||xe===void 0?void 0:xe.x)===Ge.elementX&&((ce=A.startElementMovePoint.initPoint)===null||ce===void 0?void 0:ce.y)===Ge.elementY,we=Oe&&A.focusPolygonInfo.index>-1&&A.focusPolygonInfo.pointIndex>-1;if(we){var Re,st=(0,C.cloneDeep)(de),tt=A.focusPolygonInfo,Ye=tt.index,ke=tt.pointIndex,Be=(Re=st.polygon)===null||Re===void 0?void 0:Re.group[Ye];Be&&Ye>-1&&ke>-1&&Be.length>=3&&Be.splice(ke,1),$e(st,Qe.activeObjectIndex)}else Ne&&$e(de,Qe.activeObjectIndex);qe(function(it){it.startRectResizeAnchor=void 0,it.startElementMovePoint=void 0})}return!0},re=function(J){var de=J.object;if(Qe.AIAnnotation)Se();else if(de&&de.currIndex===-1){var xe=de.polygon,ce=de.type,Ne=de.hidden,Oe=de.labelId,we=de.status,Re=de.color,st={polygon:xe,type:ce,hidden:Ne,labelId:Oe,status:we,color:Re};Xe(st)}return!0};return{renderObject:ye,renderCreatingObject:ne,renderEditingObject:H,renderPrompt:R,startEditingWhenMouseDown:ae,startCreatingWhenMouseDown:Q,updateEditingWhenMouseMove:me,updateCreatingWhenMouseMove:je,finishEditingWhenMouseUp:We,finishCreatingWhenMouseUp:re}},$=L,D=function(U){var A=U.canvasRef,V=function(gt){var Ht=gt.object,$e=gt.color,Xe=gt.isFocus,rt=Ht.polyline;if(rt&&rt.visible&&rt.lineType){var Ke=rt.lineType,ye=rt.color||$e,ne=Xe?(0,N.a7)(ye,z.rl.FOCUS):(0,N.a7)(ye,z.rl.DEFAULT);rt==null||rt.group.forEach(function(H){(0,l.bT)(A.current,H,ne,Ke)})}},fe=function(){},pe=function(){},ge=function(){},be=function(){return!1},Te=function(){return!1},Ge=function(){return!1},qe=function(){return!1},Qe=function(){return!1},ht=function(){return!1};return{renderObject:V,renderCreatingObject:fe,renderEditingObject:pe,renderPrompt:ge,startEditingWhenMouseDown:be,startCreatingWhenMouseDown:Te,updateEditingWhenMouseMove:Ge,updateCreatingWhenMouseMove:qe,finishEditingWhenMouseUp:Qe,finishCreatingWhenMouseUp:ht}},T=D,j=function(U){var A=U.contentMouse,V=U.imagePos,fe=U.canvasRef,pe=U.activeCanvasRef,ge=U.editState,be=U.setEditState,Te=U.drawData,Ge=U.setDrawData,qe=U.updateMouseCursor,Qe=U.updateObject,ht=U.addObject,Et=U.getAnnotColor,gt=U.displayOptionsResult,Ht=U.categories,$e=U.onAiAnnotation,Xe=function(me){var je=me.object,Ce=me.color,Se=me.styles,We=me.isFocus,re=je.rect;if(re&&re.visible){var se=Se.strokeDash,J=Se.strokeColor,de=Se.fillColor,xe=Se.thickness,ce=Te.selectedModel[Te.selectedTool];if(Te.isBatchEditing){if(je.status===Z.TK.Unchecked&&(!ge.isCtrlPressed||ce===n.HE.IVP))return;ge.isCtrlPressed&&ce===n.HE.Detection&&(je.status!==Z.TK.Unchecked?(J=(0,N.a7)(Ce,.8),se=[2],xe=1.5):de=We?(0,N.a7)(Ce,z.mh.DEFAULT):(0,N.a7)(Ce,z.mh.CTRL_TO_SELECT))}if((0,l.Mu)(fe.current,re,J,xe,se,de),gt!=null&>.showBoxText){var Ne,Oe=((Ne=Ht.find(function(Re){return Re.id===je.labelId}))===null||Ne===void 0?void 0:Ne.name)||"",we=je!=null&&je.conf&&je.conf>0&&je.conf<1?"".concat(Oe," (").concat(je.conf.toFixed(3),")"):Oe;(0,l.yU)(fe.current,we||"",13,{x:re.x+6,y:re.y+6},Ce,!0,"left")}Te.isBatchEditing&&ge.isCtrlPressed&&We&&(0,l.HU)(pe.current,re,"#000",.6)}},rt=function(me){var je=me.object,Ce=me.styles,Se=je.startPoint;if(Se){var We=(0,d.A7)(Se,{x:A.elementX,y:A.elementY},{width:A.elementW,height:A.elementH}),re=(0,d.ZU)(We,{x:-V.current.x,y:-V.current.y});(0,l.Mu)(pe.current,re,Ce.strokeColor,Ce.thickness,Ce.strokeDash,Ce.fillColor)}},Ke=function(me){var je=me.object,Ce=me.styles,Se=je.rect;Se&&Se.visible&&((0,l.Mu)(pe.current,Se,Ce.strokeColor,Ce.thickness,Ce.strokeDash,Ce.fillColor),W(pe.current,Se))},ye=function(me){var je=me.prompt;if(je.creatingPrompt){var Ce=je.creatingPrompt.isPositive?z.CJ.POSITIVE:z.CJ.NEGATIVE,Se=je.creatingPrompt.isPositive?z.lz.POSITIVE:z.lz.NEGATIVE;switch(je.creatingPrompt.type){case Z.Ae.Rect:{var We=je.creatingPrompt.startPoint,re=(0,d.A7)(We,{x:A.elementX,y:A.elementY},{width:A.elementW,height:A.elementH}),se=(0,d.ZU)(re,{x:-V.current.x,y:-V.current.y});(0,l.Mu)(pe.current,se,Ce,2,[0],Se);break}case Z.Ae.Point:{if(!je.creatingPrompt.point)break;var J=(0,d.aF)(je.creatingPrompt.point,{x:-V.current.x,y:-V.current.y});(0,l.G5)(pe.current,J,4,je.creatingPrompt.isPositive?z.lz.POSITIVE:z.lz.NEGATIVE,2,"#fff")}default:break}}je.promptsQueue&&je.promptsQueue.forEach(function(de){switch(de.type){case Z.Ae.Rect:{var xe=(0,d.ZU)(de.rect,{x:-V.current.x,y:-V.current.y});(0,l.Mu)(pe.current,xe,de.isPositive?z.CJ.POSITIVE:z.CJ.NEGATIVE,2,[0],de.isPositive?z.lz.POSITIVE:z.lz.NEGATIVE);break}case Z.Ae.Point:{var ce=(0,d.aF)(de.point,{x:-V.current.x,y:-V.current.y});(0,l.G5)(pe.current,ce,4,de.isPositive?z.lz.POSITIVE:z.lz.NEGATIVE,2,"#fff");break}}})},ne=function(me){var je=me.object,Ce=me.event;return(Ce==null?void 0:Ce.button)===2?!1:!!x({object:je,contentMouse:A,setEditState:be,setDrawData:Ge})},H=function(me){var je=me.point,Ce=me.basic;return Ge(function(Se){var We=Se.selectedModel[Se.selectedTool];Se.AIAnnotation&&We===n.HE.IVP?(Se.activeObjectIndex=-1,Se.prompt.creatingPrompt={type:Z.Ae.Rect,startPoint:je,point:je,isPositive:Se.selectedSubTool!==n.jB.NegativeVisualPrompt}):(Se.activeObjectIndex=-1,Se.creatingObject=t()({type:n.gr.Rectangle,startPoint:je},Ce))}),!0},R=function(me){var je=me.object;return O({object:je,editState:ge,contentMouse:A,drawData:Te,setDrawData:Ge,updateMouseCursor:qe})},P=function(me){var je=me.object;return!!je},ae=function(me){var je=me.object,Ce=ge.startRectResizeAnchor||ge.startElementMovePoint;return Ce&&Qe(je,Te.activeObjectIndex),be(function(Se){Se.startRectResizeAnchor=void 0,Se.startElementMovePoint=void 0}),!0},Q=function(me){var je,Ce=me.object,Se={x:A.elementX,y:A.elementY};if(Te.AIAnnotation&&Te.selectedModel[Te.selectedTool]===n.HE.IVP&&(je=Te.prompt.creatingPrompt)!==null&&je!==void 0&&je.startPoint){var We=Te.prompt.creatingPrompt.startPoint;if(Se.x===We.x||Se.y===We.y)return Ge(function(ce){ce.prompt.creatingPrompt=void 0}),!0;var re=(0,d.A7)(We,Se,{width:A.elementW,height:A.elementH}),se={type:Z.Ae.Rect,isPositive:Te.prompt.creatingPrompt.isPositive,rect:re},J=[].concat(w()(Te.prompt.promptsQueue||[]),[se]);return $e==null||$e({type:n.gr.Rectangle,drawData:Te,promptsQueue:J}),!0}if(!Ce||!Ce.startPoint)return!1;if(A.elementX===Ce.startPoint.x||A.elementY===Ce.startPoint.y)return Ge(function(ce){ce.creatingObject=void 0}),!0;var de=(0,d.A7)(Ce.startPoint,{x:A.elementX,y:A.elementY},{width:A.elementW,height:A.elementH}),xe={type:n.gr.Rectangle,labelId:Ce.labelId,hidden:!1,rect:t()({visible:!0},de),conf:1,status:Z.TK.Commited,color:Et(Ce.labelId)};return ht(xe),!0};return{renderObject:Xe,renderCreatingObject:rt,renderEditingObject:Ke,renderPrompt:ye,startEditingWhenMouseDown:ne,startCreatingWhenMouseDown:H,updateEditingWhenMouseMove:R,updateCreatingWhenMouseMove:P,finishEditingWhenMouseUp:ae,finishCreatingWhenMouseUp:Q}},G=j,k=function(U,A,V,fe,pe){var ge=arguments.length>5&&arguments[5]!==void 0?arguments[5]:4,be=A.lines,Te=A.points;if(!pe)for(var Ge=0;Ge*2400?4:2)}},rt=function(me){var je=me.object,Ce=me.styles,Se=je.startPoint;if(Se){var We=(0,d.A7)(Se,{x:pe.elementX,y:pe.elementY},{width:pe.elementW,height:pe.elementH}),re=(0,d.ZU)(We,{x:-ge.current.x,y:-ge.current.y}),se=n.v_.points,J=n.v_.lines,de=n.v_.pointColors,xe=n.v_.pointNames,ce=(0,d.el)(se,xe,de,fe,V),Ne=(0,d.cU)(ce,re);(0,l.Mu)(Te.current,re,Ce.strokeColor,Ce.thickness),Ne.forEach(function(tt){(0,l.G5)(Te.current,{x:tt.x,y:tt.y},4,Ce.strokeColor,3,"#1f4dd8")});for(var Oe=0;Oe*2-1&&A.focusEleIndex>-1&&A.startElementMovePoint&&(Se=Ce.creatingObject)!==null&&Se!==void 0&&(We=Se.keypoints)!==null&&We!==void 0&&(re=We.points)!==null&&re!==void 0&&re[A.focusEleIndex]){var se,J,de,xe=(se=Ce.creatingObject)===null||se===void 0||(J=se.keypoints)===null||J===void 0||(de=J.points)===null||de===void 0?void 0:de[A.focusEleIndex],ce=(0,d.E5)(pe),Ne=ce.x,Oe=ce.y;xe.x=Ne,xe.y=Oe}}),!0):!1)},P=function(me){var je=me.object;return!!je},ae=function(me){var je=me.object,Ce=A.startRectResizeAnchor||A.startElementMovePoint;if(Ce&>(je,qe.activeObjectIndex),qe.AIAnnotation){var Se,We;A.startElementMovePoint&&(((Se=A.startElementMovePoint.mousePoint)===null||Se===void 0?void 0:Se.x)!==pe.elementX||((We=A.startElementMovePoint.mousePoint)===null||We===void 0?void 0:We.y)!==pe.elementY)&&(Ht==null||Ht({type:n.gr.Skeleton,drawData:qe}))}return Ge(function(re){re.startRectResizeAnchor=void 0,re.startElementMovePoint=void 0}),!0},Q=function(me){var je,Ce,Se=me.object;if(!Se||!Se.startPoint)return!1;if(pe.elementX===((je=Se.startPoint)===null||je===void 0?void 0:je.x)||pe.elementY===((Ce=Se.startPoint)===null||Ce===void 0?void 0:Ce.y))return Qe(function(Oe){return Oe.creatingObject=void 0}),!0;var We=(0,d.A7)(Se.startPoint,{x:pe.elementX,y:pe.elementY},{width:pe.elementW,height:pe.elementH}),re=n.v_.points,se=n.v_.lines,J=n.v_.pointColors,de=n.v_.pointNames,xe=(0,d.el)(re,de,J,fe,V),ce=(0,d.cU)(xe,We),Ne={type:n.gr.Skeleton,labelId:Se.labelId,hidden:!1,color:Se.color,rect:t()({visible:!0},We),keypoints:{points:ce,lines:se},conf:1,status:Z.TK.Commited};return Et(Ne),!0};return{renderObject:Xe,renderCreatingObject:rt,renderEditingObject:Ke,renderPrompt:ye,startEditingWhenMouseDown:ne,startCreatingWhenMouseDown:H,updateEditingWhenMouseMove:R,updateCreatingWhenMouseMove:P,finishEditingWhenMouseUp:ae,finishCreatingWhenMouseUp:Q}},Y=te,q;(function(_){})(q||(q={}));var le=function(U){var A,V=G(U),fe=$(U),pe=Y(U),ge=(0,c.ZP)(U),be=g(U),Te=h(U),Ge=T(U),qe=(A={},s()(A,n.gr.Rectangle,V),s()(A,n.gr.Polygon,fe),s()(A,n.gr.Skeleton,pe),s()(A,n.gr.Mask,ge),s()(A,n.gr.Matting,be),s()(A,n.gr.Point,Te),s()(A,n.gr.Polyline,Ge),s()(A,n.gr.Custom,V),s()(A,n.gr.Classification,V),A);return{objectHooksMap:qe}},X=function(U){return!(U.button===2||U.button===0&&U.altKey)},W=function(U,A){var V=(0,d.Qo)(A).map(function(fe){return fe.position});V.forEach(function(fe){var pe=(0,d.Ak)(fe,{width:10,height:10}),ge=(0,d.my)(pe);(0,l.Mu)(U,ge,"rgba(0, 0, 0, 0.8)",3,[0],"#fff")})},x=function(U){var A=U.object,V=U.contentMouse,fe=U.setEditState,pe=U.setDrawData,ge=(0,d.o7)(V,A),be=ge.focusEleIndex,Te=ge.focusEleType,Ge=ge.focusPolygonInfo;if(Te===n.Yq.None)return!1;var qe=A.rect,Qe=A.keypoints,ht=A.polygon,Et={x:V.elementX,y:V.elementY};return fe(function(gt){switch(Te){case n.Yq.Rect:{if(qe){var Ht=(0,d.Oh)(qe,Et);Ht?gt.startRectResizeAnchor={type:Ht.type,position:(0,d.l1)(qe,Ht.type)}:gt.startElementMovePoint={topLeftPoint:{x:qe.x,y:qe.y},mousePoint:Et}}break}case n.Yq.Circle:{if(Qe){var $e=Qe.points[be];gt.startElementMovePoint={topLeftPoint:{x:$e.x,y:$e.y},mousePoint:Et}}break}case n.Yq.Polygon:{var Xe=Ge.lineIndex,rt=Ge.index;if(ht)if(Xe>-1){var Ke=(0,d.Iw)(ht.group[rt])[Xe];if(Ke){var ye=(0,d.Z4)(Et,Ke.start,Ke.end);pe(function(ne){var H=ne.objectList[ne.activeObjectIndex];H.polygon&&H.polygon.group[rt].splice(Xe+1,0,ye),ne.creatingObject=t()({},H)}),gt.focusPolygonInfo.pointIndex=Xe+1,gt.startElementMovePoint={topLeftPoint:{x:0,y:0},mousePoint:ye,initPoint:ye}}}else gt.startElementMovePoint={topLeftPoint:{x:0,y:0},mousePoint:Et,initPoint:Et};break}}}),!0},O=function(U){var A=U.object,V=U.editState,fe=U.contentMouse,pe=U.drawData,ge=U.setDrawData,be=U.updateMouseCursor,Te=V.focusObjectIndex,Ge=V.focusEleIndex,qe=V.focusEleType,Qe=V.startRectResizeAnchor;if(Te===pe.activeObjectIndex&&qe===n.Yq.Rect&&A.rect){var ht=(0,d.Oh)(A.rect,{x:fe.elementX,y:fe.elementY});ht?be("resize",ht.type):be("move")}if(qe===n.Yq.Rect&&Ge===0){if(Qe)return ge(function(Et){if(Et.activeObjectIndex>-1&&V.startRectResizeAnchor&&Et.creatingObject&&Et.creatingObject.rect){var gt=(0,d.XR)(Et.creatingObject.rect,V.startRectResizeAnchor,fe);Et.creatingObject.rect=t()(t()({},Et.creatingObject.rect),gt)}}),!0;if(V.startElementMovePoint)return ge(function(Et){if(Et.activeObjectIndex>-1&&V.startElementMovePoint&&Et.creatingObject&&Et.creatingObject.rect){var gt=(0,d.i$)(Et.creatingObject.rect,V.startElementMovePoint,fe);Et.creatingObject.rect=t()(t()({},Et.creatingObject.rect),gt)}}),!0}return!1}},67761:function(b,y,e){"use strict";e.d(y,{G9:function(){return j},ei:function(){return G}});var a=e(34485),t=e.n(a),o=e(63900),s=e.n(o),n=e(39378),d=e.n(n),l=e(17410),c=e(34095),m=e(50910),g=e(14464),M=e(46134),h=e(81179),S=e(87478),w=function(Y){for(var q=Y.length,le=0,X=0,W=!0,x=Array(q*6),O=0;O2&&(X-=Y[O-2]),W=!0;W;){var _=X&31;X>>=5,W=!!(X!==-1&&_&16||X!==0&&!(_&16)),W&&(_|=32),_+=48,x[le]=String.fromCharCode(_),le+=1}return x.join("")},C=function(Y){for(var q=0,le=[];q2&&(X+=le[le.length-2]),le.push(X)}return le},z=function(Y,q){for(var le=new Array(q),X=0,W=0,x=0;x0&&x.forEach(function(_){var U=(0,M.U8)(_.points,{x:-q.x,y:-q.y});(_.tool===l.jB.PenAdd||_.tool===l.jB.PenErase)&&(0,h.HT)(Y,U,_.positive,(0,g.a7)(W,c.s_.CREATING),"transparent"),(_.tool===l.jB.BrushAdd||_.tool===l.jB.BrushErase)&&(0,h.T8)(Y,U,_.positive,W,c.s_.CREATING,_.radius*le.width/X.width)}),O.restore()},D=function(Y,q,le,X,W,x,O){if(Y){var _=q.maskStep,U=q.tempMaskSteps,A=q.maskCanvasElement,V=Y.getContext("2d");if(!V)return null;if(A&&(V.globalAlpha=c.s_.CREATING,(0,h.AE)(Y,A,{x:le.x,y:le.y,width:x.width,height:x.height}),V.globalAlpha=1),$(Y,le,x,O,X,U),_&&_.points.length>0){var fe=_.tool===l.jB.PenAdd||_.tool===l.jB.BrushAdd?c.Bt.CREATING_POSITIVE:c.Bt.CREATING_NEGATIVE,pe=(0,M.U8)(_.points,{x:-le.x,y:-le.y});(_.tool===l.jB.PenAdd||_.tool===l.jB.PenErase)&&((0,h.G5)(Y,pe[0],6,(0,g.a7)(fe,c.rl.CREATING),3,c.XQ.CREATING),pe.length>0&&((0,h.MC)(Y,pe,(0,g.a7)(fe,c.rl.CREATING),2.5,[0]),(0,h.pS)(Y,pe[pe.length-1],W,(0,g.a7)(fe,c.rl.CREATING_LINE),2.5,[5]))),(_.tool===l.jB.BrushAdd||_.tool===l.jB.BrushErase||_.tool===l.jB.AutoSegmentByStroke)&&pe.length>1&&(0,h.AT)(Y,pe,(0,g.a7)(fe,c.s_.CREATING),_.radius*x.width/O.width)}}},T=function(Y,q){var le=Y.getContext("2d",{willReadFrequently:!0});if(!le)return null;for(var X=le.getImageData(0,0,Y.width,Y.height),W=hexToRgbArray(q),x=X.data.length/4;x--;)X.data[x*4+3]>0&&(X.data[x*4]=W[0],X.data[x*4+1]=W[1],X.data[x*4+2]=W[2],X.data[x*4+3]=255);return clearCanvas(Y),le.putImageData(X,0,0),Y},j=function(Y,q,le,X){var W=document.createElement("canvas"),x=W.getContext("2d",{willReadFrequently:!0});if(!x||!le)return null;W.width=q.width,W.height=q.height;var O=le.map(function(pe){return s()(s()({},pe),{},{points:pe.points.map(function(ge){return(0,M.Ap)(ge,Y,q)})})});X&&(0,h.AE)(W,X,{x:0,y:0,width:q.width,height:q.height}),$(W,{x:0,y:0},q,q,"#fff",O);for(var _=x.getImageData(0,0,q.width,q.height),U=0,A=new Array(_.data.length/4).fill(0),V=_.data.length/4;V--;){var fe=0;_.data[V*4+3]>0&&(U++,fe=1,A[V]=1),_.data[V*4]=_.data[V*4+1]=_.data[V*4+2]=_.data[V*4+3]=fe}return U>0?L(A):""},G=function(Y,q,le){var X=q.width,W=q.height,x=document.createElement("canvas"),O=x.getContext("2d");if(x.width=X,x.height=W,!O)return null;for(var _=O.createImageData(X,W),U=(0,g.dX)(le),A=N(Y,Math.ceil(X)*Math.ceil(W)),V=_.data.length/4;V--;)A[V]>0&&(_.data[V*4]=U[0],_.data[V*4+1]=U[1],_.data[V*4+2]=U[2],_.data[V*4+3]=255);return O.putImageData(_,0,0),x},k=function(Y){var q=Y.editState,le=Y.clientSize,X=Y.naturalSize,W=Y.contentMouse,x=Y.imagePos,O=Y.containerMouse,_=Y.canvasRef,U=Y.activeCanvasRef,A=Y.drawData,V=Y.setDrawData,fe=Y.setDrawDataWithHistory,pe=Y.updateHistory,ge=Y.onAiAnnotation,be=Y.updateMouseCursor,Te=function(H){var R=H.object,P=H.styles,ae=R.maskCanvasElement,Q=_.current.getContext("2d"),ie=Q.globalAlpha;Q.globalAlpha=Q.globalAlpha*P.maskAlpha,(0,h.AE)(_.current,ae,{x:x.current.x,y:x.current.y,width:le.width,height:le.height}),Q.globalAlpha=ie},Ge=function(H){var R=H.object,P=H.color;q.hideCreatingObject||D(U.current,R,x.current,P,{x:O.elementX,y:O.elementY},le,X)},qe=function(H){var R=H.object,P=H.color;q.hideCreatingObject||D(U.current,R,x.current,P,{x:O.elementX,y:O.elementY},le,X)},Qe=function(H){var R=H.prompt,P=A.selectedModel[A.selectedTool];if(R.creatingPrompt)if(P===l.HE.IVP){var ae=R.creatingPrompt.isPositive?c.CJ.POSITIVE:c.CJ.NEGATIVE,Q=R.creatingPrompt.isPositive?c.lz.POSITIVE:c.lz.NEGATIVE;switch(R.creatingPrompt.type){case m.Ae.Rect:{var ie=R.creatingPrompt.startPoint,me=(0,M.A7)(ie,{x:W.elementX,y:W.elementY},{width:W.elementW,height:W.elementH}),je=(0,M.ZU)(me,{x:-x.current.x,y:-x.current.y});(0,h.Mu)(U.current,je,ae,2,[0],Q);break}case m.Ae.Point:{if(!R.creatingPrompt.point)break;var Ce=(0,M.aF)(R.creatingPrompt.point,{x:-x.current.x,y:-x.current.y});(0,h.G5)(U.current,Ce,4,R.creatingPrompt.isPositive?c.lz.POSITIVE:c.lz.NEGATIVE,2,"#fff")}default:break}}else{var Se=c.XQ.CREATING,We=c.Bt.CREATING;switch(R.creatingPrompt.type){case m.Ae.Rect:{var re=R.creatingPrompt.startPoint,se=(0,M.A7)(re,{x:W.elementX,y:W.elementY},{width:W.elementW,height:W.elementH}),J=(0,M.ZU)(se,{x:-x.current.x,y:-x.current.y});(0,h.Mu)(U.current,J,Se,2,[0],We);break}case m.Ae.Point:{if(!R.creatingPrompt.point)break;var de=(0,M.aF)(R.creatingPrompt.point,{x:-x.current.x,y:-x.current.y});(0,h.G5)(U.current,de,4,R.creatingPrompt.isPositive?c.lz.POSITIVE:c.lz.NEGATIVE,2,"#fff")}case m.Ae.EdgeStitch:case m.Ae.Stroke:{if(!R.creatingPrompt.stroke||!R.creatingPrompt.radius)break;var xe=(0,M.U8)(R.creatingPrompt.stroke,{x:-x.current.x,y:-x.current.y}),ce=R.creatingPrompt.radius*le.width/X.width,Ne=R.creatingPrompt.type===m.Ae.EdgeStitch?(0,g.a7)(Se,c.s_.CREATING):R.creatingPrompt.isPositive?c.lz.POSITIVE:c.lz.NEGATIVE;(0,h.AT)(U.current,xe,Ne,ce);break}default:break}if(q.isRequiring&&R.activeRectWhileLoading){var Oe=(0,M.ZU)(R.activeRectWhileLoading,{x:-x.current.x,y:-x.current.y});(0,h.HU)(U.current,Oe)}}R.promptsQueue&&(P===l.HE.IVP?R.promptsQueue.forEach(function(we){switch(we.type){case m.Ae.Rect:{var Re=(0,M.ZU)(we.rect,{x:-x.current.x,y:-x.current.y});(0,h.Mu)(U.current,Re,we.isPositive?c.CJ.POSITIVE:c.CJ.NEGATIVE,2,[0],we.isPositive?c.lz.POSITIVE:c.lz.NEGATIVE);break}case m.Ae.Point:{var st=(0,M.aF)(we.point,{x:-x.current.x,y:-x.current.y});(0,h.G5)(U.current,st,4,we.isPositive?c.lz.POSITIVE:c.lz.NEGATIVE,2,"#fff");break}}}):R.promptsQueue.forEach(function(we){if(we.type===m.Ae.Point){var Re=(0,M.aF)(we.point,{x:-x.current.x,y:-x.current.y});(0,h.G5)(U.current,Re,4,we.isPositive?c.lz.POSITIVE:c.lz.NEGATIVE,2,"#fff")}}))},ht=function(H){var R={x:W.elementX,y:W.elementY};V(function(P){switch(P.selectedSubTool){case l.jB.PenAdd:case l.jB.PenErase:case l.jB.BrushAdd:case l.jB.BrushErase:if(P.creatingObject){if(P.creatingObject.maskStep){if(P.creatingObject.maskStep.points.push(R),[l.jB.PenAdd,l.jB.PenErase].includes(P.selectedSubTool)&&(0,M.uN)(P.creatingObject.maskStep.points[0],W)){var ae;(ae=P.creatingObject.tempMaskSteps)===null||ae===void 0||ae.push(P.creatingObject.maskStep),P.creatingObject.maskStep=void 0}}else P.creatingObject.maskStep={tool:P.selectedSubTool,positive:P.selectedSubTool===l.jB.PenAdd||P.selectedSubTool===l.jB.BrushAdd,points:[R],radius:P.brushSize};[l.jB.BrushAdd,l.jB.BrushErase].includes(P.selectedSubTool)||pe((0,n.cloneDeep)(P))}P.prompt.sessionId=void 0;break;case l.jB.AutoSegmentByBox:P.prompt.creatingPrompt={type:m.Ae.Rect,startPoint:R,isPositive:!0};break;case l.jB.AutoSegmentByClick:P.prompt.creatingPrompt={type:m.Ae.Point,startPoint:R,point:R,isPositive:(0,S.hF)(H)};break;case l.jB.AutoSegmentByStroke:P.prompt.creatingPrompt={type:m.Ae.Stroke,startPoint:R,stroke:[R],radius:P.brushSize,isPositive:(0,S.hF)(H)};break;case l.jB.AutoEdgeStitching:P.prompt.creatingPrompt={type:m.Ae.EdgeStitch,startPoint:R,stroke:[R],radius:P.brushSize,isPositive:!0};default:break}})},Et=function(H){var R=H.event;return ht(R),!0},gt=function(H){var R=H.event,P=H.object,ae=H.point,Q=H.basic;return P?ht(R):V(function(ie){switch(ie.activeObjectIndex=-1,ie.selectedSubTool){case l.jB.PenAdd:case l.jB.PenErase:case l.jB.BrushAdd:case l.jB.BrushErase:ie.creatingObject=s()(s()({},Q),{},{type:l.gr.Mask,startPoint:ae,maskStep:{tool:ie.selectedSubTool,positive:ie.selectedSubTool===l.jB.PenAdd||ie.selectedSubTool===l.jB.BrushAdd,points:[ae],radius:ie.brushSize},tempMaskSteps:[]}),ie.prompt.sessionId=void 0;break;case l.jB.AutoSegmentByBox:ie.prompt.creatingPrompt={type:m.Ae.Rect,startPoint:ae,isPositive:!0};break;case l.jB.AutoSegmentByClick:ie.prompt.creatingPrompt={type:m.Ae.Point,startPoint:ae,point:ae,isPositive:(0,S.hF)(R)};break;case l.jB.AutoSegmentByStroke:ie.prompt.creatingPrompt={type:m.Ae.Stroke,startPoint:ae,stroke:[ae],radius:ie.brushSize,isPositive:(0,S.hF)(R)};break;case l.jB.AutoEdgeStitching:ie.prompt.creatingPrompt={type:m.Ae.EdgeStitch,startPoint:ae,stroke:[ae],radius:ie.brushSize,isPositive:!0};break;case l.jB.PositiveVisualPrompt:case l.jB.NegativeVisualPrompt:ie.prompt.creatingPrompt={type:m.Ae.Rect,startPoint:ae,point:ae,isPositive:ie.selectedSubTool!==l.jB.NegativeVisualPrompt};default:break}}),!0},Ht=function(H){var R=H.event,P=H.object;if(P||A.prompt.creatingPrompt){be("crosshair");var ae=[l.jB.BrushAdd,l.jB.BrushErase,l.jB.PenAdd,l.jB.PenErase,l.jB.AutoSegmentByStroke,l.jB.AutoEdgeStitching].includes(A.selectedSubTool),Q=R.buttons===1||R.buttons===2;if(ae&&Q){var ie={x:W.elementX,y:W.elementY},me=[l.jB.AutoSegmentByStroke,l.jB.AutoEdgeStitching].includes(A.selectedSubTool);V(function(je){if(me){var Ce,Se;(Ce=je.prompt.creatingPrompt)===null||Ce===void 0||(Se=Ce.stroke)===null||Se===void 0||Se.push(ie)}else{var We,re;(We=je.creatingObject)===null||We===void 0||(re=We.maskStep)===null||re===void 0||re.points.push(ie)}})}return!0}return!1},$e=function(H){var R=H.object,P=H.event;return Ht({object:R,event:P})},Xe=function(H){var R=H.object,P=H.event;return Ht({object:R,event:P})},rt=function(){if(!(!A.creatingObject&&!A.prompt.creatingPrompt)){var H={x:W.elementX,y:W.elementY},R=A.selectedModel[A.selectedTool];switch(A.selectedSubTool){case l.jB.BrushAdd:case l.jB.BrushErase:case l.jB.PenAdd:case l.jB.PenErase:{fe(function(Re){if(Re.creatingObject&&Re.creatingObject.tempMaskSteps&&Re.creatingObject.maskStep&&Re.creatingObject.maskStep.points.length>1&&([l.jB.BrushAdd,l.jB.BrushErase].includes(Re.selectedSubTool)||[l.jB.PenAdd,l.jB.PenErase].includes(Re.selectedSubTool)&&(0,M.uN)(Re.creatingObject.maskStep.points[0],W))){var st;(st=Re.creatingObject.tempMaskSteps)===null||st===void 0||st.push(Re.creatingObject.maskStep),Re.creatingObject.maskStep=void 0}Re.prompt.sessionId=void 0});break}case l.jB.AutoSegmentByBox:{var P,ae,Q;if(!((P=A.prompt.creatingPrompt)!==null&&P!==void 0&&P.startPoint))break;if(H.x===((ae=A.prompt.creatingPrompt.startPoint)===null||ae===void 0?void 0:ae.x)||H.y===((Q=A.prompt.creatingPrompt.startPoint)===null||Q===void 0?void 0:Q.y)){V(function(Re){return Re.prompt.creatingPrompt=void 0});break}var ie=(0,M.A7)(A.prompt.creatingPrompt.startPoint,H,{width:W.elementW,height:W.elementH}),me={type:m.Ae.Rect,isPositive:!0,rect:ie};fe(function(Re){Re.prompt.activeRectWhileLoading=ie});var je=A.prompt.promptsQueue?[].concat(t()(A.prompt.promptsQueue),[me]):[me];ge==null||ge({type:l.gr.Mask,drawData:A,promptsQueue:je});break}case l.jB.AutoSegmentByClick:{var Ce;if(!(0,M.jt)(W)||!(0,M.jt)(O)||!((Ce=A.prompt.creatingPrompt)!==null&&Ce!==void 0&&Ce.point))break;var Se={type:m.Ae.Point,isPositive:A.prompt.creatingPrompt.isPositive,point:A.prompt.creatingPrompt.point},We=A.prompt.promptsQueue?[].concat(t()(A.prompt.promptsQueue),[Se]):[Se];ge==null||ge({type:l.gr.Mask,drawData:A,promptsQueue:We});break}case l.jB.AutoSegmentByStroke:{var re;if(!((re=A.prompt.creatingPrompt)!==null&&re!==void 0&&re.stroke))break;var se={type:m.Ae.Stroke,isPositive:A.prompt.creatingPrompt.isPositive,stroke:A.prompt.creatingPrompt.stroke,radius:A.brushSize},J=A.prompt.promptsQueue?[].concat(t()(A.prompt.promptsQueue),[se]):[se];ge==null||ge({type:l.gr.Mask,drawData:A,promptsQueue:J});break}case l.jB.AutoEdgeStitching:{var de;if(!((de=A.prompt.creatingPrompt)!==null&&de!==void 0&&de.stroke))break;ge==null||ge({type:l.gr.Mask,drawData:A});break}case l.jB.PositiveVisualPrompt:case l.jB.NegativeVisualPrompt:{var xe;if(R!==l.HE.IVP||!((xe=A.prompt.creatingPrompt)!==null&&xe!==void 0&&xe.startPoint))break;var ce=A.prompt.creatingPrompt.startPoint;if(H.x===ce.x||H.y===ce.y){V(function(Re){return Re.prompt.creatingPrompt=void 0});break}else{var Ne=(0,M.A7)(ce,H,{width:W.elementW,height:W.elementH}),Oe={type:m.Ae.Rect,isPositive:A.prompt.creatingPrompt.isPositive,rect:Ne},we=[].concat(t()(A.prompt.promptsQueue||[]),[Oe]);ge==null||ge({type:l.gr.Mask,drawData:A,promptsQueue:we})}}}}},Ke=function(){return rt(),!0},ye=function(){return rt(),!0};return{renderObject:Te,renderCreatingObject:Ge,renderEditingObject:qe,renderPrompt:Qe,startEditingWhenMouseDown:Et,startCreatingWhenMouseDown:gt,updateEditingWhenMouseMove:$e,updateCreatingWhenMouseMove:Xe,finishEditingWhenMouseUp:Ke,finishCreatingWhenMouseUp:ye}};y.ZP=k},50910:function(b,y,e){"use strict";e.d(y,{Ae:function(){return l},In:function(){return n},O4:function(){return g},SP:function(){return S},TK:function(){return d},f7:function(){return m},je:function(){return c},rl:function(){return h}});var a=e(2657),t=e.n(a),o=e(17410),s,n=function(w){return w.Radio="radio",w.Checkbox="checkbox",w.Text="text",w}({}),d=function(w){return w[w.Unchecked=0]="Unchecked",w[w.Checked=1]="Checked",w[w.Commited=2]="Commited",w}({}),l=function(w){return w.Rect="rect",w.Point="point",w.Stroke="stroke",w.EdgeStitch="edgeStitch",w.Modify="modify",w.Text="text",w}({}),c={View:0,Edit:1,Review:2},m={initialized:!1,selectedTool:o.ru.Drag,selectedSubTool:o.jB.PenAdd,selectedModel:(s={},t()(s,o.ru.Drag,void 0),t()(s,o.ru.Rectangle,void 0),t()(s,o.ru.Mask,void 0),t()(s,o.ru.Skeleton,o.HE.Pose),t()(s,o.ru.Polygon,o.HE.SegmentByPolygon),s),AIAnnotation:!1,objectList:[],classifications:[],activeObjectIndex:-1,activeClassName:"",isJustCreated:!1,creatingObject:void 0,editingAttribute:void 0,brushSize:20,pointResolution:.5,prompt:{},isBatchEditing:!1,limitConf:0},g={brightness:100,contrast:100,saturate:100},M={colorByCategory:!0},h={isLoading:!1,isLoadingError:!1,isRequiring:!1,allowMove:!1,latestLabelId:"",startRectResizeAnchor:void 0,startElementMovePoint:void 0,focusObjectIndex:-1,foucsObjectAllIndexs:[],focusEleType:o.Yq.Rect,focusEleIndex:-1,focusPolygonInfo:{index:-1,pointIndex:-1,lineIndex:-1},isCtrlPressed:!1,hideCreatingObject:!1,imageDisplayOptions:g,annotsDisplayOptions:M},S=function(w){return w.Solid="solid",w.Dashed="dash",w.DoubleSolid="double_solid",w.DoubleDashed="double_dash",w.LDashedRSolid="left_dash-right_solid",w.LSolidRDashed="left_solid-right_dash",w.LCurbside="left_curbside",w.RCurbside="right_curbside",w.Unknown="none",w}({})},14464:function(b,y,e){"use strict";e.d(y,{Cj:function(){return c},WE:function(){return h},ZT:function(){return o},a7:function(){return d},dX:function(){return n},g9:function(){return g},wj:function(){return m}});var a=e(34485),t=e.n(a),o=function(C){return C.length!==3?"transparent":"#".concat(C[0].toString(16).padStart(2,"0")).concat(C[1].toString(16).padStart(2,"0")).concat(C[2].toString(16).padStart(2,"0")).toUpperCase()},s=function(C){var z=/^rgba?\((\d+),\s*(\d+),\s*(\d+)\)$/i.exec(C);return z?o(z):"transparent"},n=function(C){var z=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,Z=C.replace(z,function(L,$,D,T){return $+$+D+D+T+T}),N=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(Z);return N?[parseInt(N[1],16),parseInt(N[2],16),parseInt(N[3],16)]:[0,0,0]},d=function(C){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,Z=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,N=C.replace(Z,function(D,T,j,G){return T+T+j+j+G+G}),L=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(N),$=z<0||z>1?1:z;return L?"rgba(".concat(parseInt(L[1],16),",").concat(parseInt(L[2],16),",").concat(parseInt(L[3],16),",").concat($,")"):"transparent"},l=function(C){for(var z=["#FFFF00","#FF0000","#0000FF","#00FF00","#FF00FF","#00FFFF"],Z=[255,128,64,32,16,8,4,2,1],N=z.length+1;z.length0)if(L[T%3]+Z[Math.floor(T/3)]<=255)L[T%3]+=Z[Math.floor(T/3)];else{D=!1;break}$<<=1}if(D){var j="#".concat(L[0].toString(16).padStart(2,"0")).concat(L[1].toString(16).padStart(2,"0")).concat(L[2].toString(16).padStart(2,"0")).toUpperCase();z.includes(j)||z.push(j)}}return z},c=function(C){if(!C.length)return{};var z=t()(C),Z=l(z.length),N={};return z.forEach(function(L,$){N[L]=Z[$]}),N},m=function(C,z){return C.length!==3?"transparent":"rgba(".concat(C[0],", ").concat(C[1],", ").concat(C[2],", ").concat(z,")")},g=function(C){var z=C.slice(5,-1).split(",").map(function(Z){return Z.trim()});return z.length!==4||isNaN(parseFloat(z[3]))?[]:z.slice(0,3)},M=function(C,z){if(!C)return"rgba(0,0,0,0)";var Z=C.substring(5,C.length-1).split(",").map(function($){return parseInt($.trim())}),N=[].concat(_toConsumableArray(Z.slice(0,3)),[z]),L="rgba(".concat(N.join(","),")");return L},h=function(C,z,Z){var N=Z*z,L=N*(1-Math.abs(C*6%2-1)),$=Z-N,D=0,T=0,j=0;return C<1/6?(D=N,T=L):C<2/6?(D=L,T=N):C<3/6?(T=N,j=L):C<4/6?(T=L,j=N):C<5/6?(D=L,j=N):(D=N,j=L),[Math.round((D+$)*255),Math.round((T+$)*255),Math.round((j+$)*255)]},S=function(){var w=.618033988749895,C=0;return function(){C=(C+w)%1;var z=h(C,.8,.95);return o(z)}}()},46134:function(b,y,e){"use strict";e.d(y,{$G:function(){return V},$S:function(){return q},A7:function(){return D},AR:function(){return N},A_:function(){return We},Ak:function(){return R},Ap:function(){return X},Aw:function(){return O},E5:function(){return je},I4:function(){return Ne},Iw:function(){return Et},JP:function(){return W},Nm:function(){return rt},OX:function(){return A},Oh:function(){return P},Qo:function(){return H},RF:function(){return Xe},U8:function(){return Re},Uy:function(){return $},Vh:function(){return L},Vi:function(){return re},X6:function(){return Oe},XR:function(){return Q},YO:function(){return Z},Yc:function(){return Yt},Z0:function(){return $e},Z4:function(){return se},ZU:function(){return we},aF:function(){return st},aH:function(){return wt},cO:function(){return x},cU:function(){return k},cf:function(){return Ve},cx:function(){return le},e4:function(){return Ot},el:function(){return _},hv:function(){return it},i$:function(){return ie},jt:function(){return pe},kh:function(){return Y},kq:function(){return te},l1:function(){return ae},lT:function(){return tt},my:function(){return ne},nF:function(){return Be},o7:function(){return Ht},s5:function(){return me},t9:function(){return z},tQ:function(){return Se},uN:function(){return qe},yn:function(){return U}});var a=e(34485),t=e.n(a),o=e(63900),s=e.n(o),n=e(88479),d=e.n(n),l=e(88205),c=e.n(l),m=e(39378),g=e.n(m),M=e(17410),h=e(34095),S=e(67761),w=e(50910),C=e(14464),z=function(ze,nt,St,ut){if(!ze||!nt)return[0,0,1];if(!St)return[ze/nt*(ut||0),ut||0,1];if(!ut)return[St||0,nt/ze*(St||0),1];var Vt=ze,Nt=nt,At=1;return ze/nt>=St/ut?(Vt=St,Nt=nt*St/ze,At=St/ze):(Nt=ut,Vt=ze*ut/nt,At=ut/nt),[Vt||0,Nt||0,At]},Z=function(ze,nt,St){var ut=c()(ze,2),Vt=ut[0],Nt=Vt===void 0?0:Vt,At=ut[1],Ie=At===void 0?0:At;return{x:Nt/nt.width*St.width,y:Ie/nt.height*St.height}},N=function(ze,nt,St){var ut=c()(ze,2),Vt=ut[0],Nt=Vt===void 0?0:Vt,At=ut[1],Ie=At===void 0?0:At;return{x:Nt/St.width*nt.width,y:Ie/St.height*nt.height}},L=function(ze,nt,St){var ut=[];if(!ze)return ut;var Vt=ze.split("/");return Vt==null||Vt.forEach(function(Nt){for(var At=[],Ie=Nt.split(",").map(Number),Ee=0;EeSt.width?St.width:nt.x,y:nt.y<0?0:nt.y>St.height?St.height:nt.y};return{x:Math.min(ze.x,ut.x),y:Math.min(ze.y,ut.y),width:Math.abs(ze.x-ut.x),height:Math.abs(ze.y-ut.y)}},T=function(ze){var nt=1/0,St=1/0,ut=-1/0,Vt=-1/0,Nt=d()(ze),At;try{for(Nt.s();!(At=Nt.n()).done;){var Ie=At.value;nt=Math.min(nt,Ie.x),St=Math.min(St,Ie.y),ut=Math.max(ut,Ie.x),Vt=Math.max(Vt,Ie.y)}}catch(Ee){Nt.e(Ee)}finally{Nt.f()}return{minX:nt,minY:St,maxX:ut,maxY:Vt}},j=function(ze,nt,St){return{x:nt*ze.x,y:St*ze.y}},G=function(ze,nt,St){return{x:ze.x+nt,y:ze.y+St}},k=function(ze,nt){var St=T(ze),ut=St.minX,Vt=St.minY,Nt=St.maxX,At=St.maxY,Ie=nt.width/(Nt-ut),Ee=nt.height/(At-Vt),Mt=ze.map(function(jt){var He=G(jt,-ut,-Vt),et=j(He,Ie,Ee),Zt=G(et,nt.x,nt.y);return s()(s()({},jt),Zt)});return Mt},te=function(ze,nt){return{xmin:ze.x/nt.width,ymin:ze.y/nt.height,xmax:(ze.x+ze.width)/nt.width,ymax:(ze.y+ze.height)/nt.height}},Y=function(ze){return{xmin:ze.x,ymin:ze.y,xmax:ze.x+ze.width,ymax:ze.y+ze.height}},q=function(ze,nt,St){return{x:ze.x*St.width/nt.width,y:ze.y*St.height/nt.height,width:ze.width*St.width/nt.width,height:ze.height*St.height/nt.height}},le=function(ze,nt,St){var ut=q(ze,nt,St);return[ut.x,ut.y,ut.x+ut.width,ut.y+ut.height]},X=function(ze,nt,St){return{x:ze.x*St.width/nt.width,y:ze.y*St.height/nt.height}},W=function(ze,nt,St){return{x:(ze[0]||0)/nt.width*St.width,y:(ze[1]||0)/nt.height*St.height,width:((ze[2]||0)-(ze[0]||0))/nt.width*St.width,height:((ze[3]||0)-(ze[1]||0))/nt.height*St.height}},x=function(ze,nt){return{x:(ze.xmin||0)*nt.width,y:(ze.ymin||0)*nt.height,width:((ze.xmax||0)-(ze.xmin||0))*nt.width,height:((ze.ymax||0)-(ze.ymin||0))*nt.height}},O=function(ze){return{x:ze.xmin,y:ze.ymin,width:ze.xmax-ze.xmin,height:ze.ymax-ze.ymin}},_=function(ze,nt,St,ut,Vt){for(var Nt=[],At=0;At*6=0&&ze.elementX<=ze.elementW&&ze.elementY>=0&&ze.elementY<=ze.elementH},ge=function(ze,nt){return{x:ze.x-nt.x,y:ze.y-nt.y,width:ze.width+2*nt.x,height:ze.height+2*nt.y}},be=function(ze,nt){return s()(s()({},ze),{},{radius:nt})};function Te(bt,ze,nt){var St={x:ze.x-bt.x,y:ze.y-bt.y},ut={x:nt.x-bt.x,y:nt.y-bt.y};return St.x*ut.y-St.y*ut.x}var Ge=function(ze,nt,St){if(!ze||!nt)return!1;switch(St){case M.Yq.Rect:{var ut=ze;return ut.x<=nt.x&&ut.x+ut.width>=nt.x&&ut.y<=nt.y&&ut.y+ut.height>=nt.y}case M.Yq.Circle:{var Vt=ze;return Math.sqrt(Math.pow(nt.x-Vt.x,2)+Math.pow(nt.y-Vt.y,2))<=Vt.radius}case M.Yq.Polygon:{for(var Nt=ze,At=1;At0&&Ie*Mt>0)return!0}return!1}default:return!1}},qe=function(ze,nt){var St=arguments.length>2&&arguments[2]!==void 0?arguments[2]:5,ut=be(ze,St),Vt={x:nt.elementX,y:nt.elementY};return Ge(ut,Vt,M.Yq.Circle)},Qe=function(ze,nt){var St=nt.elementX,ut=nt.elementY,Vt=Math.sqrt(Math.pow(St-ze.start.x,2)+Math.pow(ut-ze.start.y,2)),Nt=Math.sqrt(Math.pow(St-ze.end.x,2)+Math.pow(ut-ze.end.y,2)),At=Math.sqrt(Math.pow(ze.end.x-ze.start.x,2)+Math.pow(ze.end.y-ze.start.y,2)),Ie=.75;return Vt+Nt>=At-Ie&&Vt+Nt<=At+Ie},ht=function(ze){var nt=T(ze),St=nt.maxX,ut=nt.minX,Vt=nt.maxY,Nt=nt.minY;return{x:ut,y:Nt,width:St-ut,height:Vt-Nt}},Et=function(ze){for(var nt=[],St=0;St0)return!0}break}}return!1},Ht=function(ze,nt){var St,ut=M.Yq.None,Vt=-1,Nt={index:-1,pointIndex:-1,lineIndex:-1};if(!pe(ze)||nt.hidden)return{focusEleType:ut,focusEleIndex:Vt,focusPolygonInfo:Nt};if((St=nt.keypoints)!==null&&St!==void 0&&St.points)for(var At=nt.keypoints.points,Ie=0;Ie-1)return Nt.index=Zt,Nt.pointIndex=Ut,{focusEleType:M.Yq.Polygon,focusEleIndex:0,focusPolygonInfo:Nt}}for(var Jt=0;Jt-1)return Nt.index=Jt,Nt.lineIndex=Mn,{focusEleType:M.Yq.Polygon,focusEleIndex:0,focusPolygonInfo:Nt}}var gn=et.findIndex(function(Yn){return Ge(Yn,{x:ze.elementX,y:ze.elementY},M.Yq.Polygon)});if(gn>-1)return Nt.index=gn,{focusEleType:M.Yq.Polygon,focusEleIndex:0,focusPolygonInfo:Nt}}return nt.rect&&Ge(ge(nt.rect,{x:8,y:8}),{x:ze.elementX,y:ze.elementY},M.Yq.Rect)?(ut=M.Yq.Rect,Vt=0,{focusEleType:ut,focusEleIndex:Vt,focusPolygonInfo:Nt}):{focusEleType:ut,focusEleIndex:Vt,focusPolygonInfo:Nt}},$e=function(ze,nt,St,ut){var Vt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:function(){return!0};if(!pe(nt))return-1;if(ut[St]&&Vt(ut[St])&>(nt,ut[St],ze))return St;for(var Nt=ut.length-1;Nt>=0;Nt--)if(Vt(ut[Nt])&>(nt,ut[Nt],ze))return Nt;return-1},Xe=function(ze,nt,St){var ut=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){return!0};if(!pe(nt))return[];for(var Vt=[],Nt=St.length-1;Nt>=0;Nt--)ut(St[Nt])&>(nt,St[Nt],ze)&&Vt.push(Nt);return Vt},rt=function(bt){return bt.TOP="TOP",bt.BOTTOM="BOTTOM",bt.LEFT="LEFT",bt.RIGHT="RIGHT",bt.TOP_RIGHT="TOP_RIGHT",bt.TOP_LEFT="TOP_LEFT",bt.BOTTOM_RIGHT="BOTTOM_RIGHT",bt.BOTTOM_LEFT="BOTTOM_LEFT",bt.CENTER="CENTER",bt}({}),Ke=function(ze){return Math.floor(ze)+.5},ye=function(ze){return{x:Ke(ze.x),y:Ke(ze.y)}},ne=function(ze){var nt={x:ze.x,y:ze.y},St={x:ze.x+ze.width,y:ze.y+ze.height},ut=ye(nt),Vt=ye(St);return{x:ut.x,y:ut.y,width:Vt.x-ut.x,height:Vt.y-ut.y}},H=function(ze){return[{type:rt.TOP_LEFT,position:{x:ze.x,y:ze.y}},{type:rt.TOP,position:{x:ze.x+.5*ze.width,y:ze.y}},{type:rt.TOP_RIGHT,position:{x:ze.x+ze.width,y:ze.y}},{type:rt.LEFT,position:{x:ze.x,y:ze.y+.5*ze.height}},{type:rt.RIGHT,position:{x:ze.x+ze.width,y:ze.y+.5*ze.height}},{type:rt.BOTTOM_LEFT,position:{x:ze.x,y:ze.y+ze.height}},{type:rt.BOTTOM,position:{x:ze.x+.5*ze.width,y:ze.y+ze.height}},{type:rt.BOTTOM_RIGHT,position:{x:ze.x+ze.width,y:ze.y+ze.height}}]},R=function(ze,nt){return s()({x:ze.x-.5*nt.width,y:ze.y-.5*nt.height},nt)},P=function(ze,nt){for(var St=H(ze),ut=0;utSt.elementW?St.elementW:St.elementX,At=St.elementY<0?0:St.elementY>St.elementH?St.elementH:St.elementY,Ie={x:Nt,y:At};switch(ut){case rt.RIGHT:Ie.y=ze.y+ze.height;break;case rt.BOTTOM:Ie.x=ze.x+ze.width;break;case rt.LEFT:Ie.y=ze.y;break;case rt.TOP:Ie.x=ze.x;break}return D(Vt,Ie,{width:St.elementW,height:St.elementH})},ie=function(ze,nt,St){var ut=ze.width,Vt=ze.height,Nt=nt.topLeftPoint,At=nt.mousePoint,Ie=St.elementX-At.x,Ee=St.elementY-At.y,Mt=Nt.x+Ie,jt=Nt.y+Ee;return{x:Mt<0?0:Mt+ut>St.elementW?St.elementW-ut:Mt,y:jt<0?0:jt+Vt>St.elementH?St.elementH-Vt:jt,width:ut,height:Vt}},me=function(ze,nt,St){var ut=nt.mousePoint,Vt=St.elementX,Nt=St.elementY,At=St.elementW,Ie=St.elementH,Ee=T(ze),Mt=Ee.minX,jt=Ee.minY,He=Ee.maxX,et=Ee.maxY,Zt=Vt-ut.x,Ut=Nt-ut.y;Zt=Zt+He>At?At-He:Zt+Mt<0?0:Zt,Ut=Ut+et>Ie?Ie-et:Ut+jt<0?0:Ut;var Jt=ze.map(function(ln){return{x:ln.x+Zt,y:ln.y+Ut}});return Jt},je=function(ze){var nt=ze.elementX,St=ze.elementY;return{x:nt<0?0:nt>ze.elementW?ze.elementW:nt,y:St<0?0:St>ze.elementH?ze.elementH:St}},Ce=function(ze){return!(!(0,m.isNumber)(ze.x)||!(0,m.isNumber)(ze.y)||!(0,m.isNumber)(ze.width)||!(0,m.isNumber)(ze.height)||ze.x===0&&ze.y===0&&ze.width===0&&ze.height===0)},Se=function(ze){return ze.maskRle?M.gr.Mask:ze.alpha?M.gr.Matting:ze.keypoints?M.gr.Skeleton:ze.polygon?M.gr.Polygon:ze.point?M.gr.Point:ze.rect&&Ce(ze.rect)?M.gr.Rectangle:ze.polyline?M.gr.Polyline:M.gr.Custom},We=function(ze,nt,St){var ut=ze.group.map(function(Vt){return Vt.reduce(function(Nt,At){var Ie=At.x,Ee=At.y,Mt=N([Ie,Ee],nt,St);return Nt.concat([Mt.x,Mt.y])},[])});return ut},re=function(ze,nt,St){var ut=We(ze,nt,St),Vt=ut.map(function(Nt){return Nt.join(",")}).join("/")||"";return Vt},se=function(ze,nt,St){var ut={x:ze.x-nt.x,y:ze.y-nt.y},Vt={x:St.x-nt.x,y:St.y-nt.y},Nt=Vt.x*Vt.x+Vt.y*Vt.y,At=ut.x*Vt.x+ut.y*Vt.y,Ie=At/Nt;return Ie<0||isNaN(Ie)?Ie=0:Ie>1&&(Ie=1),{x:nt.x+Vt.x*Ie,y:nt.y+Vt.y*Ie}},J=function(ze,nt){return{x:(ze.x+nt.x)/2,y:(ze.y+nt.y)/2}},de=function(ze){var nt=ze.x,St=ze.y,ut=ze.width,Vt=ze.height,Nt={x:nt,y:St},At={x:nt+ut,y:St},Ie={x:nt,y:St+Vt},Ee={x:nt+ut,y:St+Vt},Mt={x:nt+ut/2,y:St},jt={x:nt+ut/2,y:St+Vt},He={x:nt,y:St+Vt/2},et={x:nt+ut,y:St+Vt/2},Zt={x:nt+ut/2,y:St+Vt/2};return[Nt,At,Ie,Ee,Mt,jt,He,et,Zt]},xe=function(ze,nt){var St=T(ze),ut=T(nt);if(ut.minX>=St.maxX||ut.maxX<=St.minX||ut.minY>=St.maxY||ut.maxY<=St.minY)return!1;var Vt=_createForOfIteratorHelper(ze),Nt;try{for(Vt.s();!(Nt=Vt.n()).done;){var At=Nt.value;if(!Ge(nt,At,EElementType.Polygon))return!1}}catch(Ie){Vt.e(Ie)}finally{Vt.f()}return!0},ce=function(ze){for(var nt=[],St=0;Stut&&(0,m.isEqual)((0,m.omitBy)(Mt,m.isUndefined),(0,m.omitBy)(Ee[ut],m.isUndefined))?et=At:!He&&At.type===M.gr.Mask&&et.maskRle&&At.labelId!==Mt.labelId&&(et.maskCanvasElement=(0,S.ei)(et.maskRle,Vt,At.color)),s()(s()({},et),{},{type:At.type,labelId:At.labelId,hidden:At.hidden,color:At.color,customStyles:At.customStyles,attributes:At.attributes,status:At.status,frameEmpty:He})})}),Nt},xt=function(ze){var nt,St;if(ze.activeObjectIndex>=0&&(nt=ze.objectList)!==null&&nt!==void 0&&nt[ze.activeObjectIndex]&&!((St=ze.objectList)!==null&&St!==void 0&&St[ze.activeObjectIndex].frameEmpty)){var ut;ze.creatingObject=_objectSpread(_objectSpread({},ze.creatingObject),(ut=ze.objectList)===null||ut===void 0?void 0:ut[ze.activeObjectIndex]);return}ze.prompt={},ze.creatingObject=void 0},_t=function(ze,nt,St){var ut=ze.x,Vt=ze.y,Nt=nt.width,At=nt.height,Ie=St.elementW,Ee=St.elementH;if(ut>Ie||Vt>Ee||ut+Nt<=0||Vt+At<=0)return{xmin:0,ymin:0,xmax:0,ymax:0};var Mt={x:Math.max(0,ut),y:Math.max(0,Vt)},jt={x:Math.min(ut+Nt,Ie),y:Math.min(Vt+At,Ee)},He={x:ze.x,y:ze.y},et=st(Mt,He),Zt=et.x,Ut=et.y,Jt=st(jt,He),ln=Jt.x,Mn=Jt.y;return{xmin:Zt,ymin:Ut,xmax:ln,ymax:Mn}},Ot=function(ze){for(var nt=ze.getContext("2d",{willReadFrequently:!0}),St=nt.getImageData(0,0,ze.width,ze.height),ut=St.data,Vt=St.width,Nt=St.height,At=Vt,Ie=Nt,Ee=0,Mt=0,jt=0,He=0;He0){var Zt=He/4%Vt,Ut=Math.floor(He/4/Vt);jt++,At=Math.min(At,Zt),Ie=Math.min(Ie,Ut),Ee=Math.max(Ee,Zt),Mt=Math.max(Mt,Ut)}}var Jt={xmin:At,ymin:Ie,xmax:Ee,ymax:Mt};return{area:jt,bbox:Jt}},wt=function(ze){var nt,St;if(!ze||ze.length<2||((nt=ze[0])===null||nt===void 0?void 0:nt.length)!==((St=ze[1])===null||St===void 0?void 0:St.length))return[];for(var ut=c()(ze,2),Vt=ut[0],Nt=ut[1],At=[],Ie=0;Ie3&&arguments[3]!==void 0?arguments[3]:"#111111",W=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,x=arguments.length>5?arguments[5]:void 0,O=Y.getContext("2d");O.save(),O.strokeStyle=X,O.lineWidth=W,O.lineCap="round",O.beginPath(),x&&O.setLineDash(x),O.moveTo(q.x,q.y),O.lineTo(le.x+1,le.y+1),O.stroke(),O.restore()}function h(Y,q){var le=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"#111111",X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,W=arguments.length>4?arguments[4]:void 0,x=Y.getContext("2d");x.save(),x.strokeStyle=le,x.lineWidth=X,x.lineCap="round",x.lineJoin="round",W&&x.setLineDash(W),x.beginPath(),x.moveTo(q[0].x,q[0].y);for(var O=1,_=q.length;O<_;O++)x.lineTo(q[O].x,q[O].y);x.stroke(),x.restore()}var S=function(q,le){return{x:q.x+(le.x-q.x)/2,y:q.y+(le.y-q.y)/2}};function w(Y,q){var le=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"#111111",X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:20,W=arguments.length>4?arguments[4]:void 0,x=Y.getContext("2d");x.save(),x.strokeStyle=le,x.lineWidth=X,x.lineCap="round",x.lineJoin="round",W&&x.setLineDash(W),x.beginPath();var O=q[0],_=q[1];x.moveTo(O.x,O.y);for(var U=1,A=q.length;U2&&arguments[2]!==void 0?arguments[2]:"#fff",X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,W=arguments.length>4?arguments[4]:void 0,x=arguments.length>5?arguments[5]:void 0;if(Y){var O=Y.getContext("2d");O.save(),O.strokeStyle=le,O.lineWidth=X,O.beginPath(),W&&O.setLineDash(W),O.rect(q.x,q.y,q.width,q.height),O.stroke(),x&&(O.fillStyle=x,O.fill()),O.restore()}}function z(Y,q){var le=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"#fff";if(Y){var X=Y.getContext("2d");X.save(),X.fillStyle=le,X.beginPath(),X.rect(q.x,q.y,q.width,q.height),X.fill(),X.restore()}}function Z(Y,q){var le=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"#000",X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:.5,W=Y.getContext("2d");W.save(),W.fillStyle=le,W.globalAlpha=X,W.fillRect(0,0,Y.width,Y.height),W.globalCompositeOperation="destination-out",W.globalAlpha=1,W.fillRect(q.x,q.y,q.width,q.height),W.restore()}function N(Y){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{x:0,y:0},le=arguments.length>2?arguments[2]:void 0,X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#fff",W=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1;if(Y){var x=Y.getContext("2d");x.save(),x.strokeStyle=X,x.lineWidth=W,x.beginPath();var O=q.x,_=q.y;x.moveTo(le[0].x+O,le[0].y+_);for(var U=1;U1&&arguments[1]!==void 0?arguments[1]:{x:0,y:0},le=arguments.length>2?arguments[2]:void 0,X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#fff",W=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,x=arguments.length>5?arguments[5]:void 0;if(Y){var O=Y.getContext("2d");O.save(),O.strokeStyle=X,O.lineWidth=W,x&&O.setLineDash(x),O.beginPath();var _=q.x,U=q.y;O.moveTo(le[0].x+_,le[0].y+U);for(var A=1;A2&&arguments[2]!==void 0?arguments[2]:"#fff",X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#fff",W=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,x=arguments.length>5?arguments[5]:void 0;if(Y){var O=Y.getContext("2d");O.save(),O.fillStyle=le,O.strokeStyle=X,O.lineWidth=W,x&&O.setLineDash(x),O.beginPath(),O.moveTo(q[0].x,q[0].y);for(var _=1;_0&&O.stroke(),O.fill(),O.restore()}}function T(Y,q,le,X){var W=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"#ffffff",x=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1,O=arguments.length>6&&arguments[6]!==void 0?arguments[6]:"center",_=Y.getContext("2d");_.save(),_.fillStyle=W,_.textAlign=O,_.textBaseline="top",_.font=(x?"bold ":"")+le+"px Arial",_.fillText(q,X.x,X.y),_.restore()}function j(Y,q,le){var X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#ffffff",W=arguments.length>4?arguments[4]:void 0,x=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"#000",O=Y.getContext("2d");O.save();var _=o(0),U=o(360);O.lineWidth=W||0,O.strokeStyle=x,O.fillStyle=X,O.beginPath(),O.arc(q.x,q.y,le,_,U,!1),O.stroke(),O.fill(),O.restore()}function G(Y,q,le,X,W){var x=arguments.length>5&&arguments[5]!==void 0?arguments[5]:20,O=arguments.length>6&&arguments[6]!==void 0?arguments[6]:"#ffffff",_=Y.getContext("2d"),U=o(X),A=o(W);_.save(),_.strokeStyle=O,_.lineWidth=x,_.beginPath(),_.arc(q.x,q.y,le,U,A,!1),_.stroke(),_.restore()}function k(Y,q){var le=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#fff",W=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"#fff",x=arguments.length>5&&arguments[5]!==void 0?arguments[5]:1,O=arguments.length>6?arguments[6]:void 0,_=Y.getContext("2d");_.save(),_.fillStyle=X,_.strokeStyle=W,_.lineWidth=x,_.lineCap="round",_.lineJoin="round",O&&_.setLineDash(O),_.beginPath(),_.moveTo(q[0].x,q[0].y);for(var U=1;U0&&_.stroke(),_.fill()),_.restore()}function te(Y,q){var le=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#111111",W=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,x=arguments.length>5&&arguments[5]!==void 0?arguments[5]:20,O=arguments.length>6?arguments[6]:void 0,_=Y.getContext("2d");_.save(),_.strokeStyle=X,_.lineWidth=x,_.lineCap="round",_.lineJoin="round",_.beginPath(),O&&_.setLineDash(O);var U=q[0],A=q[1];_.moveTo(U.x,U.y);for(var V=1,fe=q.length;V0&&(_.globalCompositeOperation="destination-out",_.strokeStyle=X,_.stroke(),_.strokeStyle=(0,t.a7)(X,W),_.globalCompositeOperation="source-over",_.stroke()):(_.globalCompositeOperation="destination-out",_.stroke()),_.restore()}},28638:function(b,y,e){"use strict";e.d(y,{Z:function(){return re}});var a=e(39800),t=e(97375),o=e(2556),s=e(12562),n=e(88662),d=e(53357),l=e(58757),c=e(60698),m={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6a25.95 25.95 0 0025.6 30.4h723c1.5 0 3-.1 4.4-.4a25.88 25.88 0 0021.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z"}}]},name:"clear",theme:"outlined"},g=m,M=e(17202),h=function(J,de){return l.createElement(M.Z,(0,c.Z)({},J,{ref:de,icon:g}))},S=l.forwardRef(h),w=e(59504),C=e(35667),z=function(J){var de=J.categories,xe=J.filterCategoryName,ce=J.onSelectFilter,Ne=J.onClearFilter;return(0,C.jsxs)("div",{className:"dds-quicklabel-image-filter",children:[(0,C.jsx)("div",{children:(0,d._w)("quicklabel.imageFilter")}),(0,C.jsx)(w.Z,{style:{width:150},showSearch:!0,placeholder:(0,d._w)("quicklabel.allCategories"),size:"middle",value:xe,onChange:ce,popupClassName:"filter-options-popup",onClick:function(we){return we.stopPropagation()},onKeyUp:function(we){return we.stopPropagation()},onInputKeyDown:function(we){we.code!=="Enter"&&we.stopPropagation()},dropdownRender:function(we){return(0,C.jsxs)(C.Fragment,{children:[we,(0,C.jsx)(s.ZP,{type:"text",icon:(0,C.jsx)(S,{}),onClick:Ne,children:(0,d._w)("quicklabel.clearFilter")})]})},children:de==null?void 0:de.map(function(Oe){return(0,C.jsx)(w.Z.Option,{value:Oe.name,children:Oe.name},Oe.name)})})]})},Z=z,N=e(88205),L=e.n(N),$=e(18695),D=function(J){var de=J.images,xe=J.selected,ce=J.onImageSelected,Ne=(0,l.useState)(0),Oe=L()(Ne,2),we=Oe[0],Re=Oe[1],st=120,tt=(0,l.useCallback)(function(){var ke=document.getElementById("image-options-container");if(ke){var Be=ke.offsetHeight||0;Re(Be-56)}},[]);(0,l.useEffect)(function(){return tt(),window.addEventListener("resize",tt),function(){window.removeEventListener("resize",tt)}},[tt]);var Ye=function(Be){Be<0||Be>=de.length||ce(Be)};return(0,C.jsx)("div",{id:"image-options-container",className:"dds-quicklabel-options-list",children:(0,C.jsx)($.Z,{className:"dds-quicklabel-options-list-virtual",data:de,height:we,fullHeight:!0,itemHeight:st,itemKey:"id",children:function(Be,it){var Ve=it===xe?"dds-quicklabel-options-list-image-selected":"";return(0,C.jsx)("div",{children:(0,C.jsx)("img",{className:"dds-quicklabel-options-list-image ".concat(Ve),src:Be.url,onClick:function(){return Ye(it)}},Be.id)})}})})},T={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"upload",theme:"outlined"},j=T,G=function(J,de){return l.createElement(M.Z,(0,c.Z)({},J,{ref:de,icon:j}))},k=l.forwardRef(G),te=e(62109),Y=e(15618),q=e(51830),le=e(24454),X=e.n(le),W=e(34485),x=e.n(W),O=e(88479),_=e.n(O),U=e(56592),A=e.n(U),V=e(84045),fe=e(79233),pe=e(23671),ge=e(68716),be=e(8851),Te=function(se,J){J===void 0&&(J={});var de=(0,pe.Z)(J),xe=(0,l.useRef)();(0,be.Z)(function(){var ce=(0,ge.n)(se);if(ce!=null&&ce.addEventListener){var Ne=function(Ye,ke){var Be=Ye.getData("text/uri-list"),it=Ye.getData("custom");if(it&&de.current.onDom){var Ve=it;try{Ve=JSON.parse(it)}catch(xt){Ve=it}de.current.onDom(Ve,ke);return}if(Be&&de.current.onUri){de.current.onUri(Be,ke);return}if(Ye.files&&Ye.files.length&&de.current.onFiles){de.current.onFiles(Array.from(Ye.files),ke);return}Ye.items&&Ye.items.length&&de.current.onText&&Ye.items[0].getAsString(function(xt){de.current.onText(xt,ke)})},Oe=function(Ye){var ke,Be;Ye.preventDefault(),Ye.stopPropagation(),xe.current=Ye.target,(Be=(ke=de.current).onDragEnter)===null||Be===void 0||Be.call(ke,Ye)},we=function(Ye){var ke,Be;Ye.preventDefault(),(Be=(ke=de.current).onDragOver)===null||Be===void 0||Be.call(ke,Ye)},Re=function(Ye){var ke,Be;Ye.target===xe.current&&((Be=(ke=de.current).onDragLeave)===null||Be===void 0||Be.call(ke,Ye))},st=function(Ye){var ke,Be;Ye.preventDefault(),Ne(Ye.dataTransfer,Ye),(Be=(ke=de.current).onDrop)===null||Be===void 0||Be.call(ke,Ye)},tt=function(Ye){var ke,Be;Ne(Ye.clipboardData,Ye),(Be=(ke=de.current).onPaste)===null||Be===void 0||Be.call(ke,Ye)};return ce.addEventListener("dragenter",Oe),ce.addEventListener("dragover",we),ce.addEventListener("dragleave",Re),ce.addEventListener("drop",st),ce.addEventListener("paste",tt),function(){ce.removeEventListener("dragenter",Oe),ce.removeEventListener("dragover",we),ce.removeEventListener("dragleave",Re),ce.removeEventListener("drop",st),ce.removeEventListener("paste",tt)}}},[],se)},Ge=Te,qe=e(39378),Qe=Object.defineProperty,ht=Object.getOwnPropertySymbols,Et=Object.prototype.hasOwnProperty,gt=Object.prototype.propertyIsEnumerable,Ht=(se,J,de)=>J in se?Qe(se,J,{enumerable:!0,configurable:!0,writable:!0,value:de}):se[J]=de,$e=(se,J)=>{for(var de in J||(J={}))Et.call(J,de)&&Ht(se,de,J[de]);if(ht)for(var de of ht(J))gt.call(J,de)&&Ht(se,de,J[de]);return se};const Xe=se=>l.createElement("svg",$e({viewBox:"0 0 91 75",fill:"none",xmlns:"http://www.w3.org/2000/svg"},se),l.createElement("path",{d:"M60.633.007C49.453-.22 37.923 6.255 34.76 20.864c-12.874-4.444-24.497 4.32-23.29 18.315C4.735 41.932 0 48.587 0 56.409 0 66.709 8.199 75 18.383 75h22.33c-.005-6.26-.018-18.818-.018-21.197l-5.237 1.919c-3.8 1.656-6.605-3.183-3.352-6.195l9.909-9.739c2.263-2.288 4.966-2.026 6.97 0l9.909 9.739c3.253 3.012.447 7.85-3.352 6.195l-5.237-1.92V75h22.312C82.801 75 91 66.708 91 56.41c0-7.58-4.45-14.06-10.855-16.96C92.558 14.977 76.972.336 60.633.006Z",fill:"#B9CEFF"}),l.createElement("path",{d:"M60.633.004c-.623-.013-1.306.009-1.93.037-14.278 22.757 7.788 39.403 21.442 39.403C92.558 14.974 76.972.334 60.633.004Z",fill:"#739EFF"}));var rt="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgOTEgNzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYwLjYzMy4wMDdDNDkuNDUzLS4yMiAzNy45MjMgNi4yNTUgMzQuNzYgMjAuODY0Yy0xMi44NzQtNC40NDQtMjQuNDk3IDQuMzItMjMuMjkgMTguMzE1QzQuNzM1IDQxLjkzMiAwIDQ4LjU4NyAwIDU2LjQwOSAwIDY2LjcwOSA4LjE5OSA3NSAxOC4zODMgNzVoMjIuMzNjLS4wMDUtNi4yNi0uMDE4LTE4LjgxOC0uMDE4LTIxLjE5N2wtNS4yMzcgMS45MTljLTMuOCAxLjY1Ni02LjYwNS0zLjE4My0zLjM1Mi02LjE5NWw5LjkwOS05LjczOWMyLjI2My0yLjI4OCA0Ljk2Ni0yLjAyNiA2Ljk3IDBsOS45MDkgOS43MzljMy4yNTMgMy4wMTIuNDQ3IDcuODUtMy4zNTIgNi4xOTVsLTUuMjM3LTEuOTJWNzVoMjIuMzEyQzgyLjgwMSA3NSA5MSA2Ni43MDggOTEgNTYuNDFjMC03LjU4LTQuNDUtMTQuMDYtMTAuODU1LTE2Ljk2QzkyLjU1OCAxNC45NzcgNzYuOTcyLjMzNiA2MC42MzMuMDA2WiIgZmlsbD0iI0I5Q0VGRiIvPjxwYXRoIGQ9Ik02MC42MzMuMDA0Yy0uNjIzLS4wMTMtMS4zMDYuMDA5LTEuOTMuMDM3LTE0LjI3OCAyMi43NTcgNy43ODggMzkuNDAzIDIxLjQ0MiAzOS40MDNDOTIuNTU4IDE0Ljk3NCA3Ni45NzIuMzM0IDYwLjYzMy4wMDRaIiBmaWxsPSIjNzM5RUZGIi8+PC9zdmc+",Ke=e(45060),ye=e(23605),ne=e(95073),H=e(87608),R=e.n(H),P=function(J){var de=J.files,xe=J.fileType,ce=J.onRemoveFile,Ne=(0,l.useRef)(null),Oe=(0,ne.Z)(Ne),we=Oe!=null&&Oe.width&&Oe.width>800?8:5,Re=(0,l.useMemo)(function(){return(0,qe.chunk)(de,we).map(function(Ot,wt){return{index:wt,rowImages:Ot}})},[de,we]),st=8,tt=18,Ye=.75,ke=.95,Be=30,it=(0,l.useMemo)(function(){return Oe!=null&&Oe.width?((Oe==null?void 0:Oe.width)-tt*2-(we-1)*st)/we:0},[Oe==null?void 0:Oe.width,we,st]),Ve=(0,l.useMemo)(function(){return it*ke},[it,ke]),xt=(0,l.useMemo)(function(){return Ve*Ye},[Ve,Ye]),_t=(0,l.useMemo)(function(){return xt+Be+16},[xt,Be]);return(0,C.jsx)("div",{ref:Ne,className:"dds-upload-list",children:(0,C.jsx)($.Z,{className:"virtual-list",data:Re,height:(Oe==null?void 0:Oe.height)||0,fullHeight:!0,itemHeight:_t,itemKey:"index",children:function(wt,Yt){return(0,C.jsx)("div",{className:"row-container",style:{gap:st,padding:"".concat(st,"px ").concat(tt,"px")},children:wt.rowImages.map(function(bt,ze){return(0,C.jsxs)("div",{className:R()("preview-container",{"preview-container-success":bt.status==="success","preview-container-error":bt.status==="error"}),style:{width:it},children:[xe==="video"?(0,C.jsx)("video",{className:"file-preview",src:bt.url,style:{width:Ve,height:xt}}):(0,C.jsx)("img",{className:"file-preview",src:bt.url,style:{width:Ve,height:xt}}),(0,C.jsx)("div",{className:"remove-button",children:(0,C.jsx)(s.ZP,{icon:(0,C.jsx)(ye.Z,{}),shape:"circle",danger:!0,onClick:function(St){St.stopPropagation(),ce(Yt*we+ze)}})}),(0,C.jsx)("div",{className:"file-name",children:bt.name})]},bt.name)})},Yt)}})})},ae=P,Q=function(J){var de=J.fileList,xe=J.setFileList,ce=J.acceptTypes,Ne=J.maxCount,Oe=J.maxSize,we=J.maxDuratuion,Re=J.limitRemoveFile,st=J.fileType,tt=(0,d.bU)(),Ye=tt.localeText,ke=(0,l.useState)(!1),Be=L()(ke,2),it=Be[0],Ve=Be[1],xt=(0,l.useState)(!1),_t=L()(xt,2),Ot=_t[0],wt=_t[1],Yt=(0,l.useRef)(!1),bt=(0,l.useRef)(null),ze=ce?ce.join(", "):void 0,nt=function(){var Nt=A()(X()().mark(function At(Ie){var Ee,Mt,jt,He,et;return X()().wrap(function(Ut){for(;;)switch(Ut.prev=Ut.next){case 0:Ve(!0),Ee=[],Mt=_()(Ie),Ut.prev=3,He=X()().mark(function Jt(){var ln,Mn,gn,Yn;return X()().wrap(function(ar){for(;;)switch(ar.prev=ar.next){case 0:if(ln=jt.value,Mn=0,gn=0,Yn=0,!(Oe&&ln.size&&ln.size/1024/1024>Oe)){ar.next=4;break}return ar.abrupt("return","continue");case 4:if(!(Ne&&Ee.length+de.length>Ne-1)){ar.next=6;break}return ar.abrupt("return","continue");case 6:if(!de.find(function(gr){return gr.name===ln.name})){ar.next=8;break}return ar.abrupt("return","continue");case 8:Ee.push({id:ln.name,name:ln.name,url:URL.createObjectURL(ln),originFileObj:ln,frameCount:Mn,frameRate:gn,duration:Yn});case 9:case"end":return ar.stop()}},Jt)}),Mt.s();case 6:if((jt=Mt.n()).done){Ut.next=13;break}return Ut.delegateYield(He(),"t0",8);case 8:if(et=Ut.t0,et!=="continue"){Ut.next=11;break}return Ut.abrupt("continue",11);case 11:Ut.next=6;break;case 13:Ut.next=18;break;case 15:Ut.prev=15,Ut.t1=Ut.catch(3),Mt.e(Ut.t1);case 18:return Ut.prev=18,Mt.f(),Ut.finish(18);case 21:Ve(!1),Ee.length>0&&(xe([].concat(Ee,x()(de))),V.ZP.success(Ye("dds-upload.tip.successLoad",{count:Ee.length})));case 23:case"end":return Ut.stop()}},At,null,[[3,15,18,21]])}));return function(Ie){return Nt.apply(this,arguments)}}(),St=(0,l.useCallback)(function(Nt){if(!(Re&&Re(Nt))){var At=(0,qe.cloneDeep)(de);At.splice(Nt,1),xe(At)}},[de]),ut=function(At){Yt.current=!1;var Ie=At.target.files?x()(At.target.files):[];Ie.length>0&&nt(Ie),wt(!1),At.target.value=""},Vt=(0,l.useCallback)(function(){var Nt;if(Ne&&de.length>=Ne){V.ZP.warning(Ye("dds-upload.tip.fileCountLimitMsg",{count:Ne}));return}wt(!0),(Nt=bt.current)===null||Nt===void 0||Nt.click(),Yt.current=!0,window.addEventListener("focus",function(){setTimeout(function(){Yt.current&&wt(!1)},100)},{once:!0})},[de,Ne]);return Ge(window.document.body,{onFiles:function(){var Nt=A()(X()().mark(function Ie(Ee,Mt){var jt;return X()().wrap(function(et){for(;;)switch(et.prev=et.next){case 0:if(!(Ne&&de.length>=Ne)){et.next=3;break}return V.ZP.warning(Ye("dds-upload.tip.fileCountLimitMsg",{count:Ne})),et.abrupt("return");case 3:return et.next=5,(0,Ke._q)(Mt==null?void 0:Mt.dataTransfer,ce);case 5:jt=et.sent,nt(jt);case 7:case"end":return et.stop()}},Ie)}));function At(Ie,Ee){return Nt.apply(this,arguments)}return At}(),onDragEnter:function(){wt(!0)},onDrop:function(){wt(!1)},onDragLeave:function(){wt(!1)}}),(0,C.jsxs)("div",{className:"dds-upload",children:[(0,C.jsx)("input",{ref:bt,type:"file",accept:ze,multiple:!0,onChange:ut}),de.length<=0?(0,C.jsxs)("div",{className:R()("dds-upload-empty",{"dds-upload-draging":Ot}),onClick:Vt,children:[(0,C.jsx)(Xe,{}),(0,C.jsx)("p",{className:"dds-upload-title",children:Ye("dds-upload.title")}),(0,C.jsx)("p",{className:"dds-upload-text",children:Ye(st==="video"?"dds-upload.limit.type.video":"dds-upload.limit.type.image")})]}):(0,C.jsxs)("div",{className:R()("dds-upload-content",{"dds-upload-draging":Ot}),children:[(0,C.jsxs)("div",{className:"dds-upload-topbar",children:[(0,C.jsxs)("div",{children:[(0,C.jsx)("div",{className:"dds-upload-title",children:Ye("dds-upload.title")}),(0,C.jsx)("div",{className:"dds-upload-text",children:Ye(st==="video"?"dds-upload.limit.type.video":"dds-upload.limit.type.image")})]}),(0,C.jsx)(s.ZP,{type:"primary",onClick:Vt,children:Ye("dds-upload.upload")})]}),(0,C.jsxs)("div",{className:"dds-upload-content-list",children:[Ne&&(0,C.jsxs)("div",{className:"dds-upload-content-list-count",children:[de.length," / ",Ne]}),(0,C.jsx)(ae,{files:de,onRemoveFile:St,fileType:st})]})]}),it&&(0,C.jsx)(fe.Z,{size:"large",className:"dds-upload-loading",spinning:it,delay:500})]})},ie=Q,me=1e3,je=10,Ce=function(J){var de=J.open,xe=J.isInit,ce=J.fileList,Ne=J.setFileList,Oe=J.onClickOk,we=J.onClickCancel,Re=J.limitRemoveFile,st=J.okText,tt=J.limitClose,Ye=J.uploadPreAnnot,ke=J.onChangePreAnnotFile,Be=J.onRemovePreAnnotFile;return(0,C.jsx)("div",{onMouseDown:function(Ve){return Ve.stopPropagation()},onMouseUp:function(Ve){return Ve.stopPropagation()},children:(0,C.jsxs)(te.Z,{title:(0,d._w)("quicklabel.title"),width:675,open:de,onOk:Oe,onCancel:we,okText:st,okButtonProps:{disabled:ce.length===0},cancelButtonProps:{hidden:tt},closable:!tt,destroyOnClose:!0,children:[(0,C.jsx)(Y.Z,{message:(0,d._w)("quicklabel.formModal.attn"),description:(0,d._w)("quicklabel.formModal.tip"),type:"info",showIcon:!0}),(0,C.jsx)("div",{className:"dds-quicklabel-subtitle",children:(0,d._w)("quicklabel.formModal.importImages")}),(0,C.jsx)("div",{className:"dds-quicklabel-upload",children:(0,C.jsx)(ie,{fileList:ce,setFileList:Ne,fileType:"image",acceptTypes:["image/png","image/jpeg","image/jpg"],limitRemoveFile:Re,maxCount:me,maxSize:je})}),(0,C.jsx)(Y.Z,{className:"dds-quicklabel-upload-tip",message:(0,d._w)("quicklabel.formModal.imageTips",{count:me,size:je}),type:"info",showIcon:!0}),xe&&(0,C.jsx)(q.Tn,{uploadFiles:Ye,onChangeFile:ke,onRemoveFile:Be,children:(0,C.jsx)(s.ZP,{icon:(0,C.jsx)(k,{}),className:"dds-quicklabel-upload-preannot-btn",children:(0,d._w)("quicklabel.formModal.importPreAnnots")})})]})})},Se=Ce,We=function(J){var de=J.images,xe=J.filterImages,ce=J.current,Ne=J.categories,Oe=J.qsModalVisible,we=J.uploadFiles,Re=J.uploadPreAnnot,st=J.filterCategoryName,tt=J.setImages,Ye=J.setCurrent,ke=J.setCategories,Be=J.setQsModalVisible,it=J.setUploadFiles,Ve=J.limitRemoveFile,xt=J.onCancelUploadFiles,_t=J.onConfirmUploadFiles,Ot=J.exportAnnotations,wt=J.onChangePreAnnotFile,Yt=J.onRemovePreAnnotFile,bt=J.onSelectFilterCategory,ze=J.onClearFilterCategory;(0,l.useEffect)(function(){de.length<=0&&Be(!0)},[]),(0,o.Z)("uparrow",function(){Ye(Math.max(0,ce-1))},{exactMatch:!0}),(0,o.Z)("downarrow",function(){Ye(Math.min(ce+1,de.length-1))},{exactMatch:!0});var nt=function(ut,Vt){if(xe[ce]){var Nt=xe[ce].originalIndex;tt(function(At){At[Nt]&&(At[Nt].objects=ut,At[Nt].width=Vt.width,At[Nt].height=Vt.height)})}};return(0,C.jsxs)("div",{className:"dds-quicklabel",children:[(0,C.jsxs)("div",{className:"dds-quicklabel-list",onMouseDown:function(ut){ut.stopPropagation()},onMouseUp:function(ut){ut.stopPropagation()},children:[(0,C.jsx)(s.ZP,{type:"primary",icon:(0,C.jsx)(a.Z,{}),onClick:function(){Be(!0)},children:(0,d._w)("quicklabel.setting")}),(0,C.jsx)(D,{images:xe,selected:ce,onImageSelected:function(ut){Ye(ut)}})]}),(0,C.jsx)("div",{className:"dds-quicklabel-workspace",children:(0,C.jsx)(n.kl,{isOldMode:!0,isSeperate:!0,visible:!0,mode:n.je.Edit,categories:Ne,setCategories:ke,list:xe,current:ce,titleElements:[(0,C.jsx)(Z,{categories:Ne,filterCategoryName:st,onSelectFilter:bt,onClearFilter:ze},"image-filters")],actionElements:[(0,C.jsx)(s.ZP,{type:"primary",onClick:Ot,children:(0,d._w)("quicklabel.export")},"export")],onAutoSave:nt,onCancel:function(){return t.history.push("/")}})}),(0,C.jsx)(Se,{open:Oe,isInit:de.length===0,fileList:we,setFileList:it,limitRemoveFile:Ve,okText:(0,d._w)("quicklabel.formModal.confirm"),onClickCancel:xt,onClickOk:_t,limitClose:de.length<=0,uploadPreAnnot:Re,onChangePreAnnotFile:wt,onRemovePreAnnotFile:Yt})]})},re=We},51830:function(b,y,e){"use strict";e.d(y,{ii:function(){return Qe},ZJ:function(){return rt},mn:function(){return n},fL:function(){return h},Qs:function(){return Et},xA:function(){return z},Tn:function(){return se}});var a=e(79233),t=e(58757),o=e(35667),s=function(de){var xe=de.children,ce=de.active,Ne=de.tip;return(0,o.jsx)(a.Z,{size:"large",spinning:ce,delay:500,style:{maxHeight:"none",opacity:.3},tip:Ne,children:xe})},n=s,d=e(88205),l=e.n(d),c=e(74820),m=e(12562),g=function(J){return J.en="en-US",J.zh="zh-CN",J}({}),M=function(de){var xe=de.getLocale,ce=de.setLocale,Ne=de.tooltipPlacement,Oe=Ne===void 0?"right":Ne,we=de.theme,Re=we===void 0?"light":we,st=de.className,tt=xe(),Ye=function(){var _t=tt===g.zh?g.en:g.zh;ce(_t)},ke=(0,t.useMemo)(function(){return tt===g.zh?["change-lang change-lang-".concat(Re),"cur-lang cur-lang-".concat(Re)]:["cur-lang cur-lang-".concat(Re),"change-lang change-lang-".concat(Re)]},[Re,tt]),Be=l()(ke,2),it=Be[0],Ve=Be[1];return(0,o.jsx)(c.Z,{placement:Oe,title:tt===g.zh?"\u4E2D\u6587 / English":"English / \u4E2D\u6587",children:(0,o.jsx)(m.ZP,{type:"text",className:"dds-lang-selector ".concat(st),onClick:Ye,children:(0,o.jsxs)("div",{children:[(0,o.jsx)("span",{className:Ve,children:"\u4E2D"}),(0,o.jsx)("span",{className:it,children:"En"})]})})})},h=M,S=e(62109),w=e(12632),C=function(de){var xe=de.error,ce=de.componentStack,Ne=de.resetError,Oe=function(){S.Z.error({title:xe.toString(),content:(0,o.jsx)("div",{style:{height:"60vh",overflowY:"scroll"},children:(0,o.jsx)("p",{children:ce})}),onOk:function(){},maskClosable:!0,width:"80vw"})};return(0,o.jsx)("div",{style:{position:"relative",height:"calc(100vh - 64px)",width:"100%",backgroundColor:"#fff",display:"flex",justifyContent:"center",alignItems:"center"},children:(0,o.jsx)(w.ZP,{status:"500",title:"Running Error",subTitle:"Sorry, something went wrong.",extra:[(0,o.jsx)(m.ZP,{type:"primary",onClick:Ne,children:"Click here to reset"},"bt1"),(0,o.jsx)(m.ZP,{onClick:Oe,children:"Error Detail"},"bt2")]})})},z=C,Z=e(73267),N=e(94706),L=Object.defineProperty,$=Object.getOwnPropertySymbols,D=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable,j=(J,de,xe)=>de in J?L(J,de,{enumerable:!0,configurable:!0,writable:!0,value:xe}):J[de]=xe,G=(J,de)=>{for(var xe in de||(de={}))D.call(de,xe)&&j(J,xe,de[xe]);if($)for(var xe of $(de))T.call(de,xe)&&j(J,xe,de[xe]);return J};const k=J=>t.createElement("svg",G({width:24,height:24,fill:"none",xmlns:"http://www.w3.org/2000/svg"},J),t.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16 4.4c0-.22.18-.4.4-.4h1.2c.22 0 .4.18.4.4V6h3.6c.22 0 .4.18.4.4v1.2a.4.4 0 0 1-.4.4H18v1.6a.4.4 0 0 1-.4.4h-1.2a.4.4 0 0 1-.4-.4V4.4ZM2.4 6a.4.4 0 0 0-.4.4v1.2c0 .22.18.4.4.4h11.2a.4.4 0 0 0 .4-.4V6.4a.4.4 0 0 0-.4-.4H2.4Zm8 10a.4.4 0 0 0-.4.4v1.2c0 .22.18.4.4.4h11.2a.4.4 0 0 0 .4-.4v-1.2a.4.4 0 0 0-.4-.4H10.4Zm-8 0a.4.4 0 0 0-.4.4v1.2c0 .22.18.4.4.4H6v1.6c0 .22.18.4.4.4h1.2a.4.4 0 0 0 .4-.4v-5.2a.4.4 0 0 0-.4-.4H6.4a.4.4 0 0 0-.4.4V16H2.4Z",fill:"#434343"}));var te="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNiA0LjRjMC0uMjIuMTgtLjQuNC0uNGgxLjJjLjIyIDAgLjQuMTguNC40VjZoMy42Yy4yMiAwIC40LjE4LjQuNHYxLjJhLjQuNCAwIDAgMS0uNC40SDE4djEuNmEuNC40IDAgMCAxLS40LjRoLTEuMmEuNC40IDAgMCAxLS40LS40VjQuNFpNMi40IDZhLjQuNCAwIDAgMC0uNC40djEuMmMwIC4yMi4xOC40LjQuNGgxMS4yYS40LjQgMCAwIDAgLjQtLjRWNi40YS40LjQgMCAwIDAtLjQtLjRIMi40Wm04IDEwYS40LjQgMCAwIDAtLjQuNHYxLjJjMCAuMjIuMTguNC40LjRoMTEuMmEuNC40IDAgMCAwIC40LS40di0xLjJhLjQuNCAwIDAgMC0uNC0uNEgxMC40Wm0tOCAwYS40LjQgMCAwIDAtLjQuNHYxLjJjMCAuMjIuMTguNC40LjRINnYxLjZjMCAuMjIuMTguNC40LjRoMS4yYS40LjQgMCAwIDAgLjQtLjR2LTUuMmEuNC40IDAgMCAwLS40LS40SDYuNGEuNC40IDAgMCAwLS40LjRWMTZIMi40WiIgZmlsbD0iIzQzNDM0MyIvPjwvc3ZnPg==",Y=Object.defineProperty,q=Object.getOwnPropertySymbols,le=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable,W=(J,de,xe)=>de in J?Y(J,de,{enumerable:!0,configurable:!0,writable:!0,value:xe}):J[de]=xe,x=(J,de)=>{for(var xe in de||(de={}))le.call(de,xe)&&W(J,xe,de[xe]);if(q)for(var xe of q(de))X.call(de,xe)&&W(J,xe,de[xe]);return J};const O=J=>t.createElement("svg",x({width:16,height:16,fill:"none",xmlns:"http://www.w3.org/2000/svg"},J),t.createElement("path",{d:"M8.536 1.572H7.464c-.095 0-.143.048-.143.143v5.607h-5.32c-.096 0-.144.048-.144.143v1.072c0 .095.048.142.143.142h5.321v5.608c0 .095.048.142.143.142h1.072c.095 0 .142-.047.142-.142V8.679H14c.095 0 .143-.047.143-.142V7.465c0-.095-.048-.143-.143-.143H8.678V1.715c0-.095-.047-.143-.142-.143Z",fill:"#595959"}));var _="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTguNTM2IDEuNTcySDcuNDY0Yy0uMDk1IDAtLjE0My4wNDgtLjE0My4xNDN2NS42MDdoLTUuMzJjLS4wOTYgMC0uMTQ0LjA0OC0uMTQ0LjE0M3YxLjA3MmMwIC4wOTUuMDQ4LjE0Mi4xNDMuMTQyaDUuMzIxdjUuNjA4YzAgLjA5NS4wNDguMTQyLjE0My4xNDJoMS4wNzJjLjA5NSAwIC4xNDItLjA0Ny4xNDItLjE0MlY4LjY3OUgxNGMuMDk1IDAgLjE0My0uMDQ3LjE0My0uMTQyVjcuNDY1YzAtLjA5NS0uMDQ4LS4xNDMtLjE0My0uMTQzSDguNjc4VjEuNzE1YzAtLjA5NS0uMDQ3LS4xNDMtLjE0Mi0uMTQzWiIgZmlsbD0iIzU5NTk1OSIvPjwvc3ZnPg==",U=Object.defineProperty,A=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,fe=Object.prototype.propertyIsEnumerable,pe=(J,de,xe)=>de in J?U(J,de,{enumerable:!0,configurable:!0,writable:!0,value:xe}):J[de]=xe,ge=(J,de)=>{for(var xe in de||(de={}))V.call(de,xe)&&pe(J,xe,de[xe]);if(A)for(var xe of A(de))fe.call(de,xe)&&pe(J,xe,de[xe]);return J};const be=J=>t.createElement("svg",ge({width:16,height:16,fill:"none",xmlns:"http://www.w3.org/2000/svg"},J),t.createElement("path",{d:"M14.429 7.322H1.572a.143.143 0 0 0-.143.143v1.072c0 .078.064.142.143.142h12.857a.143.143 0 0 0 .143-.142V7.465a.143.143 0 0 0-.143-.143Z",fill:"#595959"}));var Te="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0LjQyOSA3LjMyMkgxLjU3MmEuMTQzLjE0MyAwIDAgMC0uMTQzLjE0M3YxLjA3MmMwIC4wNzguMDY0LjE0Mi4xNDMuMTQyaDEyLjg1N2EuMTQzLjE0MyAwIDAgMCAuMTQzLS4xNDJWNy40NjVhLjE0My4xNDMgMCAwIDAtLjE0My0uMTQzWiIgZmlsbD0iIzU5NTk1OSIvPjwvc3ZnPg==",Ge=e(53357),qe=function(de){var xe=(0,Ge.bU)(),ce=xe.localeText,Ne=de.cloumnCount,Oe=de.maxCloumnCount,we=Oe===void 0?8:Oe,Re=de.onColumnCountChange,st=de.getPopupContainer;return(0,o.jsx)(Z.Z,{getPopupContainer:st,dropdownRender:function(){return(0,o.jsxs)("div",{className:"dds-column-settings-panel",children:[(0,o.jsx)("div",{className:"item-title",children:ce("ColumnSettings.title")}),(0,o.jsxs)("div",{className:"item-content",children:[(0,o.jsx)(N.Z,{min:1,max:we,onChange:function(ke){return Re(ke)},value:Ne,className:"slider"}),(0,o.jsxs)("div",{className:"num-box",children:[(0,o.jsx)(be,{onClick:function(){return Re(!1)}}),(0,o.jsx)("div",{className:"num",children:Ne}),(0,o.jsx)(O,{onClick:function(){return Re(!0)}})]})]})]})},children:(0,o.jsx)("div",{className:"dds-column-settings-btn",children:(0,o.jsx)(k,{})})})},Qe=qe,ht=function(){return(0,o.jsx)("div",{style:{height:"100vh",width:"100%",backgroundColor:"#fff",display:"flex",justifyContent:"center",alignItems:"center"},children:(0,o.jsx)(w.ZP,{status:"404",title:(0,Ge._w)("MobileAlert.title"),subTitle:(0,Ge._w)("MobileAlert.subTitle")})})},Et=ht,gt=e(35910),Ht=e(32423),$e=e(39378),Xe=function(de){var xe=de.current,ce=de.size,Ne=de.total,Oe=de.onPageChange,we=de.onPageSizeChange,Re=(0,t.useState)(ce),st=l()(Re,2),tt=st[0],Ye=st[1],ke=(0,Ge.bU)(),Be=ke.localeText;return(0,o.jsxs)("div",{className:"dds-dynamic-pagination",children:[(0,o.jsx)(gt.Z,{current:xe,pageSize:ce,total:Ne,showSizeChanger:!1,showQuickJumper:!0,onChange:function(Ve){return Oe(Ve)}}),(0,o.jsxs)("div",{className:"pagesize-wrap",children:[(0,o.jsx)("div",{className:"pagesize-label",children:Be("DynamicPagination.label")}),(0,o.jsx)(Ht.Z,{min:1,value:tt,onChange:function(Ve){Ye(Number(Ve))},onBlur:function(Ve){(0,$e.isNaN)(Number(Ve.target.value))||Number(Ve.target.value)<=0?we(xe,1):we(xe,Number(Ve.target.value))},onPressEnter:function(Ve){Ve.target.blur(Ve)}})]})]})},rt=Xe,Ke=e(28638),ye=e(88662),ne=e(39875),H=e(23241),R=e(18624),P=Object.defineProperty,ae=Object.getOwnPropertySymbols,Q=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable,me=(J,de,xe)=>de in J?P(J,de,{enumerable:!0,configurable:!0,writable:!0,value:xe}):J[de]=xe,je=(J,de)=>{for(var xe in de||(de={}))Q.call(de,xe)&&me(J,xe,de[xe]);if(ae)for(var xe of ae(de))ie.call(de,xe)&&me(J,xe,de[xe]);return J};const Ce=J=>t.createElement("svg",je({viewBox:"0 0 56 56",fill:"none",xmlns:"http://www.w3.org/2000/svg"},J),t.createElement("g",{clipPath:"url(#upload_file_svg__a)"},t.createElement("path",{d:"m46.55 12.917-8.132-8.131A16.227 16.227 0 0 0 26.868.002H16.333C9.9 0 4.667 5.234 4.667 11.667v32.666C4.667 50.766 9.9 56 16.333 56h23.334c6.433 0 11.666-5.234 11.666-11.667V24.465c0-4.363-1.698-8.46-4.783-11.548Zm-3.3 3.3c.743.742 1.37 1.565 1.879 2.45H35a2.337 2.337 0 0 1-2.333-2.334V6.204c.884.509 1.71 1.137 2.45 1.879l8.131 8.131.003.003Zm3.417 28.116c0 3.86-3.141 7-7 7H16.333c-3.859 0-7-3.14-7-7V11.667c0-3.86 3.141-7 7-7h10.535c.38 0 .759.018 1.132.053v11.613c0 3.86 3.14 7 7 7h11.613c.035.374.054.752.054 1.132v19.868ZM36.65 33.79a2.33 2.33 0 0 1 0 3.3 2.327 2.327 0 0 1-1.65.683 2.327 2.327 0 0 1-1.65-.684l-3.017-3.017v10.262a2.334 2.334 0 0 1-4.666 0V34.071l-3.017 3.017a2.33 2.33 0 0 1-3.3 0 2.33 2.33 0 0 1 0-3.299l3.766-3.766c2.693-2.693 7.075-2.693 9.77 0l3.766 3.766h-.002Z",fill:"#739EFF"})),t.createElement("defs",null,t.createElement("clipPath",{id:"upload_file_svg__a"},t.createElement("path",{fill:"#fff",d:"M0 0h56v56H0z"}))));var Se="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTYgNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJtNDYuNTUgMTIuOTE3LTguMTMyLTguMTMxQTE2LjIyNyAxNi4yMjcgMCAwIDAgMjYuODY4LjAwMkgxNi4zMzNDOS45IDAgNC42NjcgNS4yMzQgNC42NjcgMTEuNjY3djMyLjY2NkM0LjY2NyA1MC43NjYgOS45IDU2IDE2LjMzMyA1NmgyMy4zMzRjNi40MzMgMCAxMS42NjYtNS4yMzQgMTEuNjY2LTExLjY2N1YyNC40NjVjMC00LjM2My0xLjY5OC04LjQ2LTQuNzgzLTExLjU0OFptLTMuMyAzLjNjLjc0My43NDIgMS4zNyAxLjU2NSAxLjg3OSAyLjQ1SDM1YTIuMzM3IDIuMzM3IDAgMCAxLTIuMzMzLTIuMzM0VjYuMjA0Yy44ODQuNTA5IDEuNzEgMS4xMzcgMi40NSAxLjg3OWw4LjEzMSA4LjEzMS4wMDMuMDAzWm0zLjQxNyAyOC4xMTZjMCAzLjg2LTMuMTQxIDctNyA3SDE2LjMzM2MtMy44NTkgMC03LTMuMTQtNy03VjExLjY2N2MwLTMuODYgMy4xNDEtNyA3LTdoMTAuNTM1Yy4zOCAwIC43NTkuMDE4IDEuMTMyLjA1M3YxMS42MTNjMCAzLjg2IDMuMTQgNyA3IDdoMTEuNjEzYy4wMzUuMzc0LjA1NC43NTIuMDU0IDEuMTMydjE5Ljg2OFpNMzYuNjUgMzMuNzlhMi4zMyAyLjMzIDAgMCAxIDAgMy4zIDIuMzI3IDIuMzI3IDAgMCAxLTEuNjUuNjgzIDIuMzI3IDIuMzI3IDAgMCAxLTEuNjUtLjY4NGwtMy4wMTctMy4wMTd2MTAuMjYyYTIuMzM0IDIuMzM0IDAgMCAxLTQuNjY2IDBWMzQuMDcxbC0zLjAxNyAzLjAxN2EyLjMzIDIuMzMgMCAwIDEtMy4zIDAgMi4zMyAyLjMzIDAgMCAxIDAtMy4yOTlsMy43NjYtMy43NjZjMi42OTMtMi42OTMgNy4wNzUtMi42OTMgOS43NyAwbDMuNzY2IDMuNzY2aC0uMDAyWiIgZmlsbD0iIzczOUVGRiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoNTZ2NTZIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=",We=20,re=function(de){var xe=de.uploadFiles,ce=de.onChangeFile,Ne=de.onRemoveFile,Oe=de.children,we=(0,Ge.bU)(),Re=we.localeText;return(0,o.jsx)(H.Z,{className:"dds-upload-pre-anno",maxCount:1,beforeUpload:function(){return!1},fileList:xe,onChange:ce,onRemove:Ne,accept:".json",showUploadList:!0,children:Oe||(0,o.jsx)(R.Z,{children:(0,o.jsx)(R.Z.Meta,{avatar:(0,o.jsx)(ne.Z,{component:Ce}),title:Re("dds-upload-pre-anno"),description:Re("dds-upload-pre-anno.tip",{maxSize:We})})})})},se=re},28506:function(b,y,e){"use strict";e.d(y,{_:function(){return C},w:function(){return z}});var a=e(63900),t=e.n(a),o=e(88205),s=e.n(o),n=e(58757),d=e(86429),l=e(51129),c=e(74324),m=e(66682);const g=m,M={parseNumbers:!1,parseBooleans:!1},h={skipNull:!1,skipEmptyString:!1};var w=(Z,N)=>{var L,$;const{navigateMode:D="push",parseOptions:T,stringifyOptions:j}=N||{},G=Object.assign(Object.assign({},M),T),k=Object.assign(Object.assign({},h),j),te=g.useLocation(),Y=(L=g.useHistory)===null||L===void 0?void 0:L.call(g),q=($=g.useNavigate)===null||$===void 0?void 0:$.call(g),le=(0,d.Z)(),X=(0,n.useRef)(typeof Z=="function"?Z():Z||{}),W=(0,n.useMemo)(()=>(0,c.parse)(te.search,G),[te.search]),x=(0,n.useMemo)(()=>Object.assign(Object.assign({},X.current),W),[W]),O=_=>{const U=typeof _=="function"?_(x):_;le(),Y&&Y[D]({hash:te.hash,search:(0,c.stringify)(Object.assign(Object.assign({},W),U),k)||"?"},te.state),q&&q({hash:te.hash,search:(0,c.stringify)(Object.assign(Object.assign({},W),U),k)||"?"},{replace:D==="replace",state:te.state})};return[x,(0,l.Z)(O)]};function C(Z){var N=Z.pageState,L=Z.onInitPageState,$=Z.onPageDidMount,D=Z.onPageWillUnmount,T=w({},{navigateMode:"replace"}),j=s()(T,2),G=j[0],k=j[1];(0,n.useEffect)(function(){if(L){var te={};try{te=G.pageState?JSON.parse(G.pageState):{}}catch(Y){console.error("get urlPageState error: ",Y)}L(te,G)}return $&&$(G),function(){D&&D()}},[]),(0,n.useEffect)(function(){k(t()(t()({},G),{},{pageState:JSON.stringify(N)}))},[N])}function z(){var Z=(0,n.useState)(window.innerWidth),N=s()(Z,2),L=N[0],$=N[1],D=(0,n.useState)(window.innerHeight),T=s()(D,2),j=T[0],G=T[1],k=function(){$(window.innerWidth),G(window.innerHeight)};return(0,n.useEffect)(function(){return window.addEventListener("resize",k),function(){window.removeEventListener("resize",k)}},[]),{width:L,height:j}}},41260:function(b,y,e){"use strict";e.d(y,{O:function(){return t},p:function(){return a}});var a=function(s){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return Math.floor(s*Math.pow(10,n))/Math.pow(10,n)},t=function(s){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return Number(s.toFixed(n))}},45060:function(b,y,e){"use strict";e.d(y,{Gf:function(){return m},XV:function(){return c},_q:function(){return S},pz:function(){return C}});var a=e(88479),t=e.n(a),o=e(24454),s=e.n(o),n=e(56592),d=e.n(n),l=e(41260);function c(Z,N,L){var $=new Date(Z),D=$.getFullYear(),T=(0,l.p)($.getMonth()+1),j=(0,l.p)($.getDate()),G=(0,l.p)($.getHours()),k=(0,l.p)($.getMinutes()),te=(0,l.p)($.getSeconds()),Y=(0,l.p)($.getMilliseconds(),3),q="".concat(D,"_").concat(T,"_").concat(j,"_").concat(G,"_").concat(k,"_").concat(te,"_").concat(Y);return N&&(q="".concat(N,"_").concat(q)),L&&(q="".concat(q,".").concat(L)),q}function m(Z,N){var L=JSON.stringify(Z),$=new Blob([L],{type:"application/json"}),D=URL.createObjectURL($),T=document.createElement("a");T.href=D,T.download=N,document.body.appendChild(T),T.click(),document.body.removeChild(T),URL.revokeObjectURL(D)}var g=function(N){return new Promise(function(L,$){var D=new Image;D.src=N,D.onload=function(){L(D)},D.onerror=function(){$(D)}})};function M(Z,N,L){return h.apply(this,arguments)}function h(){return h=d()(s()().mark(function Z(N,L,$){return s()().wrap(function(T){for(;;)switch(T.prev=T.next){case 0:return T.abrupt("return",new Promise(function(j,G){if(N.isDirectory){var k=N.createReader();k.readEntries(function(){var te=d()(s()().mark(function Y(q){var le;return s()().wrap(function(W){for(;;)switch(W.prev=W.next){case 0:le=0;case 1:if(!(le0)){le.next=25;break}G=t()(N.items),le.prev=7,G.s();case 9:if((k=G.n()).done){le.next=17;break}if(te=k.value,Y=te.webkitGetAsEntry(),!(Y!=null&&Y.isDirectory)){le.next=15;break}return le.next=15,M(Y,$,L);case 15:le.next=9;break;case 17:le.next=22;break;case 19:le.prev=19,le.t0=le.catch(7),G.e(le.t0);case 22:return le.prev=22,G.f(),le.finish(22);case 25:return le.abrupt("return",$);case 26:case"end":return le.stop()}},Z,null,[[7,19,22,25]])})),w.apply(this,arguments)}function C(Z){return z.apply(this,arguments)}function z(){return z=d()(s()().mark(function Z(N){return s()().wrap(function($){for(;;)switch($.prev=$.next){case 0:return $.abrupt("return",new Promise(function(D,T){var j=new Image;j.src=N,j.onload=function(){var G=j.width,k=j.height;D({width:G,height:k})},j.onerror=function(){T(new Error("Load Image Error"))}}));case 1:case"end":return $.stop()}},Z)})),z.apply(this,arguments)}},53357:function(b,y,e){"use strict";e.d(y,{Og:function(){return o},_w:function(){return t},bU:function(){return s}});var a=e(97375),t=function(d){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return(0,a.formatMessage)({id:d},l)},o=a.FormattedMessage,s=function(){var d=(0,a.useIntl)(),l=function(m){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return d.formatMessage({id:m},g)};return{localeText:l}}},23707:function(b,y,e){"use strict";e.d(y,{BQ:function(){return t},Oe:function(){return o},yS:function(){return s}});var a=e(97375),t=function(d){var l=new RegExp("(^|&)"+d+"=([^&]*)(&|$)","i"),c=window.location.search.substr(1).match(l);return c!==null?decodeURIComponent(c[2]):null},o=function(){var d=window.location.pathname.split("/");return d[d.length-1]},s=function(d){document.referrer.includes(d)?window.history.back():a.history.push(d)}},74324:function(b,y,e){"use strict";var a=e(88205).default,t=e(88479).default,o=e(16962).default,s=e(34485).default,n=e(75978),d=e(65140),l=e(96896),c=e(22475),m=function(T){return T==null};function g(D){switch(D.arrayFormat){case"index":return function(T){return function(j,G){var k=j.length;return G===void 0||D.skipNull&&G===null||D.skipEmptyString&&G===""?j:G===null?[].concat(s(j),[[S(T,D),"[",k,"]"].join("")]):[].concat(s(j),[[S(T,D),"[",S(k,D),"]=",S(G,D)].join("")])}};case"bracket":return function(T){return function(j,G){return G===void 0||D.skipNull&&G===null||D.skipEmptyString&&G===""?j:G===null?[].concat(s(j),[[S(T,D),"[]"].join("")]):[].concat(s(j),[[S(T,D),"[]=",S(G,D)].join("")])}};case"comma":case"separator":return function(T){return function(j,G){return G==null||G.length===0?j:j.length===0?[[S(T,D),"=",S(G,D)].join("")]:[[j,S(G,D)].join(D.arrayFormatSeparator)]}};default:return function(T){return function(j,G){return G===void 0||D.skipNull&&G===null||D.skipEmptyString&&G===""?j:G===null?[].concat(s(j),[S(T,D)]):[].concat(s(j),[[S(T,D),"=",S(G,D)].join("")])}}}}function M(D){var T;switch(D.arrayFormat){case"index":return function(j,G,k){if(T=/\[(\d*)\]$/.exec(j),j=j.replace(/\[\d*\]$/,""),!T){k[j]=G;return}k[j]===void 0&&(k[j]={}),k[j][T[1]]=G};case"bracket":return function(j,G,k){if(T=/(\[\])$/.exec(j),j=j.replace(/\[\]$/,""),!T){k[j]=G;return}if(k[j]===void 0){k[j]=[G];return}k[j]=[].concat(k[j],G)};case"comma":case"separator":return function(j,G,k){var te=typeof G=="string"&&G.includes(D.arrayFormatSeparator),Y=typeof G=="string"&&!te&&w(G,D).includes(D.arrayFormatSeparator);G=Y?w(G,D):G;var q=te||Y?G.split(D.arrayFormatSeparator).map(function(le){return w(le,D)}):G===null?G:w(G,D);k[j]=q};default:return function(j,G,k){if(k[j]===void 0){k[j]=G;return}k[j]=[].concat(k[j],G)}}}function h(D){if(typeof D!="string"||D.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function S(D,T){return T.encode?T.strict?n(D):encodeURIComponent(D):D}function w(D,T){return T.decode?d(D):D}function C(D){return Array.isArray(D)?D.sort():o(D)==="object"?C(Object.keys(D)).sort(function(T,j){return Number(T)-Number(j)}).map(function(T){return D[T]}):D}function z(D){var T=D.indexOf("#");return T!==-1&&(D=D.slice(0,T)),D}function Z(D){var T="",j=D.indexOf("#");return j!==-1&&(T=D.slice(j)),T}function N(D){D=z(D);var T=D.indexOf("?");return T===-1?"":D.slice(T+1)}function L(D,T){return T.parseNumbers&&!Number.isNaN(Number(D))&&typeof D=="string"&&D.trim()!==""?D=Number(D):T.parseBooleans&&D!==null&&(D.toLowerCase()==="true"||D.toLowerCase()==="false")&&(D=D.toLowerCase()==="true"),D}function $(D,T){T=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},T),h(T.arrayFormatSeparator);var j=M(T),G=Object.create(null);if(typeof D!="string"||(D=D.trim().replace(/^[?#&]/,""),!D))return G;var k=t(D.split("&")),te;try{for(k.s();!(te=k.n()).done;){var Y=te.value;if(Y!==""){var q=l(T.decode?Y.replace(/\+/g," "):Y,"="),le=a(q,2),X=le[0],W=le[1];W=W===void 0?null:["comma","separator"].includes(T.arrayFormat)?W:w(W,T),j(w(X,T),W,G)}}}catch(pe){k.e(pe)}finally{k.f()}for(var x=0,O=Object.keys(G);x0}).join("&")},y.parseUrl=function(D,T){T=Object.assign({decode:!0},T);var j=l(D,"#"),G=a(j,2),k=G[0],te=G[1];return Object.assign({url:k.split("?")[0]||"",query:$(N(D),T)},T&&T.parseFragmentIdentifier&&te?{fragmentIdentifier:w(te,T)}:{})},y.stringifyUrl=function(D,T){T=Object.assign({encode:!0,strict:!0},T);var j=z(D.url).split("?")[0]||"",G=y.extract(D.url),k=y.parse(G,{sort:!1}),te=Object.assign(k,D.query),Y=y.stringify(te,T);Y&&(Y="?".concat(Y));var q=Z(D.url);return D.fragmentIdentifier&&(q="#".concat(S(D.fragmentIdentifier,T))),"".concat(j).concat(Y).concat(q)},y.pick=function(D,T,j){j=Object.assign({parseFragmentIdentifier:!0},j);var G=y.parseUrl(D,j),k=G.url,te=G.query,Y=G.fragmentIdentifier;return y.stringifyUrl({url:k,query:c(te,T),fragmentIdentifier:Y},j)},y.exclude=function(D,T,j){var G=Array.isArray(T)?function(k){return!T.includes(k)}:function(k,te){return!T(k,te)};return y.pick(D,G,j)}},96896:function(b){"use strict";b.exports=function(y,e){if(!(typeof y=="string"&&typeof e=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(e==="")return[y];var a=y.indexOf(e);return a===-1?[y]:[y.slice(0,a),y.slice(a+e.length)]}},75978:function(b){"use strict";b.exports=function(y){return encodeURIComponent(y).replace(/[!'()*]/g,function(e){return"%".concat(e.charCodeAt(0).toString(16).toUpperCase())})}},60581:function(b,y,e){"use strict";e.d(y,{Il:function(){return o},Ov:function(){return s}});var a=e(58757),t=null,o=a.createContext({});function s(){return a.useContext(o)}function n(){var m=useLocation(),g=s(),M=g.clientRoutes,h=matchRoutes(M,m.pathname);return h||[]}function d(){var m,g=n().slice(-1),M=((m=g[0])===null||m===void 0?void 0:m.route)||{},h=M.element,S=_objectWithoutProperties(M,t);return S}function l(){var m=useRouteData(),g=s();return{data:g.serverLoaderData[m.route.id]}}function c(){var m=useRouteData(),g=s();return{data:g.clientLoaderData[m.route.id]}}},21325:function(b,y,e){"use strict";var a=e(23671),t=e(68716),o=e(8851);function s(n,d,l){l===void 0&&(l={});var c=(0,a.Z)(d);(0,o.Z)(function(){var m=(0,t.n)(l.target,window);if(m!=null&&m.addEventListener){var g=function(M){return c.current(M)};return m.addEventListener(n,g,{capture:l.capture,once:l.once,passive:l.passive}),function(){m.removeEventListener(n,g,{capture:l.capture})}}},[n,l.capture,l.once,l.passive],l.target)}y.Z=s},2556:function(b,y,e){"use strict";e.d(y,{Z:function(){return D}});var a=e(43112),t=e(23671),o=e(53807),s=e(68716),n=e(58757),d=e(8851),l=e(85466),c=e.n(l),m=function(T,j){return T===void 0&&(T=[]),j===void 0&&(j=[]),c()(T,j)},g=function(T,j,G){var k=(0,n.useRef)(),te=(0,n.useRef)(0);m(j,k.current)||(k.current=j,te.current+=1),(0,d.Z)(T,[te.current],G)},M=g,h=/(mac|iphone|ipod|ipad)/i.test(typeof navigator!="undefined"?navigator==null?void 0:navigator.platform:""),S=h,w={0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,pausebreak:19,capslock:20,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,leftarrow:37,uparrow:38,rightarrow:39,downarrow:40,insert:45,delete:46,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,leftwindowkey:91,rightwindowkey:92,meta:S?[91,93]:[91,92],selectkey:93,numpad0:96,numpad1:97,numpad2:98,numpad3:99,numpad4:100,numpad5:101,numpad6:102,numpad7:103,numpad8:104,numpad9:105,multiply:106,add:107,subtract:109,decimalpoint:110,divide: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,scrolllock:145,semicolon:186,equalsign:187,comma:188,dash:189,period:190,forwardslash:191,graveaccent:192,openbracket:219,backslash:220,closebracket:221,singlequote:222},C={ctrl:function(T){return T.ctrlKey},shift:function(T){return T.shiftKey},alt:function(T){return T.altKey},meta:function(T){return T.type==="keyup"?w.meta.includes(T.keyCode):T.metaKey}};function z(T){var j=Object.keys(C).reduce(function(G,k){return C[k](T)?G+1:G},0);return[16,17,18,91,92].includes(T.keyCode)?j:j+1}function Z(T,j,G){var k,te;if(!T.key)return!1;if((0,o.hj)(j))return T.keyCode===j;var Y=j.split("."),q=0;try{for(var le=(0,a.XA)(Y),X=le.next();!X.done;X=le.next()){var W=X.value,x=C[W],O=w[W.toLowerCase()];(x&&x(T)||O&&O===T.keyCode)&&q++}}catch(_){k={error:_}}finally{try{X&&!X.done&&(te=le.return)&&te.call(le)}finally{if(k)throw k.error}}return G?q===Y.length&&z(T)===Y.length:q===Y.length}function N(T,j){return(0,o.mf)(T)?T:(0,o.HD)(T)||(0,o.hj)(T)?function(G){return Z(G,T,j)}:Array.isArray(T)?function(G){return T.some(function(k){return Z(G,k,j)})}:function(){return!!T}}var L=["keydown"];function $(T,j,G){var k=G||{},te=k.events,Y=te===void 0?L:te,q=k.target,le=k.exactMatch,X=le===void 0?!1:le,W=k.useCapture,x=W===void 0?!1:W,O=(0,t.Z)(j),_=(0,t.Z)(T);M(function(){var U,A,V,fe=(0,s.n)(q,window);if(fe){var pe=function(Ge){var qe,Qe=N(_.current,X);if(Qe(Ge))return(qe=O.current)===null||qe===void 0?void 0:qe.call(O,Ge)};try{for(var ge=(0,a.XA)(Y),be=ge.next();!be.done;be=ge.next()){var Te=be.value;(V=fe==null?void 0:fe.addEventListener)===null||V===void 0||V.call(fe,Te,pe,x)}}catch(Ge){U={error:Ge}}finally{try{be&&!be.done&&(A=ge.return)&&A.call(ge)}finally{if(U)throw U.error}}return function(){var Ge,qe,Qe;try{for(var ht=(0,a.XA)(Y),Et=ht.next();!Et.done;Et=ht.next()){var gt=Et.value;(Qe=fe==null?void 0:fe.removeEventListener)===null||Qe===void 0||Qe.call(fe,gt,pe,x)}}catch(Ht){Ge={error:Ht}}finally{try{Et&&!Et.done&&(qe=ht.return)&&qe.call(ht)}finally{if(Ge)throw Ge.error}}}}},[Y],q)}var D=$},23671:function(b,y,e){"use strict";var a=e(58757);function t(o){var s=(0,a.useRef)(o);return s.current=o,s}y.Z=t},51129:function(b,y,e){"use strict";var a=e(58757),t=e(53807),o=e(8182);function s(n){o.Z&&((0,t.mf)(n)||console.error("useMemoizedFn expected parameter is a function, got ".concat(typeof n)));var d=(0,a.useRef)(n);d.current=(0,a.useMemo)(function(){return n},[n]);var l=(0,a.useRef)();return l.current||(l.current=function(){for(var c=[],m=0;m-1&&(J=setTimeout(function(){M.delete(Se)},We)),M.set(Se,(0,a.pi)((0,a.pi)({},re),{timer:J}))},S=function(Se){return M.get(Se)},w=function(Se){if(Se){var We=Array.isArray(Se)?Se:[Se];We.forEach(function(re){return M.delete(re)})}else M.clear()},C=new Map,z=function(Se){return C.get(Se)},Z=function(Se,We){C.set(Se,We),We.then(function(re){return C.delete(Se),re}).catch(function(){C.delete(Se)})},N={},L=function(Se,We){N[Se]&&N[Se].forEach(function(re){return re(We)})},$=function(Se,We){return N[Se]||(N[Se]=[]),N[Se].push(We),function(){var se=N[Se].indexOf(We);N[Se].splice(se,1)}},D=function(Se,We){var re=We.cacheKey,se=We.cacheTime,J=se===void 0?5*60*1e3:se,de=We.staleTime,xe=de===void 0?0:de,ce=We.setCache,Ne=We.getCache,Oe=(0,t.useRef)(),we=(0,t.useRef)(),Re=function(tt,Ye){ce?ce(Ye):h(tt,J,Ye),L(tt,Ye.data)},st=function(tt,Ye){return Ye===void 0&&(Ye=[]),Ne?Ne(Ye):S(tt)};return m(function(){if(re){var tt=st(re);tt&&Object.hasOwnProperty.call(tt,"data")&&(Se.state.data=tt.data,Se.state.params=tt.params,(xe===-1||new Date().getTime()-tt.time<=xe)&&(Se.state.loading=!1)),Oe.current=$(re,function(Ye){Se.setState({data:Ye})})}},[]),(0,g.Z)(function(){var tt;(tt=Oe.current)===null||tt===void 0||tt.call(Oe)}),re?{onBefore:function(tt){var Ye=st(re,tt);return!Ye||!Object.hasOwnProperty.call(Ye,"data")?{}:xe===-1||new Date().getTime()-Ye.time<=xe?{loading:!1,data:Ye==null?void 0:Ye.data,error:void 0,returnNow:!0}:{data:Ye==null?void 0:Ye.data,error:void 0}},onRequest:function(tt,Ye){var ke=z(re);return ke&&ke!==we.current?{servicePromise:ke}:(ke=tt.apply(void 0,(0,a.ev)([],(0,a.CR)(Ye),!1)),we.current=ke,Z(re,ke),{servicePromise:ke})},onSuccess:function(tt,Ye){var ke;re&&((ke=Oe.current)===null||ke===void 0||ke.call(Oe),Re(re,{data:tt,params:Ye,time:new Date().getTime()}),Oe.current=$(re,function(Be){Se.setState({data:Be})}))},onMutate:function(tt){var Ye;re&&((Ye=Oe.current)===null||Ye===void 0||Ye.call(Oe),Re(re,{data:tt,params:Se.state.params,time:new Date().getTime()}),Oe.current=$(re,function(ke){Se.setState({data:ke})}))}}:{}},T=D,j=e(77837),G=e.n(j),k=function(Se,We){var re=We.debounceWait,se=We.debounceLeading,J=We.debounceTrailing,de=We.debounceMaxWait,xe=(0,t.useRef)(),ce=(0,t.useMemo)(function(){var Ne={};return se!==void 0&&(Ne.leading=se),J!==void 0&&(Ne.trailing=J),de!==void 0&&(Ne.maxWait=de),Ne},[se,J,de]);return(0,t.useEffect)(function(){if(re){var Ne=Se.runAsync.bind(Se);return xe.current=G()(function(Oe){Oe()},re,ce),Se.runAsync=function(){for(var Oe=[],we=0;we-1&&pe.splice(re,1)}}if(le.Z){var be=function(){if(!(!X()||!fe()))for(var Se=0;Se{const{type:c,children:m,prefixCls:g,buttonProps:M,close:h,autoFocus:S,emitEvent:w,isSilent:C,quitOnNullishReturnValue:z,actionFn:Z}=l,N=t.useRef(!1),L=t.useRef(null),[$,D]=(0,a.Z)(!1),T=function(){h==null||h.apply(void 0,arguments)};t.useEffect(()=>{let k=null;return S&&(k=setTimeout(()=>{var te;(te=L.current)===null||te===void 0||te.focus()})),()=>{k&&clearTimeout(k)}},[]);const j=k=>{n(k)&&(D(!0),k.then(function(){D(!1,!0),T.apply(void 0,arguments),N.current=!1},te=>{if(D(!1,!0),N.current=!1,!(C!=null&&C()))return Promise.reject(te)}))},G=k=>{if(N.current)return;if(N.current=!0,!Z){T();return}let te;if(w){if(te=Z(k),z&&!n(te)){N.current=!1,T(k);return}}else if(Z.length)te=Z(h),N.current=!1;else if(te=Z(),!te){T();return}j(te)};return t.createElement(o.ZP,Object.assign({},(0,s.n)(c),{onClick:G,loading:$,prefixCls:g},M,{ref:L}),m)};y.Z=d},15018:function(b,y,e){"use strict";e.d(y,{Z:function(){return d},i:function(){return n}});var a=e(60409),t=e(58757),o=e(42505),s=e(61836);function n(l){return function(m){return t.createElement(o.ZP,{theme:{token:{motion:!1,zIndexPopupBase:0}}},t.createElement(l,Object.assign({},m)))}}function d(l,c,m,g){function M(h){const{prefixCls:S,style:w}=h,C=t.useRef(null),[z,Z]=t.useState(0),[N,L]=t.useState(0),[$,D]=(0,a.Z)(!1,{value:h.open}),{getPrefixCls:T}=t.useContext(s.E_),j=T(c||"select",S);t.useEffect(()=>{if(D(!0),typeof ResizeObserver!="undefined"){const k=new ResizeObserver(Y=>{const q=Y[0].target;Z(q.offsetHeight+8),L(q.offsetWidth)}),te=setInterval(()=>{var Y;const q=m?`.${m(j)}`:`.${j}-dropdown`,le=(Y=C.current)===null||Y===void 0?void 0:Y.querySelector(q);le&&(clearInterval(te),k.observe(le))},10);return()=>{clearInterval(te),k.disconnect()}}},[]);let G=Object.assign(Object.assign({},h),{style:Object.assign(Object.assign({},w),{margin:0}),open:$,visible:$,getPopupContainer:()=>C.current});return g&&(G=g(G)),t.createElement("div",{ref:C,style:{paddingBottom:z,position:"relative",minWidth:N}},t.createElement(l,Object.assign({},G)))}return n(M)}},1878:function(b,y,e){"use strict";e.d(y,{o2:function(){return n},yT:function(){return d}});var a=e(29140),t=e(34966);const o=t.i.map(l=>`${l}-inverse`),s=["success","processing","error","default","warning"];function n(l){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)?[].concat((0,a.Z)(o),(0,a.Z)(t.i)).includes(l):t.i.includes(l)}function d(l){return s.includes(l)}},44818:function(b,y){"use strict";function e(){const a=Object.assign({},arguments.length<=0?void 0:arguments[0]);for(let t=1;t{const n=o[s];n!==void 0&&(a[s]=n)})}return a}y.Z=e},99836:function(b,y,e){"use strict";e.d(y,{Z:function(){return a}});const a=t=>t?typeof t=="function"?t():t:null},88858:function(b,y,e){"use strict";e.d(y,{Z:function(){return s}});var a=e(52495),t=e(58757);function o(n,d,l){return typeof n=="boolean"?n:d===void 0?!!l:d!==!1&&d!==null}function s(n,d,l){let c=arguments.length>3&&arguments[3]!==void 0?arguments[3]:t.createElement(a.Z,null),m=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(!o(n,d,m))return[!1,null];const M=typeof d=="boolean"||d===void 0||d===null?c:d;return[!0,l?l(M):M]}},69387:function(b,y,e){"use strict";var a=e(58757),t=e(32792);y.Z=()=>{const[o,s]=a.useState(!1);return a.useEffect(()=>{s((0,t.fk)())},[]),o}},4459:function(b,y,e){"use strict";e.d(y,{Z:function(){return t}});var a=e(58757);function t(){const[,o]=a.useReducer(s=>s+1,0);return o}},90881:function(b,y,e){"use strict";e.d(y,{m:function(){return l}});const a=()=>({height:0,opacity:0}),t=c=>{const{scrollHeight:m}=c;return{height:m,opacity:1}},o=c=>({height:c?c.offsetHeight:0}),s=(c,m)=>(m==null?void 0:m.deadline)===!0||m.propertyName==="height",n=function(){return{motionName:`${arguments.length>0&&arguments[0]!==void 0?arguments[0]:"ant"}-motion-collapse`,onAppearStart:a,onEnterStart:a,onAppearActive:t,onEnterActive:t,onLeaveStart:o,onLeaveActive:a,onAppearEnd:s,onEnterEnd:s,onLeaveEnd:s,motionDeadline:500}},d=null,l=(c,m,g)=>g!==void 0?g:`${c}-${m}`;y.Z=n},95446:function(b,y,e){"use strict";e.d(y,{Z:function(){return d}});var a=e(24542);function t(l,c,m,g){if(g===!1)return{adjustX:!1,adjustY:!1};const M=g&&typeof g=="object"?g:{},h={};switch(l){case"top":case"bottom":h.shiftX=c.dropdownArrowOffset*2+m;break;case"left":case"right":h.shiftY=c.dropdownArrowOffsetVertical*2+m;break}const S=Object.assign(Object.assign({},h),M);return S.shiftX||(S.adjustX=!0),S.shiftY||(S.adjustY=!0),S}const o={left:{points:["cr","cl"]},right:{points:["cl","cr"]},top:{points:["bc","tc"]},bottom:{points:["tc","bc"]},topLeft:{points:["bl","tl"]},leftTop:{points:["tr","tl"]},topRight:{points:["br","tr"]},rightTop:{points:["tl","tr"]},bottomRight:{points:["tr","br"]},rightBottom:{points:["bl","br"]},bottomLeft:{points:["tl","bl"]},leftBottom:{points:["br","bl"]}},s={topLeft:{points:["bl","tc"]},leftTop:{points:["tr","cl"]},topRight:{points:["br","tc"]},rightTop:{points:["tl","cr"]},bottomRight:{points:["tr","bc"]},rightBottom:{points:["bl","cr"]},bottomLeft:{points:["tl","bc"]},leftBottom:{points:["br","cl"]}},n=new Set(["topLeft","topRight","bottomLeft","bottomRight","leftTop","leftBottom","rightTop","rightBottom"]);function d(l){const{arrowWidth:c,autoAdjustOverflow:m,arrowPointAtCenter:g,offset:M,borderRadius:h,visibleFirst:S}=l,w=c/2,C={};return Object.keys(o).forEach(z=>{const Z=g&&s[z]||o[z],N=Object.assign(Object.assign({},Z),{offset:[0,0]});switch(C[z]=N,n.has(z)&&(N.autoArrow=!1),z){case"top":case"topLeft":case"topRight":N.offset[1]=-w-M;break;case"bottom":case"bottomLeft":case"bottomRight":N.offset[1]=w+M;break;case"left":case"leftTop":case"leftBottom":N.offset[0]=-w-M;break;case"right":case"rightTop":case"rightBottom":N.offset[0]=w+M;break}const L=(0,a.fS)({contentRadius:h,limitVerticalRadius:!0});if(g)switch(z){case"topLeft":case"bottomLeft":N.offset[0]=-L.dropdownArrowOffset-w;break;case"topRight":case"bottomRight":N.offset[0]=L.dropdownArrowOffset+w;break;case"leftTop":case"rightTop":N.offset[1]=-L.dropdownArrowOffset-w;break;case"leftBottom":case"rightBottom":N.offset[1]=L.dropdownArrowOffset+w;break}N.overflow=t(z,L,c,m),S&&(N.htmlRegion="visibleFirst")}),C}},37047:function(b,y,e){"use strict";var a;e.d(y,{M2:function(){return s},Tm:function(){return d},l$:function(){return o},wm:function(){return n}});var t=e(58757);const{isValidElement:o}=a||(a=e.t(t,2));function s(l){return l&&o(l)&&l.type===t.Fragment}function n(l,c,m){return o(l)?t.cloneElement(l,typeof m=="function"?m(l.props||{}):m):c}function d(l,c){return n(l,l,c)}},87078:function(b,y,e){"use strict";e.d(y,{Z:function(){return d},c:function(){return o}});var a=e(58757),t=e(51806);const o=["xxl","xl","lg","md","sm","xs"],s=l=>({xs:`(max-width: ${l.screenXSMax}px)`,sm:`(min-width: ${l.screenSM}px)`,md:`(min-width: ${l.screenMD}px)`,lg:`(min-width: ${l.screenLG}px)`,xl:`(min-width: ${l.screenXL}px)`,xxl:`(min-width: ${l.screenXXL}px)`}),n=l=>{const c=l,m=[].concat(o).reverse();return m.forEach((g,M)=>{const h=g.toUpperCase(),S=`screen${h}Min`,w=`screen${h}`;if(!(c[S]<=c[w]))throw new Error(`${S}<=${w} fails : !(${c[S]}<=${c[w]})`);if(M{const m=new Map;let g=-1,M={};return{matchHandlers:{},dispatch(h){return M=h,m.forEach(S=>S(M)),m.size>=1},subscribe(h){return m.size||this.register(),g+=1,m.set(g,h),h(M),g},unsubscribe(h){m.delete(h),m.size||this.unregister()},unregister(){Object.keys(c).forEach(h=>{const S=c[h],w=this.matchHandlers[S];w==null||w.mql.removeListener(w==null?void 0:w.listener)}),m.clear()},register(){Object.keys(c).forEach(h=>{const S=c[h],w=z=>{let{matches:Z}=z;this.dispatch(Object.assign(Object.assign({},M),{[h]:Z}))},C=window.matchMedia(S);C.addListener(w),this.matchHandlers[S]={mql:C,listener:w},w(C)})},responsiveMap:c}},[l])}},41496:function(b,y,e){"use strict";e.d(y,{F:function(){return n},Z:function(){return s}});var a=e(87608),t=e.n(a);const o=null;function s(d,l,c){return t()({[`${d}-status-success`]:l==="success",[`${d}-status-warning`]:l==="warning",[`${d}-status-error`]:l==="error",[`${d}-status-validating`]:l==="validating",[`${d}-has-feedback`]:c})}const n=(d,l)=>l||d},32792:function(b,y,e){"use strict";e.d(y,{fk:function(){return s},jD:function(){return t}});var a=e(19075);const t=()=>(0,a.Z)()&&window.document.documentElement;let o;const s=()=>{if(!t())return!1;if(o!==void 0)return o;const n=document.createElement("div");n.style.display="flex",n.style.flexDirection="column",n.style.rowGap="1px",n.appendChild(document.createElement("div")),n.appendChild(document.createElement("div"));const d=document.createElement("div");return d.style.position="absolute",d.style.zIndex="-9999",d.appendChild(n),document.body.appendChild(d),o=n.scrollHeight===1,document.body.removeChild(d),o}},37486:function(b,y,e){"use strict";e.d(y,{Z:function(){return te}});var a=e(87608),t=e.n(a),o=e(21319),s=e(46499),n=e(58757),d=e(61836),l=e(37047),c=e(52628);const m=Y=>{const{componentCls:q,colorPrimary:le}=Y;return{[q]:{position:"absolute",background:"transparent",pointerEvents:"none",boxSizing:"border-box",color:`var(--wave-color, ${le})`,boxShadow:"0 0 0 0 currentcolor",opacity:.2,"&.wave-motion-appear":{transition:[`box-shadow 0.4s ${Y.motionEaseOutCirc}`,`opacity 2s ${Y.motionEaseOutCirc}`].join(","),"&-active":{boxShadow:"0 0 0 6px currentcolor",opacity:0},"&.wave-quick":{transition:[`box-shadow 0.3s ${Y.motionEaseInOut}`,`opacity 0.35s ${Y.motionEaseInOut}`].join(",")}}}}};var g=(0,c.Z)("Wave",Y=>[m(Y)]),M=e(51729),h=e(61834),S=e(17598),w=e(52323);function C(Y){const q=(Y||"").match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);return q&&q[1]&&q[2]&&q[3]?!(q[1]===q[2]&&q[2]===q[3]):!0}function z(Y){return Y&&Y!=="#fff"&&Y!=="#ffffff"&&Y!=="rgb(255, 255, 255)"&&Y!=="rgba(255, 255, 255, 1)"&&C(Y)&&!/rgba\((?:\d*, ){3}0\)/.test(Y)&&Y!=="transparent"}function Z(Y){const{borderTopColor:q,borderColor:le,backgroundColor:X}=getComputedStyle(Y);return z(q)?q:z(le)?le:z(X)?X:null}var N=e(78856);function L(Y){return Number.isNaN(Y)?0:Y}const $=Y=>{const{className:q,target:le,component:X}=Y,W=n.useRef(null),[x,O]=n.useState(null),[_,U]=n.useState([]),[A,V]=n.useState(0),[fe,pe]=n.useState(0),[ge,be]=n.useState(0),[Te,Ge]=n.useState(0),[qe,Qe]=n.useState(!1),ht={left:A,top:fe,width:ge,height:Te,borderRadius:_.map(Ht=>`${Ht}px`).join(" ")};x&&(ht["--wave-color"]=x);function Et(){const Ht=getComputedStyle(le);O(Z(le));const $e=Ht.position==="static",{borderLeftWidth:Xe,borderTopWidth:rt}=Ht;V($e?le.offsetLeft:L(-parseFloat(Xe))),pe($e?le.offsetTop:L(-parseFloat(rt))),be(le.offsetWidth),Ge(le.offsetHeight);const{borderTopLeftRadius:Ke,borderTopRightRadius:ye,borderBottomLeftRadius:ne,borderBottomRightRadius:H}=Ht;U([Ke,ye,H,ne].map(R=>L(parseFloat(R))))}if(n.useEffect(()=>{if(le){const Ht=(0,h.Z)(()=>{Et(),Qe(!0)});let $e;return typeof ResizeObserver!="undefined"&&($e=new ResizeObserver(Et),$e.observe(le)),()=>{h.Z.cancel(Ht),$e==null||$e.disconnect()}}},[]),!qe)return null;const gt=(X==="Checkbox"||X==="Radio")&&(le==null?void 0:le.classList.contains(N.A));return n.createElement(S.ZP,{visible:!0,motionAppear:!0,motionName:"wave-motion",motionDeadline:5e3,onAppearEnd:(Ht,$e)=>{var Xe;if($e.deadline||$e.propertyName==="opacity"){const rt=(Xe=W.current)===null||Xe===void 0?void 0:Xe.parentElement;(0,w.v)(rt).then(()=>{rt==null||rt.remove()})}return!1}},Ht=>{let{className:$e}=Ht;return n.createElement("div",{ref:W,className:t()(q,{"wave-quick":gt},$e),style:ht})})};var T=(Y,q)=>{var le;const{component:X}=q;if(X==="Checkbox"&&!(!((le=Y.querySelector("input"))===null||le===void 0)&&le.checked))return;const W=document.createElement("div");W.style.position="absolute",W.style.left="0px",W.style.top="0px",Y==null||Y.insertBefore(W,Y==null?void 0:Y.firstChild),(0,w.s)(n.createElement($,Object.assign({},q,{target:Y})),W)},j=e(51806);function G(Y,q,le){const{wave:X}=n.useContext(d.E_),[,W,x]=(0,j.Z)(),O=(0,M.Z)(A=>{const V=Y.current;if(X!=null&&X.disabled||!V)return;const fe=V.querySelector(`.${N.A}`)||V,{showEffect:pe}=X||{};(pe||T)(fe,{className:q,token:W,component:le,event:A,hashId:x})}),_=n.useRef();return A=>{h.Z.cancel(_.current),_.current=(0,h.Z)(()=>{O(A)})}}var te=Y=>{const{children:q,disabled:le,component:X}=Y,{getPrefixCls:W}=(0,n.useContext)(d.E_),x=(0,n.useRef)(null),O=W("wave"),[,_]=g(O),U=G(x,t()(O,_),X);if(n.useEffect(()=>{const V=x.current;if(!V||V.nodeType!==1||le)return;const fe=pe=>{!(0,s.Z)(pe.target)||!V.getAttribute||V.getAttribute("disabled")||V.disabled||V.className.includes("disabled")||V.className.includes("-leave")||U(pe)};return V.addEventListener("click",fe,!0),()=>{V.removeEventListener("click",fe,!0)}},[le]),!n.isValidElement(q))return q!=null?q:null;const A=(0,o.Yr)(q)?(0,o.sQ)(q.ref,x):x;return(0,l.Tm)(q,{ref:A})}},78856:function(b,y,e){"use strict";e.d(y,{A:function(){return a}});const a="ant-wave-target"},15618:function(b,y,e){"use strict";e.d(y,{Z:function(){return U}});var a=e(85678),t=e(79999),o=e(52495),s=e(69831),n=e(33064),d=e(87608),l=e.n(d),c=e(17598),m=e(33926),g=e(58757),M=e(37047),h=e(61836),S=e(78330),w=e(52628),C=e(22151);const z=(A,V,fe,pe,ge)=>({backgroundColor:A,border:`${pe.lineWidth}px ${pe.lineType} ${V}`,[`${ge}-icon`]:{color:fe}}),Z=A=>{const{componentCls:V,motionDurationSlow:fe,marginXS:pe,marginSM:ge,fontSize:be,fontSizeLG:Te,lineHeight:Ge,borderRadiusLG:qe,motionEaseInOutCirc:Qe,alertIconSizeLG:ht,colorText:Et,paddingContentVerticalSM:gt,alertPaddingHorizontal:Ht,paddingMD:$e,paddingContentHorizontalLG:Xe,colorTextHeading:rt}=A;return{[V]:Object.assign(Object.assign({},(0,S.Wf)(A)),{position:"relative",display:"flex",alignItems:"center",padding:`${gt}px ${Ht}px`,wordWrap:"break-word",borderRadius:qe,[`&${V}-rtl`]:{direction:"rtl"},[`${V}-content`]:{flex:1,minWidth:0},[`${V}-icon`]:{marginInlineEnd:pe,lineHeight:0},["&-description"]:{display:"none",fontSize:be,lineHeight:Ge},"&-message":{color:Et},[`&${V}-motion-leave`]:{overflow:"hidden",opacity:1,transition:`max-height ${fe} ${Qe}, opacity ${fe} ${Qe}, + padding-top ${fe} ${Qe}, padding-bottom ${fe} ${Qe}, + margin-bottom ${fe} ${Qe}`},[`&${V}-motion-leave-active`]:{maxHeight:0,marginBottom:"0 !important",paddingTop:0,paddingBottom:0,opacity:0}}),[`${V}-with-description`]:{alignItems:"flex-start",paddingInline:Xe,paddingBlock:$e,[`${V}-icon`]:{marginInlineEnd:ge,fontSize:ht,lineHeight:0},[`${V}-message`]:{display:"block",marginBottom:pe,color:rt,fontSize:Te},[`${V}-description`]:{display:"block"}},[`${V}-banner`]:{marginBottom:0,border:"0 !important",borderRadius:0}}},N=A=>{const{componentCls:V,colorSuccess:fe,colorSuccessBorder:pe,colorSuccessBg:ge,colorWarning:be,colorWarningBorder:Te,colorWarningBg:Ge,colorError:qe,colorErrorBorder:Qe,colorErrorBg:ht,colorInfo:Et,colorInfoBorder:gt,colorInfoBg:Ht}=A;return{[V]:{"&-success":z(ge,pe,fe,A,V),"&-info":z(Ht,gt,Et,A,V),"&-warning":z(Ge,Te,be,A,V),"&-error":Object.assign(Object.assign({},z(ht,Qe,qe,A,V)),{[`${V}-description > pre`]:{margin:0,padding:0}})}}},L=A=>{const{componentCls:V,iconCls:fe,motionDurationMid:pe,marginXS:ge,fontSizeIcon:be,colorIcon:Te,colorIconHover:Ge}=A;return{[V]:{["&-action"]:{marginInlineStart:ge},[`${V}-close-icon`]:{marginInlineStart:ge,padding:0,overflow:"hidden",fontSize:be,lineHeight:`${be}px`,backgroundColor:"transparent",border:"none",outline:"none",cursor:"pointer",[`${fe}-close`]:{color:Te,transition:`color ${pe}`,"&:hover":{color:Ge}}},"&-close-text":{color:Te,transition:`color ${pe}`,"&:hover":{color:Ge}}}}},$=A=>[Z(A),N(A),L(A)];var D=(0,w.Z)("Alert",A=>{const{fontSizeHeading3:V}=A,fe=(0,C.TS)(A,{alertIconSizeLG:V,alertPaddingHorizontal:12});return[$(fe)]}),T=function(A,V){var fe={};for(var pe in A)Object.prototype.hasOwnProperty.call(A,pe)&&V.indexOf(pe)<0&&(fe[pe]=A[pe]);if(A!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ge=0,pe=Object.getOwnPropertySymbols(A);ge{const{icon:V,prefixCls:fe,type:pe}=A,ge=j[pe]||null;return V?(0,M.wm)(V,g.createElement("span",{className:`${fe}-icon`},V),()=>({className:l()(`${fe}-icon`,{[V.props.className]:V.props.className})})):g.createElement(ge,{className:`${fe}-icon`})},k=A=>{const{isClosable:V,prefixCls:fe,closeIcon:pe,handleClose:ge}=A,be=pe===!0||pe===void 0?g.createElement(o.Z,null):pe;return V?g.createElement("button",{type:"button",onClick:ge,className:`${fe}-close-icon`,tabIndex:0},be):null};var Y=A=>{const{description:V,prefixCls:fe,message:pe,banner:ge,className:be,rootClassName:Te,style:Ge,onMouseEnter:qe,onMouseLeave:Qe,onClick:ht,afterClose:Et,showIcon:gt,closable:Ht,closeText:$e,closeIcon:Xe,action:rt}=A,Ke=T(A,["description","prefixCls","message","banner","className","rootClassName","style","onMouseEnter","onMouseLeave","onClick","afterClose","showIcon","closable","closeText","closeIcon","action"]),[ye,ne]=g.useState(!1),H=g.useRef(null),{getPrefixCls:R,direction:P,alert:ae}=g.useContext(h.E_),Q=R("alert",fe),[ie,me]=D(Q),je=J=>{var de;ne(!0),(de=A.onClose)===null||de===void 0||de.call(A,J)},Ce=g.useMemo(()=>A.type!==void 0?A.type:ge?"warning":"info",[A.type,ge]),Se=g.useMemo(()=>$e?!0:typeof Ht=="boolean"?Ht:Xe!==!1&&Xe!==null&&Xe!==void 0,[$e,Xe,Ht]),We=ge&>===void 0?!0:gt,re=l()(Q,`${Q}-${Ce}`,{[`${Q}-with-description`]:!!V,[`${Q}-no-icon`]:!We,[`${Q}-banner`]:!!ge,[`${Q}-rtl`]:P==="rtl"},ae==null?void 0:ae.className,be,Te,me),se=(0,m.Z)(Ke,{aria:!0,data:!0});return ie(g.createElement(c.ZP,{visible:!ye,motionName:`${Q}-motion`,motionAppear:!1,motionEnter:!1,onLeaveStart:J=>({maxHeight:J.offsetHeight}),onLeaveEnd:Et},J=>{let{className:de,style:xe}=J;return g.createElement("div",Object.assign({ref:H,"data-show":!ye,className:l()(re,de),style:Object.assign(Object.assign(Object.assign({},ae==null?void 0:ae.style),Ge),xe),onMouseEnter:qe,onMouseLeave:Qe,onClick:ht,role:"alert"},se),We?g.createElement(G,{description:V,icon:A.icon,prefixCls:Q,type:Ce}):null,g.createElement("div",{className:`${Q}-content`},pe?g.createElement("div",{className:`${Q}-message`},pe):null,V?g.createElement("div",{className:`${Q}-description`},V):null),rt?g.createElement("div",{className:`${Q}-action`},rt):null,g.createElement(k,{isClosable:Se,prefixCls:Q,closeIcon:$e||Xe,handleClose:je}))}))},q=e(60412),le=e(14346),X=e(87498),W=e(73726),O=function(A){(0,X.Z)(fe,A);var V=(0,W.Z)(fe);function fe(){var pe;return(0,q.Z)(this,fe),pe=V.apply(this,arguments),pe.state={error:void 0,info:{componentStack:""}},pe}return(0,le.Z)(fe,[{key:"componentDidCatch",value:function(ge,be){this.setState({error:ge,info:be})}},{key:"render",value:function(){const{message:ge,description:be,children:Te}=this.props,{error:Ge,info:qe}=this.state,Qe=qe&&qe.componentStack?qe.componentStack:null,ht=typeof ge=="undefined"?(Ge||"").toString():ge,Et=typeof be=="undefined"?Qe:be;return Ge?g.createElement(Y,{type:"error",message:ht,description:g.createElement("pre",{style:{fontSize:"0.9em",overflowX:"auto"}},Et)}):Te}}]),fe}(g.Component);const _=Y;_.ErrorBoundary=O;var U=_},70921:function(b,y,e){"use strict";e.d(y,{n:function(){return re},Z:function(){return xe}});var a=e(87608),t=e.n(a),o=e(98186),s=e(21319),n=e(58757),d=e(37486),l=e(61836),c=e(92428),m=e(58785),g=e(43528),h=(0,n.forwardRef)((ce,Ne)=>{const{className:Oe,style:we,children:Re,prefixCls:st}=ce,tt=t()(`${st}-icon`,Oe);return n.createElement("span",{ref:Ne,className:tt,style:we},Re)}),S=e(25755),w=e(17598);const C=(0,n.forwardRef)((ce,Ne)=>{let{prefixCls:Oe,className:we,style:Re,iconClassName:st}=ce;const tt=t()(`${Oe}-loading-icon`,we);return n.createElement(h,{prefixCls:Oe,className:tt,style:Re,ref:Ne},n.createElement(S.Z,{className:st}))}),z=()=>({width:0,opacity:0,transform:"scale(0)"}),Z=ce=>({width:ce.scrollWidth,opacity:1,transform:"scale(1)"});var L=ce=>{const{prefixCls:Ne,loading:Oe,existIcon:we,className:Re,style:st}=ce,tt=!!Oe;return we?n.createElement(C,{prefixCls:Ne,className:Re,style:st}):n.createElement(w.ZP,{visible:tt,motionName:`${Ne}-loading-icon-motion`,removeOnLeave:!0,onAppearStart:z,onAppearActive:Z,onEnterStart:z,onEnterActive:Z,onLeaveStart:Z,onLeaveActive:z},(Ye,ke)=>{let{className:Be,style:it}=Ye;return n.createElement(C,{prefixCls:Ne,className:Re,style:Object.assign(Object.assign({},st),it),ref:ke,iconClassName:Be})})},$=e(51806),D=function(ce,Ne){var Oe={};for(var we in ce)Object.prototype.hasOwnProperty.call(ce,we)&&Ne.indexOf(we)<0&&(Oe[we]=ce[we]);if(ce!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Re=0,we=Object.getOwnPropertySymbols(ce);Re{const{getPrefixCls:Ne,direction:Oe}=n.useContext(l.E_),{prefixCls:we,size:Re,className:st}=ce,tt=D(ce,["prefixCls","size","className"]),Ye=Ne("btn-group",we),[,,ke]=(0,$.Z)();let Be="";switch(Re){case"large":Be="lg";break;case"small":Be="sm";break;case"middle":case void 0:break;default:}const it=t()(Ye,{[`${Ye}-${Be}`]:Be,[`${Ye}-rtl`]:Oe==="rtl"},st,ke);return n.createElement(T.Provider,{value:Re},n.createElement("div",Object.assign({},tt,{className:it})))},k=e(37047);const te=/^[\u4e00-\u9fa5]{2}$/,Y=te.test.bind(te);function q(ce){return typeof ce=="string"}function le(ce){return ce==="text"||ce==="link"}function X(ce,Ne){if(ce==null)return;const Oe=Ne?" ":"";return typeof ce!="string"&&typeof ce!="number"&&q(ce.type)&&Y(ce.props.children)?(0,k.Tm)(ce,{children:ce.props.children.split("").join(Oe)}):q(ce)?Y(ce)?n.createElement("span",null,ce.split("").join(Oe)):n.createElement("span",null,ce):(0,k.M2)(ce)?n.createElement("span",null,ce):ce}function W(ce,Ne){let Oe=!1;const we=[];return n.Children.forEach(ce,Re=>{const st=typeof Re,tt=st==="string"||st==="number";if(Oe&&tt){const Ye=we.length-1,ke=we[Ye];we[Ye]=`${ke}${Re}`}else we.push(Re);Oe=tt}),n.Children.map(we,Re=>X(Re,Ne))}const x=null,O=null,_=null;var U=e(78330),A=e(64493);function V(ce,Ne){return{[`&-item:not(${Ne}-last-item)`]:{marginBottom:-ce.lineWidth},"&-item":{"&:hover,&:focus,&:active":{zIndex:2},"&[disabled]":{zIndex:0}}}}function fe(ce,Ne){return{[`&-item:not(${Ne}-first-item):not(${Ne}-last-item)`]:{borderRadius:0},[`&-item${Ne}-first-item:not(${Ne}-last-item)`]:{[`&, &${ce}-sm, &${ce}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${Ne}-last-item:not(${Ne}-first-item)`]:{[`&, &${ce}-sm, &${ce}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}}function pe(ce){const Ne=`${ce.componentCls}-compact-vertical`;return{[Ne]:Object.assign(Object.assign({},V(ce,Ne)),fe(ce.componentCls,Ne))}}var ge=e(22151),be=e(52628);const Te=(ce,Ne)=>({[`> span, > ${ce}`]:{"&:not(:last-child)":{[`&, & > ${ce}`]:{"&:not(:disabled)":{borderInlineEndColor:Ne}}},"&:not(:first-child)":{[`&, & > ${ce}`]:{"&:not(:disabled)":{borderInlineStartColor:Ne}}}}});var qe=ce=>{const{componentCls:Ne,fontSize:Oe,lineWidth:we,colorPrimaryHover:Re,colorErrorHover:st}=ce;return{[`${Ne}-group`]:[{position:"relative",display:"inline-flex",[`> span, > ${Ne}`]:{"&:not(:last-child)":{[`&, & > ${Ne}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:-we,[`&, & > ${Ne}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[Ne]:{position:"relative",zIndex:1,[`&:hover, + &:focus, + &:active`]:{zIndex:2},"&[disabled]":{zIndex:0}},[`${Ne}-icon-only`]:{fontSize:Oe}},Te(`${Ne}-primary`,Re),Te(`${Ne}-danger`,st)]}};const Qe=ce=>{const{componentCls:Ne,iconCls:Oe,buttonFontWeight:we}=ce;return{[Ne]:{outline:"none",position:"relative",display:"inline-block",fontWeight:we,whiteSpace:"nowrap",textAlign:"center",backgroundImage:"none",backgroundColor:"transparent",border:`${ce.lineWidth}px ${ce.lineType} transparent`,cursor:"pointer",transition:`all ${ce.motionDurationMid} ${ce.motionEaseInOut}`,userSelect:"none",touchAction:"manipulation",lineHeight:ce.lineHeight,color:ce.colorText,"&:disabled > *":{pointerEvents:"none"},"> span":{display:"inline-block"},[`${Ne}-icon`]:{lineHeight:0},[`> ${Oe} + span, > span + ${Oe}`]:{marginInlineStart:ce.marginXS},[`&:not(${Ne}-icon-only) > ${Ne}-icon`]:{[`&${Ne}-loading-icon, &:not(:last-child)`]:{marginInlineEnd:ce.marginXS}},"> a":{color:"currentColor"},"&:not(:disabled)":Object.assign({},(0,U.Qy)(ce)),[`&-icon-only${Ne}-compact-item`]:{flex:"none"},[`&-compact-item${Ne}-primary`]:{[`&:not([disabled]) + ${Ne}-compact-item${Ne}-primary:not([disabled])`]:{position:"relative","&:before":{position:"absolute",top:-ce.lineWidth,insetInlineStart:-ce.lineWidth,display:"inline-block",width:ce.lineWidth,height:`calc(100% + ${ce.lineWidth*2}px)`,backgroundColor:ce.colorPrimaryHover,content:'""'}}},"&-compact-vertical-item":{[`&${Ne}-primary`]:{[`&:not([disabled]) + ${Ne}-compact-vertical-item${Ne}-primary:not([disabled])`]:{position:"relative","&:before":{position:"absolute",top:-ce.lineWidth,insetInlineStart:-ce.lineWidth,display:"inline-block",width:`calc(100% + ${ce.lineWidth*2}px)`,height:ce.lineWidth,backgroundColor:ce.colorPrimaryHover,content:'""'}}}}}}},ht=(ce,Ne,Oe)=>({[`&:not(:disabled):not(${ce}-disabled)`]:{"&:hover":Ne,"&:active":Oe}}),Et=ce=>({minWidth:ce.controlHeight,paddingInlineStart:0,paddingInlineEnd:0,borderRadius:"50%"}),gt=ce=>({borderRadius:ce.controlHeight,paddingInlineStart:ce.controlHeight/2,paddingInlineEnd:ce.controlHeight/2}),Ht=ce=>({cursor:"not-allowed",borderColor:ce.colorBorder,color:ce.colorTextDisabled,backgroundColor:ce.colorBgContainerDisabled,boxShadow:"none"}),$e=(ce,Ne,Oe,we,Re,st,tt)=>({[`&${ce}-background-ghost`]:Object.assign(Object.assign({color:Ne||void 0,backgroundColor:"transparent",borderColor:Oe||void 0,boxShadow:"none"},ht(ce,Object.assign({backgroundColor:"transparent"},st),Object.assign({backgroundColor:"transparent"},tt))),{"&:disabled":{cursor:"not-allowed",color:we||void 0,borderColor:Re||void 0}})}),Xe=ce=>({[`&:disabled, &${ce.componentCls}-disabled`]:Object.assign({},Ht(ce))}),rt=ce=>Object.assign({},Xe(ce)),Ke=ce=>({[`&:disabled, &${ce.componentCls}-disabled`]:{cursor:"not-allowed",color:ce.colorTextDisabled}}),ye=ce=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},rt(ce)),{backgroundColor:ce.colorBgContainer,borderColor:ce.colorBorder,boxShadow:`0 ${ce.controlOutlineWidth}px 0 ${ce.controlTmpOutline}`}),ht(ce.componentCls,{color:ce.colorPrimaryHover,borderColor:ce.colorPrimaryHover},{color:ce.colorPrimaryActive,borderColor:ce.colorPrimaryActive})),$e(ce.componentCls,ce.colorBgContainer,ce.colorBgContainer,ce.colorTextDisabled,ce.colorBorder)),{[`&${ce.componentCls}-dangerous`]:Object.assign(Object.assign(Object.assign({color:ce.colorError,borderColor:ce.colorError},ht(ce.componentCls,{color:ce.colorErrorHover,borderColor:ce.colorErrorBorderHover},{color:ce.colorErrorActive,borderColor:ce.colorErrorActive})),$e(ce.componentCls,ce.colorError,ce.colorError,ce.colorTextDisabled,ce.colorBorder)),Xe(ce))}),ne=ce=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},rt(ce)),{color:ce.colorTextLightSolid,backgroundColor:ce.colorPrimary,boxShadow:`0 ${ce.controlOutlineWidth}px 0 ${ce.controlOutline}`}),ht(ce.componentCls,{color:ce.colorTextLightSolid,backgroundColor:ce.colorPrimaryHover},{color:ce.colorTextLightSolid,backgroundColor:ce.colorPrimaryActive})),$e(ce.componentCls,ce.colorPrimary,ce.colorPrimary,ce.colorTextDisabled,ce.colorBorder,{color:ce.colorPrimaryHover,borderColor:ce.colorPrimaryHover},{color:ce.colorPrimaryActive,borderColor:ce.colorPrimaryActive})),{[`&${ce.componentCls}-dangerous`]:Object.assign(Object.assign(Object.assign({backgroundColor:ce.colorError,boxShadow:`0 ${ce.controlOutlineWidth}px 0 ${ce.colorErrorOutline}`},ht(ce.componentCls,{backgroundColor:ce.colorErrorHover},{backgroundColor:ce.colorErrorActive})),$e(ce.componentCls,ce.colorError,ce.colorError,ce.colorTextDisabled,ce.colorBorder,{color:ce.colorErrorHover,borderColor:ce.colorErrorHover},{color:ce.colorErrorActive,borderColor:ce.colorErrorActive})),Xe(ce))}),H=ce=>Object.assign(Object.assign({},ye(ce)),{borderStyle:"dashed"}),R=ce=>Object.assign(Object.assign(Object.assign({color:ce.colorLink},ht(ce.componentCls,{color:ce.colorLinkHover},{color:ce.colorLinkActive})),Ke(ce)),{[`&${ce.componentCls}-dangerous`]:Object.assign(Object.assign({color:ce.colorError},ht(ce.componentCls,{color:ce.colorErrorHover},{color:ce.colorErrorActive})),Ke(ce))}),P=ce=>Object.assign(Object.assign(Object.assign({},ht(ce.componentCls,{color:ce.colorText,backgroundColor:ce.colorBgTextHover},{color:ce.colorText,backgroundColor:ce.colorBgTextActive})),Ke(ce)),{[`&${ce.componentCls}-dangerous`]:Object.assign(Object.assign({color:ce.colorError},Ke(ce)),ht(ce.componentCls,{color:ce.colorErrorHover,backgroundColor:ce.colorErrorBg},{color:ce.colorErrorHover,backgroundColor:ce.colorErrorBg}))}),ae=ce=>{const{componentCls:Ne}=ce;return{[`${Ne}-default`]:ye(ce),[`${Ne}-primary`]:ne(ce),[`${Ne}-dashed`]:H(ce),[`${Ne}-link`]:R(ce),[`${Ne}-text`]:P(ce),[`${Ne}-ghost`]:$e(ce.componentCls,ce.colorBgContainer,ce.colorBgContainer,ce.colorTextDisabled,ce.colorBorder)}},Q=function(ce){let Ne=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const{componentCls:Oe,controlHeight:we,fontSize:Re,lineHeight:st,lineWidth:tt,borderRadius:Ye,buttonPaddingHorizontal:ke,iconCls:Be}=ce,it=Math.max(0,(we-Re*st)/2-tt),Ve=ke-tt,xt=`${Oe}-icon-only`;return[{[`${Oe}${Ne}`]:{fontSize:Re,height:we,padding:`${it}px ${Ve}px`,borderRadius:Ye,[`&${xt}`]:{width:we,paddingInlineStart:0,paddingInlineEnd:0,[`&${Oe}-round`]:{width:"auto"},[Be]:{fontSize:ce.buttonIconOnlyFontSize}},[`&${Oe}-loading`]:{opacity:ce.opacityLoading,cursor:"default"},[`${Oe}-loading-icon`]:{transition:`width ${ce.motionDurationSlow} ${ce.motionEaseInOut}, opacity ${ce.motionDurationSlow} ${ce.motionEaseInOut}`}}},{[`${Oe}${Oe}-circle${Ne}`]:Et(ce)},{[`${Oe}${Oe}-round${Ne}`]:gt(ce)}]},ie=ce=>Q(ce),me=ce=>{const Ne=(0,ge.TS)(ce,{controlHeight:ce.controlHeightSM,padding:ce.paddingXS,buttonPaddingHorizontal:8,borderRadius:ce.borderRadiusSM,buttonIconOnlyFontSize:ce.fontSizeLG-2});return Q(Ne,`${ce.componentCls}-sm`)},je=ce=>{const Ne=(0,ge.TS)(ce,{controlHeight:ce.controlHeightLG,fontSize:ce.fontSizeLG,borderRadius:ce.borderRadiusLG,buttonIconOnlyFontSize:ce.fontSizeLG+2});return Q(Ne,`${ce.componentCls}-lg`)},Ce=ce=>{const{componentCls:Ne}=ce;return{[Ne]:{[`&${Ne}-block`]:{width:"100%"}}}};var Se=(0,be.Z)("Button",ce=>{const{controlTmpOutline:Ne,paddingContentHorizontal:Oe}=ce,we=(0,ge.TS)(ce,{colorOutlineDefault:Ne,buttonPaddingHorizontal:Oe,buttonIconOnlyFontSize:ce.fontSizeLG,buttonFontWeight:400});return[Qe(we),me(we),ie(we),je(we),Ce(we),ae(we),qe(we),(0,A.c)(ce),pe(ce)]}),We=function(ce,Ne){var Oe={};for(var we in ce)Object.prototype.hasOwnProperty.call(ce,we)&&Ne.indexOf(we)<0&&(Oe[we]=ce[we]);if(ce!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Re=0,we=Object.getOwnPropertySymbols(ce);Re{var Oe,we;const{loading:Re=!1,prefixCls:st,type:tt="default",danger:Ye,shape:ke="default",size:Be,styles:it,disabled:Ve,className:xt,rootClassName:_t,children:Ot,icon:wt,ghost:Yt=!1,block:bt=!1,htmlType:ze="button",classNames:nt,style:St={}}=ce,ut=We(ce,["loading","prefixCls","type","danger","shape","size","styles","disabled","className","rootClassName","children","icon","ghost","block","htmlType","classNames","style"]),{getPrefixCls:Vt,autoInsertSpaceInButton:Nt,direction:At,button:Ie}=(0,n.useContext)(l.E_),Ee=Vt("btn",st),[Mt,jt]=Se(Ee),He=(0,n.useContext)(c.Z),et=Ve!=null?Ve:He,Zt=(0,n.useContext)(T),Ut=(0,n.useMemo)(()=>se(Re),[Re]),[Jt,ln]=(0,n.useState)(Ut.loading),[Mn,gn]=(0,n.useState)(!1),Yn=(0,n.createRef)(),Gn=(0,s.sQ)(Ne,Yn),ar=n.Children.count(Ot)===1&&!wt&&!le(tt);(0,n.useEffect)(()=>{let ct=null;Ut.delay>0?ct=setTimeout(()=>{ct=null,ln(!0)},Ut.delay):ln(Ut.loading);function dt(){ct&&(clearTimeout(ct),ct=null)}return dt},[Ut]),(0,n.useEffect)(()=>{if(!Gn||!Gn.current||Nt===!1)return;const ct=Gn.current.textContent;ar&&Y(ct)?Mn||gn(!0):Mn&&gn(!1)},[Gn]);const gr=ct=>{const{onClick:dt}=ce;if(Jt||et){ct.preventDefault();return}dt==null||dt(ct)},zt=Nt!==!1,{compactSize:qt,compactItemClassnames:rn}=(0,g.ri)(Ee,At),dn={large:"lg",small:"sm",middle:void 0},Cn=(0,m.Z)(ct=>{var dt,It;return(It=(dt=Be!=null?Be:qt)!==null&&dt!==void 0?dt:Zt)!==null&&It!==void 0?It:ct}),on=Cn&&dn[Cn]||"",pt=Jt?"loading":wt,mt=(0,o.Z)(ut,["navigate"]),sn=t()(Ee,jt,{[`${Ee}-${ke}`]:ke!=="default"&&ke,[`${Ee}-${tt}`]:tt,[`${Ee}-${on}`]:on,[`${Ee}-icon-only`]:!Ot&&Ot!==0&&!!pt,[`${Ee}-background-ghost`]:Yt&&!le(tt),[`${Ee}-loading`]:Jt,[`${Ee}-two-chinese-chars`]:Mn&&zt&&!Jt,[`${Ee}-block`]:bt,[`${Ee}-dangerous`]:!!Ye,[`${Ee}-rtl`]:At==="rtl"},rn,xt,_t,Ie==null?void 0:Ie.className),Kt=Object.assign(Object.assign({},Ie==null?void 0:Ie.style),St),tn=t()(nt==null?void 0:nt.icon,(Oe=Ie==null?void 0:Ie.classNames)===null||Oe===void 0?void 0:Oe.icon),mn=Object.assign(Object.assign({},(it==null?void 0:it.icon)||{}),((we=Ie==null?void 0:Ie.styles)===null||we===void 0?void 0:we.icon)||{}),fn=wt&&!Jt?n.createElement(h,{prefixCls:Ee,className:tn,style:mn},wt):n.createElement(L,{existIcon:!!wt,prefixCls:Ee,loading:!!Jt}),kn=Ot||Ot===0?W(Ot,ar&&zt):null;if(mt.href!==void 0)return Mt(n.createElement("a",Object.assign({},mt,{className:t()(sn,{[`${Ee}-disabled`]:et}),style:Kt,onClick:gr,ref:Gn}),fn,kn));let qn=n.createElement("button",Object.assign({},ut,{type:ze,className:sn,style:Kt,onClick:gr,disabled:et,ref:Gn}),fn,kn);return le(tt)||(qn=n.createElement(d.Z,{component:"Button",disabled:!!Jt},qn)),Mt(qn)},de=(0,n.forwardRef)(J);de.Group=G,de.__ANT_BUTTON=!0;var xe=de},12562:function(b,y,e){"use strict";var a=e(70921);y.ZP=a.Z},81872:function(b,y,e){"use strict";var a=e(7056);y.Z=a.Z},18624:function(b,y,e){"use strict";e.d(y,{Z:function(){return x}});var a=e(87608),t=e.n(a),o=e(98186),s=e(58757),n=e(61836),d=e(58785),l=e(57214),c=e(16951),m=function(O,_){var U={};for(var A in O)Object.prototype.hasOwnProperty.call(O,A)&&_.indexOf(A)<0&&(U[A]=O[A]);if(O!=null&&typeof Object.getOwnPropertySymbols=="function")for(var V=0,A=Object.getOwnPropertySymbols(O);V{var{prefixCls:_,className:U,hoverable:A=!0}=O,V=m(O,["prefixCls","className","hoverable"]);const{getPrefixCls:fe}=s.useContext(n.E_),pe=fe("card",_),ge=t()(`${pe}-grid`,U,{[`${pe}-grid-hoverable`]:A});return s.createElement("div",Object.assign({},V,{className:ge}))},h=e(78330),S=e(52628),w=e(22151);const C=O=>{const{antCls:_,componentCls:U,headerHeight:A,cardPaddingBase:V,tabsMarginBottom:fe}=O;return Object.assign(Object.assign({display:"flex",justifyContent:"center",flexDirection:"column",minHeight:A,marginBottom:-1,padding:`0 ${V}px`,color:O.colorTextHeading,fontWeight:O.fontWeightStrong,fontSize:O.headerFontSize,background:O.headerBg,borderBottom:`${O.lineWidth}px ${O.lineType} ${O.colorBorderSecondary}`,borderRadius:`${O.borderRadiusLG}px ${O.borderRadiusLG}px 0 0`},(0,h.dF)()),{"&-wrapper":{width:"100%",display:"flex",alignItems:"center"},"&-title":Object.assign(Object.assign({display:"inline-block",flex:1},h.vS),{[` + > ${U}-typography, + > ${U}-typography-edit-content + `]:{insetInlineStart:0,marginTop:0,marginBottom:0}}),[`${_}-tabs-top`]:{clear:"both",marginBottom:fe,color:O.colorText,fontWeight:"normal",fontSize:O.fontSize,"&-bar":{borderBottom:`${O.lineWidth}px ${O.lineType} ${O.colorBorderSecondary}`}}})},z=O=>{const{cardPaddingBase:_,colorBorderSecondary:U,cardShadow:A,lineWidth:V}=O;return{width:"33.33%",padding:_,border:0,borderRadius:0,boxShadow:` + ${V}px 0 0 0 ${U}, + 0 ${V}px 0 0 ${U}, + ${V}px ${V}px 0 0 ${U}, + ${V}px 0 0 0 ${U} inset, + 0 ${V}px 0 0 ${U} inset; + `,transition:`all ${O.motionDurationMid}`,"&-hoverable:hover":{position:"relative",zIndex:1,boxShadow:A}}},Z=O=>{const{componentCls:_,iconCls:U,actionsLiMargin:A,cardActionsIconSize:V,colorBorderSecondary:fe,actionsBg:pe}=O;return Object.assign(Object.assign({margin:0,padding:0,listStyle:"none",background:pe,borderTop:`${O.lineWidth}px ${O.lineType} ${fe}`,display:"flex",borderRadius:`0 0 ${O.borderRadiusLG}px ${O.borderRadiusLG}px `},(0,h.dF)()),{"& > li":{margin:A,color:O.colorTextDescription,textAlign:"center","> span":{position:"relative",display:"block",minWidth:O.cardActionsIconSize*2,fontSize:O.fontSize,lineHeight:O.lineHeight,cursor:"pointer","&:hover":{color:O.colorPrimary,transition:`color ${O.motionDurationMid}`},[`a:not(${_}-btn), > ${U}`]:{display:"inline-block",width:"100%",color:O.colorTextDescription,lineHeight:`${O.fontSize*O.lineHeight}px`,transition:`color ${O.motionDurationMid}`,"&:hover":{color:O.colorPrimary}},[`> ${U}`]:{fontSize:V,lineHeight:`${V*O.lineHeight}px`}},"&:not(:last-child)":{borderInlineEnd:`${O.lineWidth}px ${O.lineType} ${fe}`}}})},N=O=>Object.assign(Object.assign({margin:`-${O.marginXXS}px 0`,display:"flex"},(0,h.dF)()),{"&-avatar":{paddingInlineEnd:O.padding},"&-detail":{overflow:"hidden",flex:1,"> div:not(:last-child)":{marginBottom:O.marginXS}},"&-title":Object.assign({color:O.colorTextHeading,fontWeight:O.fontWeightStrong,fontSize:O.fontSizeLG},h.vS),"&-description":{color:O.colorTextDescription}}),L=O=>{const{componentCls:_,cardPaddingBase:U,colorFillAlter:A}=O;return{[`${_}-head`]:{padding:`0 ${U}px`,background:A,"&-title":{fontSize:O.fontSize}},[`${_}-body`]:{padding:`${O.padding}px ${U}px`}}},$=O=>{const{componentCls:_}=O;return{overflow:"hidden",[`${_}-body`]:{userSelect:"none"}}},D=O=>{const{antCls:_,componentCls:U,cardShadow:A,cardHeadPadding:V,colorBorderSecondary:fe,boxShadowTertiary:pe,cardPaddingBase:ge,extraColor:be}=O;return{[U]:Object.assign(Object.assign({},(0,h.Wf)(O)),{position:"relative",background:O.colorBgContainer,borderRadius:O.borderRadiusLG,[`&:not(${U}-bordered)`]:{boxShadow:pe},[`${U}-head`]:C(O),[`${U}-extra`]:{marginInlineStart:"auto",color:be,fontWeight:"normal",fontSize:O.fontSize},[`${U}-body`]:Object.assign({padding:ge,borderRadius:` 0 0 ${O.borderRadiusLG}px ${O.borderRadiusLG}px`},(0,h.dF)()),[`${U}-grid`]:z(O),[`${U}-cover`]:{"> *":{display:"block",width:"100%"},[`img, img + ${_}-image-mask`]:{borderRadius:`${O.borderRadiusLG}px ${O.borderRadiusLG}px 0 0`}},[`${U}-actions`]:Z(O),[`${U}-meta`]:N(O)}),[`${U}-bordered`]:{border:`${O.lineWidth}px ${O.lineType} ${fe}`,[`${U}-cover`]:{marginTop:-1,marginInlineStart:-1,marginInlineEnd:-1}},[`${U}-hoverable`]:{cursor:"pointer",transition:`box-shadow ${O.motionDurationMid}, border-color ${O.motionDurationMid}`,"&:hover":{borderColor:"transparent",boxShadow:A}},[`${U}-contain-grid`]:{[`${U}-body`]:{display:"flex",flexWrap:"wrap"},[`&:not(${U}-loading) ${U}-body`]:{marginBlockStart:-O.lineWidth,marginInlineStart:-O.lineWidth,padding:0}},[`${U}-contain-tabs`]:{[`> ${U}-head`]:{[`${U}-head-title, ${U}-extra`]:{paddingTop:V}}},[`${U}-type-inner`]:L(O),[`${U}-loading`]:$(O),[`${U}-rtl`]:{direction:"rtl"}}},T=O=>{const{componentCls:_,cardPaddingSM:U,headerHeightSM:A,headerFontSizeSM:V}=O;return{[`${_}-small`]:{[`> ${_}-head`]:{minHeight:A,padding:`0 ${U}px`,fontSize:V,[`> ${_}-head-wrapper`]:{[`> ${_}-extra`]:{fontSize:O.fontSize}}},[`> ${_}-body`]:{padding:U}},[`${_}-small${_}-contain-tabs`]:{[`> ${_}-head`]:{[`${_}-head-title, ${_}-extra`]:{minHeight:A,paddingTop:0,display:"flex",alignItems:"center"}}}}};var j=(0,S.Z)("Card",O=>{const _=(0,w.TS)(O,{cardShadow:O.boxShadowCard,cardHeadPadding:O.padding,cardPaddingBase:O.paddingLG,cardActionsIconSize:O.fontSize,cardPaddingSM:12});return[D(_),T(_)]},O=>({headerBg:"transparent",headerFontSize:O.fontSizeLG,headerFontSizeSM:O.fontSize,headerHeight:O.fontSizeLG*O.lineHeightLG+O.padding*2,headerHeightSM:O.fontSize*O.lineHeight+O.paddingXS*2,actionsBg:O.colorBgContainer,actionsLiMargin:`${O.paddingSM}px 0`,tabsMarginBottom:-O.padding-O.lineWidth,extraColor:O.colorText})),G=function(O,_){var U={};for(var A in O)Object.prototype.hasOwnProperty.call(O,A)&&_.indexOf(A)<0&&(U[A]=O[A]);if(O!=null&&typeof Object.getOwnPropertySymbols=="function")for(var V=0,A=Object.getOwnPropertySymbols(O);Vs.createElement("li",{style:{width:`${100/O.length}%`},key:`action-${U}`},s.createElement("span",null,_)))}var Y=s.forwardRef((O,_)=>{const{prefixCls:U,className:A,rootClassName:V,style:fe,extra:pe,headStyle:ge={},bodyStyle:be={},title:Te,loading:Ge,bordered:qe=!0,size:Qe,type:ht,cover:Et,actions:gt,tabList:Ht,children:$e,activeTabKey:Xe,defaultActiveTabKey:rt,tabBarExtraContent:Ke,hoverable:ye,tabProps:ne={}}=O,H=G(O,["prefixCls","className","rootClassName","style","extra","headStyle","bodyStyle","title","loading","bordered","size","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","hoverable","tabProps"]),{getPrefixCls:R,direction:P,card:ae}=s.useContext(n.E_),Q=tt=>{var Ye;(Ye=O.onTabChange)===null||Ye===void 0||Ye.call(O,tt)},ie=s.useMemo(()=>{let tt=!1;return s.Children.forEach($e,Ye=>{Ye&&Ye.type&&Ye.type===M&&(tt=!0)}),tt},[$e]),me=R("card",U),[je,Ce]=j(me),Se=s.createElement(l.Z,{loading:!0,active:!0,paragraph:{rows:4},title:!1},$e),We=Xe!==void 0,re=Object.assign(Object.assign({},ne),{[We?"activeKey":"defaultActiveKey"]:We?Xe:rt,tabBarExtraContent:Ke});let se;const J=(0,d.Z)(Qe),de=!J||J==="default"?"large":J,xe=Ht?s.createElement(c.Z,Object.assign({size:de},re,{className:`${me}-head-tabs`,onChange:Q,items:Ht.map(tt=>{var{tab:Ye}=tt,ke=G(tt,["tab"]);return Object.assign({label:Ye},ke)})})):null;(Te||pe||xe)&&(se=s.createElement("div",{className:`${me}-head`,style:ge},s.createElement("div",{className:`${me}-head-wrapper`},Te&&s.createElement("div",{className:`${me}-head-title`},Te),pe&&s.createElement("div",{className:`${me}-extra`},pe)),xe));const ce=Et?s.createElement("div",{className:`${me}-cover`},Et):null,Ne=s.createElement("div",{className:`${me}-body`,style:be},Ge?Se:$e),Oe=gt&>.length?s.createElement("ul",{className:`${me}-actions`},k(gt)):null,we=(0,o.Z)(H,["onTabChange"]),Re=t()(me,ae==null?void 0:ae.className,{[`${me}-loading`]:Ge,[`${me}-bordered`]:qe,[`${me}-hoverable`]:ye,[`${me}-contain-grid`]:ie,[`${me}-contain-tabs`]:Ht&&Ht.length,[`${me}-${J}`]:J,[`${me}-type-${ht}`]:!!ht,[`${me}-rtl`]:P==="rtl"},A,V,Ce),st=Object.assign(Object.assign({},ae==null?void 0:ae.style),fe);return je(s.createElement("div",Object.assign({ref:_},we,{className:Re,style:st}),se,ce,Ne,Oe))}),q=function(O,_){var U={};for(var A in O)Object.prototype.hasOwnProperty.call(O,A)&&_.indexOf(A)<0&&(U[A]=O[A]);if(O!=null&&typeof Object.getOwnPropertySymbols=="function")for(var V=0,A=Object.getOwnPropertySymbols(O);V{const{prefixCls:_,className:U,avatar:A,title:V,description:fe}=O,pe=q(O,["prefixCls","className","avatar","title","description"]),{getPrefixCls:ge}=s.useContext(n.E_),be=ge("card",_),Te=t()(`${be}-meta`,U),Ge=A?s.createElement("div",{className:`${be}-meta-avatar`},A):null,qe=V?s.createElement("div",{className:`${be}-meta-title`},V):null,Qe=fe?s.createElement("div",{className:`${be}-meta-description`},fe):null,ht=qe||Qe?s.createElement("div",{className:`${be}-meta-detail`},qe,Qe):null;return s.createElement("div",Object.assign({},pe,{className:Te}),Ge,ht)};const W=Y;W.Grid=M,W.Meta=X;var x=W},38904:function(b,y,e){"use strict";e.d(y,{Z:function(){return G}});var a=e(87608),t=e.n(a),o=e(60357),s=e(58757),n=e(61836),d=e(92428),l=e(81496),m=s.createContext(null),g=e(7316),M=e(37486),h=e(78856),S=function(k,te){var Y={};for(var q in k)Object.prototype.hasOwnProperty.call(k,q)&&te.indexOf(q)<0&&(Y[q]=k[q]);if(k!=null&&typeof Object.getOwnPropertySymbols=="function")for(var le=0,q=Object.getOwnPropertySymbols(k);le{var Y;const{prefixCls:q,className:le,rootClassName:X,children:W,indeterminate:x=!1,style:O,onMouseEnter:_,onMouseLeave:U,skipGroup:A=!1,disabled:V}=k,fe=S(k,["prefixCls","className","rootClassName","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup","disabled"]),{getPrefixCls:pe,direction:ge,checkbox:be}=s.useContext(n.E_),Te=s.useContext(m),{isFormItemInput:Ge}=s.useContext(l.aM),qe=s.useContext(d.Z),Qe=(Y=(Te==null?void 0:Te.disabled)||V)!==null&&Y!==void 0?Y:qe,ht=s.useRef(fe.value);s.useEffect(()=>{Te==null||Te.registerValue(fe.value)},[]),s.useEffect(()=>{if(!A)return fe.value!==ht.current&&(Te==null||Te.cancelValue(ht.current),Te==null||Te.registerValue(fe.value),ht.current=fe.value),()=>Te==null?void 0:Te.cancelValue(fe.value)},[fe.value]);const Et=pe("checkbox",q),[gt,Ht]=(0,g.ZP)(Et),$e=Object.assign({},fe);Te&&!A&&($e.onChange=function(){fe.onChange&&fe.onChange.apply(fe,arguments),Te.toggleOption&&Te.toggleOption({label:W,value:fe.value})},$e.name=Te.name,$e.checked=Te.value.includes(fe.value));const Xe=t()(`${Et}-wrapper`,{[`${Et}-rtl`]:ge==="rtl",[`${Et}-wrapper-checked`]:$e.checked,[`${Et}-wrapper-disabled`]:Qe,[`${Et}-wrapper-in-form-item`]:Ge},be==null?void 0:be.className,le,X,Ht),rt=t()({[`${Et}-indeterminate`]:x},h.A,Ht),Ke=x?"mixed":void 0;return gt(s.createElement(M.Z,{component:"Checkbox",disabled:Qe},s.createElement("label",{className:Xe,style:Object.assign(Object.assign({},be==null?void 0:be.style),O),onMouseEnter:_,onMouseLeave:U},s.createElement(o.Z,Object.assign({"aria-checked":Ke},$e,{prefixCls:Et,className:rt,disabled:Qe,ref:te})),W!==void 0&&s.createElement("span",null,W))))};var z=s.forwardRef(w),Z=e(29140),N=e(98186),L=function(k,te){var Y={};for(var q in k)Object.prototype.hasOwnProperty.call(k,q)&&te.indexOf(q)<0&&(Y[q]=k[q]);if(k!=null&&typeof Object.getOwnPropertySymbols=="function")for(var le=0,q=Object.getOwnPropertySymbols(k);le{const{defaultValue:Y,children:q,options:le=[],prefixCls:X,className:W,rootClassName:x,style:O,onChange:_}=k,U=L(k,["defaultValue","children","options","prefixCls","className","rootClassName","style","onChange"]),{getPrefixCls:A,direction:V}=s.useContext(n.E_),[fe,pe]=s.useState(U.value||Y||[]),[ge,be]=s.useState([]);s.useEffect(()=>{"value"in U&&pe(U.value||[])},[U.value]);const Te=s.useMemo(()=>le.map(ye=>typeof ye=="string"||typeof ye=="number"?{label:ye,value:ye}:ye),[le]),Ge=ye=>{be(ne=>ne.filter(H=>H!==ye))},qe=ye=>{be(ne=>[].concat((0,Z.Z)(ne),[ye]))},Qe=ye=>{const ne=fe.indexOf(ye.value),H=(0,Z.Z)(fe);ne===-1?H.push(ye.value):H.splice(ne,1),"value"in U||pe(H),_==null||_(H.filter(R=>ge.includes(R)).sort((R,P)=>{const ae=Te.findIndex(ie=>ie.value===R),Q=Te.findIndex(ie=>ie.value===P);return ae-Q}))},ht=A("checkbox",X),Et=`${ht}-group`,[gt,Ht]=(0,g.ZP)(ht),$e=(0,N.Z)(U,["value","disabled"]),Xe=le.length?Te.map(ye=>s.createElement(z,{prefixCls:ht,key:ye.value.toString(),disabled:"disabled"in ye?ye.disabled:U.disabled,value:ye.value,checked:fe.includes(ye.value),onChange:ye.onChange,className:`${Et}-item`,style:ye.style,title:ye.title},ye.label)):q,rt={toggleOption:Qe,value:fe,disabled:U.disabled,name:U.name,registerValue:qe,cancelValue:Ge},Ke=t()(Et,{[`${Et}-rtl`]:V==="rtl"},W,x,Ht);return gt(s.createElement("div",Object.assign({className:Ke,style:O},$e,{ref:te}),s.createElement(m.Provider,{value:rt},Xe)))},D=s.forwardRef($);var T=s.memo(D);const j=z;j.Group=T,j.__ANT_CHECKBOX=!0;var G=j},7316:function(b,y,e){"use strict";e.d(y,{C2:function(){return n}});var a=e(78330),t=e(22151),o=e(52628);const s=d=>{const{checkboxCls:l}=d,c=`${l}-wrapper`;return[{[`${l}-group`]:Object.assign(Object.assign({},(0,a.Wf)(d)),{display:"inline-flex",flexWrap:"wrap",columnGap:d.marginXS,[`> ${d.antCls}-row`]:{flex:1}}),[c]:Object.assign(Object.assign({},(0,a.Wf)(d)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${c}`]:{marginInlineStart:0},[`&${c}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[l]:Object.assign(Object.assign({},(0,a.Wf)(d)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",borderRadius:d.borderRadiusSM,alignSelf:"center",[`${l}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0,margin:0,[`&:focus-visible + ${l}-inner`]:Object.assign({},(0,a.oN)(d))},[`${l}-inner`]:{boxSizing:"border-box",position:"relative",top:0,insetInlineStart:0,display:"block",width:d.checkboxSize,height:d.checkboxSize,direction:"ltr",backgroundColor:d.colorBgContainer,border:`${d.lineWidth}px ${d.lineType} ${d.colorBorder}`,borderRadius:d.borderRadiusSM,borderCollapse:"separate",transition:`all ${d.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"21.5%",display:"table",width:d.checkboxSize/14*5,height:d.checkboxSize/14*8,border:`${d.lineWidthBold}px solid ${d.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${d.motionDurationFast} ${d.motionEaseInBack}, opacity ${d.motionDurationFast}`}},"& + span":{paddingInlineStart:d.paddingXS,paddingInlineEnd:d.paddingXS}})},{[` + ${c}:not(${c}-disabled), + ${l}:not(${l}-disabled) + `]:{[`&:hover ${l}-inner`]:{borderColor:d.colorPrimary}},[`${c}:not(${c}-disabled)`]:{[`&:hover ${l}-checked:not(${l}-disabled) ${l}-inner`]:{backgroundColor:d.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${l}-checked:not(${l}-disabled):after`]:{borderColor:d.colorPrimaryHover}}},{[`${l}-checked`]:{[`${l}-inner`]:{backgroundColor:d.colorPrimary,borderColor:d.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${d.motionDurationMid} ${d.motionEaseOutBack} ${d.motionDurationFast}`}}},[` + ${c}-checked:not(${c}-disabled), + ${l}-checked:not(${l}-disabled) + `]:{[`&:hover ${l}-inner`]:{backgroundColor:d.colorPrimaryHover,borderColor:"transparent"}}},{[l]:{"&-indeterminate":{[`${l}-inner`]:{backgroundColor:d.colorBgContainer,borderColor:d.colorBorder,"&:after":{top:"50%",insetInlineStart:"50%",width:d.fontSizeLG/2,height:d.fontSizeLG/2,backgroundColor:d.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}}}}},{[`${c}-disabled`]:{cursor:"not-allowed"},[`${l}-disabled`]:{[`&, ${l}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${l}-inner`]:{background:d.colorBgContainerDisabled,borderColor:d.colorBorder,"&:after":{borderColor:d.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:d.colorTextDisabled},[`&${l}-indeterminate ${l}-inner::after`]:{background:d.colorTextDisabled}}}]};function n(d,l){const c=(0,t.TS)(l,{checkboxCls:`.${d}`,checkboxSize:l.controlInteractiveSize});return[s(c)]}y.ZP=(0,o.Z)("Checkbox",(d,l)=>{let{prefixCls:c}=l;return[n(c,d)]})},82968:function(b,y,e){"use strict";e.d(y,{Z:function(){return Ht}});var a=e(91169),t=e(87608),o=e.n(t),s=e(28314),n=e(29140),d=e(38790),l=e(60409),c=e(75556),m=e(58757),g=e(60698),M=e(47075),h=e(42156),S=e(37734),w=e(17598),C=e(29639),z=m.forwardRef(function($e,Xe){var rt,Ke=$e.prefixCls,ye=$e.forceRender,ne=$e.className,H=$e.style,R=$e.children,P=$e.isActive,ae=$e.role,Q=m.useState(P||ye),ie=(0,s.Z)(Q,2),me=ie[0],je=ie[1];return m.useEffect(function(){(ye||P)&&je(!0)},[ye,P]),me?m.createElement("div",{ref:Xe,className:o()("".concat(Ke,"-content"),(rt={},(0,S.Z)(rt,"".concat(Ke,"-content-active"),P),(0,S.Z)(rt,"".concat(Ke,"-content-inactive"),!P),rt),ne),style:H,role:ae},m.createElement("div",{className:"".concat(Ke,"-content-box")},R)):null});z.displayName="PanelContent";var Z=z,N=["showArrow","headerClass","isActive","onItemClick","forceRender","className","prefixCls","collapsible","accordion","panelKey","extra","header","expandIcon","openMotion","destroyInactivePanel","children"],L=m.forwardRef(function($e,Xe){var rt,Ke,ye=$e.showArrow,ne=ye===void 0?!0:ye,H=$e.headerClass,R=$e.isActive,P=$e.onItemClick,ae=$e.forceRender,Q=$e.className,ie=$e.prefixCls,me=$e.collapsible,je=$e.accordion,Ce=$e.panelKey,Se=$e.extra,We=$e.header,re=$e.expandIcon,se=$e.openMotion,J=$e.destroyInactivePanel,de=$e.children,xe=(0,M.Z)($e,N),ce=me==="disabled",Ne=me==="header",Oe=me==="icon",we=Se!=null&&typeof Se!="boolean",Re=function(){P==null||P(Ce)},st=function(Ve){(Ve.key==="Enter"||Ve.keyCode===C.Z.ENTER||Ve.which===C.Z.ENTER)&&Re()},tt=typeof re=="function"?re($e):m.createElement("i",{className:"arrow"});tt&&(tt=m.createElement("div",{className:"".concat(ie,"-expand-icon"),onClick:["header","icon"].includes(me)?Re:void 0},tt));var Ye=o()((rt={},(0,S.Z)(rt,"".concat(ie,"-item"),!0),(0,S.Z)(rt,"".concat(ie,"-item-active"),R),(0,S.Z)(rt,"".concat(ie,"-item-disabled"),ce),rt),Q),ke=o()(H,(Ke={},(0,S.Z)(Ke,"".concat(ie,"-header"),!0),(0,S.Z)(Ke,"".concat(ie,"-header-collapsible-only"),Ne),(0,S.Z)(Ke,"".concat(ie,"-icon-collapsible-only"),Oe),Ke)),Be={className:ke,"aria-expanded":R,"aria-disabled":ce,onKeyDown:st};return!Ne&&!Oe&&(Be.onClick=Re,Be.role=je?"tab":"button",Be.tabIndex=ce?-1:0),m.createElement("div",(0,g.Z)({},xe,{ref:Xe,className:Ye}),m.createElement("div",Be,ne&&tt,m.createElement("span",{className:"".concat(ie,"-header-text"),onClick:me==="header"?Re:void 0},We),we&&m.createElement("div",{className:"".concat(ie,"-extra")},Se)),m.createElement(w.ZP,(0,g.Z)({visible:R,leavedClassName:"".concat(ie,"-content-hidden")},se,{forceRender:ae,removeOnLeave:J}),function(it,Ve){var xt=it.className,_t=it.style;return m.createElement(Z,{ref:Ve,prefixCls:ie,className:xt,style:_t,isActive:R,forceRender:ae,role:je?"tabpanel":void 0},de)}))}),$=L,D=["children","label","key","collapsible","onItemClick","destroyInactivePanel"],T=function(Xe,rt){var Ke=rt.prefixCls,ye=rt.accordion,ne=rt.collapsible,H=rt.destroyInactivePanel,R=rt.onItemClick,P=rt.activeKey,ae=rt.openMotion,Q=rt.expandIcon;return Xe.map(function(ie,me){var je=ie.children,Ce=ie.label,Se=ie.key,We=ie.collapsible,re=ie.onItemClick,se=ie.destroyInactivePanel,J=(0,M.Z)(ie,D),de=String(Se!=null?Se:me),xe=We!=null?We:ne,ce=se!=null?se:H,Ne=function(Re){xe!=="disabled"&&(R(Re),re==null||re(Re))},Oe=!1;return ye?Oe=P[0]===de:Oe=P.indexOf(de)>-1,m.createElement($,(0,g.Z)({},J,{prefixCls:Ke,key:de,panelKey:de,isActive:Oe,accordion:ye,openMotion:ae,expandIcon:Q,header:Ce,collapsible:xe,onItemClick:Ne,destroyInactivePanel:ce}),je)})},j=function(Xe,rt,Ke){if(!Xe)return null;var ye=Ke.prefixCls,ne=Ke.accordion,H=Ke.collapsible,R=Ke.destroyInactivePanel,P=Ke.onItemClick,ae=Ke.activeKey,Q=Ke.openMotion,ie=Ke.expandIcon,me=Xe.key||String(rt),je=Xe.props,Ce=je.header,Se=je.headerClass,We=je.destroyInactivePanel,re=je.collapsible,se=je.onItemClick,J=!1;ne?J=ae[0]===me:J=ae.indexOf(me)>-1;var de=re!=null?re:H,xe=function(Oe){de!=="disabled"&&(P(Oe),se==null||se(Oe))},ce={key:me,panelKey:me,header:Ce,headerClass:Se,isActive:J,prefixCls:ye,destroyInactivePanel:We!=null?We:R,openMotion:Q,accordion:ne,children:Xe.props.children,onItemClick:xe,expandIcon:ie,collapsible:de};return typeof Xe.type=="string"?Xe:(Object.keys(ce).forEach(function(Ne){typeof ce[Ne]=="undefined"&&delete ce[Ne]}),m.cloneElement(Xe,ce))};function G($e,Xe,rt){return Array.isArray($e)?T($e,rt):(0,h.Z)(Xe).map(function(Ke,ye){return j(Ke,ye,rt)})}var k=G;function te($e){var Xe=$e;if(!Array.isArray(Xe)){var rt=(0,d.Z)(Xe);Xe=rt==="number"||rt==="string"?[Xe]:[]}return Xe.map(function(Ke){return String(Ke)})}var Y=m.forwardRef(function($e,Xe){var rt=$e.prefixCls,Ke=rt===void 0?"rc-collapse":rt,ye=$e.destroyInactivePanel,ne=ye===void 0?!1:ye,H=$e.style,R=$e.accordion,P=$e.className,ae=$e.children,Q=$e.collapsible,ie=$e.openMotion,me=$e.expandIcon,je=$e.activeKey,Ce=$e.defaultActiveKey,Se=$e.onChange,We=$e.items,re=o()(Ke,P),se=(0,l.Z)([],{value:je,onChange:function(we){return Se==null?void 0:Se(we)},defaultValue:Ce,postState:te}),J=(0,s.Z)(se,2),de=J[0],xe=J[1],ce=function(we){return xe(function(){if(R)return de[0]===we?[]:[we];var Re=de.indexOf(we),st=Re>-1;return st?de.filter(function(tt){return tt!==we}):[].concat((0,n.Z)(de),[we])})};(0,c.ZP)(!ae,"`children` will be removed in next major version. Please use `items` instead.");var Ne=k(We,ae,{prefixCls:Ke,accordion:R,openMotion:ie,expandIcon:me,collapsible:Q,destroyInactivePanel:ne,onItemClick:ce,activeKey:de});return m.createElement("div",{ref:Xe,className:re,style:H,role:R?"tablist":void 0},Ne)}),q=Object.assign(Y,{Panel:$}),le=q,X=q.Panel,W=e(98186),x=e(90881),O=e(37047),_=e(61836),U=e(58785),V=m.forwardRef(($e,Xe)=>{const{getPrefixCls:rt}=m.useContext(_.E_),{prefixCls:Ke,className:ye,showArrow:ne=!0}=$e,H=rt("collapse",Ke),R=o()({[`${H}-no-arrow`]:!ne},ye);return m.createElement(le.Panel,Object.assign({ref:Xe},$e,{prefixCls:H,className:R}))}),fe=e(78330),pe=e(41086),ge=e(52628),be=e(22151);const Te=$e=>{const{componentCls:Xe,collapseContentBg:rt,padding:Ke,collapseContentPaddingHorizontal:ye,collapseHeaderBg:ne,collapseHeaderPadding:H,collapseHeaderPaddingSM:R,collapseHeaderPaddingLG:P,collapsePanelBorderRadius:ae,lineWidth:Q,lineType:ie,colorBorder:me,colorText:je,colorTextHeading:Ce,colorTextDisabled:Se,fontSize:We,fontSizeLG:re,lineHeight:se,marginSM:J,paddingSM:de,paddingLG:xe,paddingXS:ce,motionDurationSlow:Ne,fontSizeIcon:Oe}=$e,we=`${Q}px ${ie} ${me}`;return{[Xe]:Object.assign(Object.assign({},(0,fe.Wf)($e)),{backgroundColor:ne,border:we,borderBottom:0,borderRadius:`${ae}px`,["&-rtl"]:{direction:"rtl"},[`& > ${Xe}-item`]:{borderBottom:we,["&:last-child"]:{[` + &, + & > ${Xe}-header`]:{borderRadius:`0 0 ${ae}px ${ae}px`}},[`> ${Xe}-header`]:{position:"relative",display:"flex",flexWrap:"nowrap",alignItems:"flex-start",padding:H,paddingInlineStart:de,color:Ce,lineHeight:se,cursor:"pointer",transition:`all ${Ne}, visibility 0s`,[`> ${Xe}-header-text`]:{flex:"auto"},"&:focus":{outline:"none"},[`${Xe}-expand-icon`]:{height:We*se,display:"flex",alignItems:"center",paddingInlineEnd:J,marginInlineStart:Ke-de},[`${Xe}-arrow`]:Object.assign(Object.assign({},(0,fe.Ro)()),{fontSize:Oe,svg:{transition:`transform ${Ne}`}}),[`${Xe}-header-text`]:{marginInlineEnd:"auto"}},[`${Xe}-header-collapsible-only`]:{cursor:"default",[`${Xe}-header-text`]:{flex:"none",cursor:"pointer"}},[`${Xe}-icon-collapsible-only`]:{cursor:"default",[`${Xe}-expand-icon`]:{cursor:"pointer"}}},[`${Xe}-content`]:{color:je,backgroundColor:rt,borderTop:we,[`& > ${Xe}-content-box`]:{padding:`${Ke}px ${ye}px`},["&-hidden"]:{display:"none"}},["&-small"]:{[`> ${Xe}-item`]:{[`> ${Xe}-header`]:{padding:R,paddingInlineStart:ce,[`> ${Xe}-expand-icon`]:{marginInlineStart:de-ce}},[`> ${Xe}-content > ${Xe}-content-box`]:{padding:de}}},["&-large"]:{[`> ${Xe}-item`]:{fontSize:re,[`> ${Xe}-header`]:{padding:P,paddingInlineStart:Ke,[`> ${Xe}-expand-icon`]:{height:re*se,marginInlineStart:xe-Ke}},[`> ${Xe}-content > ${Xe}-content-box`]:{padding:xe}}},[`${Xe}-item:last-child`]:{[`> ${Xe}-content`]:{borderRadius:`0 0 ${ae}px ${ae}px`}},[`& ${Xe}-item-disabled > ${Xe}-header`]:{[` + &, + & > .arrow + `]:{color:Se,cursor:"not-allowed"}},[`&${Xe}-icon-position-end`]:{[`& > ${Xe}-item`]:{[`> ${Xe}-header`]:{[`${Xe}-expand-icon`]:{order:1,paddingInlineEnd:0,paddingInlineStart:J}}}}})}},Ge=$e=>{const{componentCls:Xe}=$e,rt=`> ${Xe}-item > ${Xe}-header ${Xe}-arrow svg`;return{[`${Xe}-rtl`]:{[rt]:{transform:"rotate(180deg)"}}}},qe=$e=>{const{componentCls:Xe,collapseHeaderBg:rt,paddingXXS:Ke,colorBorder:ye}=$e;return{[`${Xe}-borderless`]:{backgroundColor:rt,border:0,[`> ${Xe}-item`]:{borderBottom:`1px solid ${ye}`},[` + > ${Xe}-item:last-child, + > ${Xe}-item:last-child ${Xe}-header + `]:{borderRadius:0},[`> ${Xe}-item:last-child`]:{borderBottom:0},[`> ${Xe}-item > ${Xe}-content`]:{backgroundColor:"transparent",borderTop:0},[`> ${Xe}-item > ${Xe}-content > ${Xe}-content-box`]:{paddingTop:Ke}}}},Qe=$e=>{const{componentCls:Xe,paddingSM:rt}=$e;return{[`${Xe}-ghost`]:{backgroundColor:"transparent",border:0,[`> ${Xe}-item`]:{borderBottom:0,[`> ${Xe}-content`]:{backgroundColor:"transparent",border:0,[`> ${Xe}-content-box`]:{paddingBlock:rt}}}}}};var ht=(0,ge.Z)("Collapse",$e=>{const Xe=(0,be.TS)($e,{collapseContentBg:$e.colorBgContainer,collapseHeaderBg:$e.colorFillAlter,collapseHeaderPadding:`${$e.paddingSM}px ${$e.padding}px`,collapseHeaderPaddingSM:`${$e.paddingXS}px ${$e.paddingSM}px`,collapseHeaderPaddingLG:`${$e.padding}px ${$e.paddingLG}px`,collapsePanelBorderRadius:$e.borderRadiusLG,collapseContentPaddingHorizontal:16});return[Te(Xe),qe(Xe),Qe(Xe),Ge(Xe),(0,pe.Z)(Xe)]}),gt=Object.assign(m.forwardRef(($e,Xe)=>{const{getPrefixCls:rt,direction:Ke,collapse:ye}=m.useContext(_.E_),{prefixCls:ne,className:H,rootClassName:R,style:P,bordered:ae=!0,ghost:Q,size:ie,expandIconPosition:me="start",children:je,expandIcon:Ce}=$e,Se=(0,U.Z)(we=>{var Re;return(Re=ie!=null?ie:we)!==null&&Re!==void 0?Re:"middle"}),We=rt("collapse",ne),re=rt(),[se,J]=ht(We),de=m.useMemo(()=>me==="left"?"start":me==="right"?"end":me,[me]),xe=function(){let we=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const Re=Ce?Ce(we):m.createElement(a.Z,{rotate:we.isActive?90:void 0});return(0,O.Tm)(Re,()=>({className:o()(Re.props.className,`${We}-arrow`)}))},ce=o()(`${We}-icon-position-${de}`,{[`${We}-borderless`]:!ae,[`${We}-rtl`]:Ke==="rtl",[`${We}-ghost`]:!!Q,[`${We}-${Se}`]:Se!=="middle"},ye==null?void 0:ye.className,H,R,J),Ne=Object.assign(Object.assign({},(0,x.Z)(re)),{motionAppear:!1,leavedClassName:`${We}-content-hidden`}),Oe=m.useMemo(()=>je?(0,h.Z)(je).map((we,Re)=>{var st,tt;if(!((st=we.props)===null||st===void 0)&&st.disabled){const Ye=(tt=we.key)!==null&&tt!==void 0?tt:String(Re),{disabled:ke,collapsible:Be}=we.props,it=Object.assign(Object.assign({},(0,W.Z)(we.props,["disabled"])),{key:Ye,collapsible:Be!=null?Be:ke?"disabled":void 0});return(0,O.Tm)(we,it)}return we}):null,[je]);return se(m.createElement(le,Object.assign({ref:Xe,openMotion:Ne},(0,W.Z)($e,["rootClassName"]),{expandIcon:xe,prefixCls:We,className:ce,style:Object.assign(Object.assign({},ye==null?void 0:ye.style),P)}),Oe))}),{Panel:V}),Ht=gt},92428:function(b,y,e){"use strict";e.d(y,{n:function(){return o}});var a=e(58757);const t=a.createContext(!1),o=s=>{let{children:n,disabled:d}=s;const l=a.useContext(t);return a.createElement(t.Provider,{value:d!=null?d:l},n)};y.Z=t},33446:function(b,y,e){"use strict";e.d(y,{q:function(){return o}});var a=e(58757);const t=a.createContext(void 0),o=s=>{let{children:n,size:d}=s;const l=a.useContext(t);return a.createElement(t.Provider,{value:d||l},n)};y.Z=t},61836:function(b,y,e){"use strict";e.d(y,{E_:function(){return s},oR:function(){return t}});var a=e(58757);const t="anticon",o=(d,l)=>l||(d?`ant-${d}`:"ant"),s=a.createContext({getPrefixCls:o,iconPrefixCls:t}),{Consumer:n}=s},10401:function(b,y,e){"use strict";var a=e(58757),t=e(61836),o=e(17444);const s=n=>{const{componentName:d}=n,{getPrefixCls:l}=(0,a.useContext)(t.E_),c=l("empty");switch(d){case"Table":case"List":return a.createElement(o.Z,{image:o.Z.PRESENTED_IMAGE_SIMPLE});case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return a.createElement(o.Z,{image:o.Z.PRESENTED_IMAGE_SIMPLE,className:`${c}-small`});default:return a.createElement(o.Z,null)}};y.Z=s},58785:function(b,y,e){"use strict";var a=e(58757),t=e(33446);const o=s=>{const n=a.useContext(t.Z);return a.useMemo(()=>s?typeof s=="string"?s!=null?s:n:s instanceof Function?s(n):n:n,[s,n])};y.Z=o},42505:function(b,y,e){"use strict";e.d(y,{ZP:function(){return Ht},w6:function(){return ht}});var a=e(57793),t=e(71048),o=e(27903),s=e(16766),n=e(58757),d=e(48736),l=e(67228),c=e(10520);const m="internalMark";var M=$e=>{const{locale:Xe={},children:rt,_ANT_MARK__:Ke}=$e;n.useEffect(()=>(0,l.f)(Xe&&Xe.Modal),[Xe]);const ye=n.useMemo(()=>Object.assign(Object.assign({},Xe),{exist:!0}),[Xe]);return n.createElement(c.Z.Provider,{value:ye},rt)},h=e(80076),S=e(83631),w=e(28378),C=e(61836),z=e(26134),Z=e(66671),N=e(19075),L=e(39678);const $=`-ant-${Date.now()}-${Math.random()}`;function D($e,Xe){const rt={},Ke=(H,R)=>{let P=H.clone();return P=(R==null?void 0:R(P))||P,P.toRgbString()},ye=(H,R)=>{const P=new Z.C(H),ae=(0,z.generate)(P.toRgbString());rt[`${R}-color`]=Ke(P),rt[`${R}-color-disabled`]=ae[1],rt[`${R}-color-hover`]=ae[4],rt[`${R}-color-active`]=ae[6],rt[`${R}-color-outline`]=P.clone().setAlpha(.2).toRgbString(),rt[`${R}-color-deprecated-bg`]=ae[0],rt[`${R}-color-deprecated-border`]=ae[2]};if(Xe.primaryColor){ye(Xe.primaryColor,"primary");const H=new Z.C(Xe.primaryColor),R=(0,z.generate)(H.toRgbString());R.forEach((ae,Q)=>{rt[`primary-${Q+1}`]=ae}),rt["primary-color-deprecated-l-35"]=Ke(H,ae=>ae.lighten(35)),rt["primary-color-deprecated-l-20"]=Ke(H,ae=>ae.lighten(20)),rt["primary-color-deprecated-t-20"]=Ke(H,ae=>ae.tint(20)),rt["primary-color-deprecated-t-50"]=Ke(H,ae=>ae.tint(50)),rt["primary-color-deprecated-f-12"]=Ke(H,ae=>ae.setAlpha(ae.getAlpha()*.12));const P=new Z.C(R[0]);rt["primary-color-active-deprecated-f-30"]=Ke(P,ae=>ae.setAlpha(ae.getAlpha()*.3)),rt["primary-color-active-deprecated-d-02"]=Ke(P,ae=>ae.darken(2))}return Xe.successColor&&ye(Xe.successColor,"success"),Xe.warningColor&&ye(Xe.warningColor,"warning"),Xe.errorColor&&ye(Xe.errorColor,"error"),Xe.infoColor&&ye(Xe.infoColor,"info"),` + :root { + ${Object.keys(rt).map(H=>`--${$e}-${H}: ${rt[H]};`).join(` +`)} + } + `.trim()}function T($e,Xe){const rt=D($e,Xe);(0,N.Z)()&&(0,L.hq)(rt,`${$}-dynamic-theme`)}var j=e(92428),G=e(33446);function k(){const $e=(0,n.useContext)(j.Z),Xe=(0,n.useContext)(G.Z);return{componentDisabled:$e,componentSize:Xe}}var te=k,Y=e(7637);function q($e,Xe){const rt=$e||{},Ke=rt.inherit===!1||!Xe?S.u_:Xe;return(0,o.Z)(()=>{if(!$e)return Xe;const ye=Object.assign({},Ke.components);return Object.keys($e.components||{}).forEach(ne=>{ye[ne]=Object.assign(Object.assign({},ye[ne]),$e.components[ne])}),Object.assign(Object.assign(Object.assign({},Ke),rt),{token:Object.assign(Object.assign({},Ke.token),rt.token),components:ye})},[rt,Ke],(ye,ne)=>ye.some((H,R)=>{const P=ne[R];return!(0,Y.Z)(H,P,!0)}))}var le=e(17598),X=e(51806);function W($e){const{children:Xe}=$e,[,rt]=(0,X.Z)(),{motion:Ke}=rt,ye=n.useRef(!1);return ye.current=ye.current||Ke===!1,ye.current?n.createElement(le.zt,{motion:Ke},Xe):Xe}var x=e(60619),O=function($e,Xe){var rt={};for(var Ke in $e)Object.prototype.hasOwnProperty.call($e,Ke)&&Xe.indexOf(Ke)<0&&(rt[Ke]=$e[Ke]);if($e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ye=0,Ke=Object.getOwnPropertySymbols($e);yeXe.endsWith("Color"))}const Qe=$e=>{let{prefixCls:Xe,iconPrefixCls:rt,theme:Ke}=$e;Xe!==void 0&&(pe=Xe),rt!==void 0&&(ge=rt),Ke&&(qe(Ke)?T(Te(),Ke):be=Ke)},ht=()=>({getPrefixCls:($e,Xe)=>Xe||($e?`${Te()}-${$e}`:Te()),getIconPrefixCls:Ge,getRootPrefixCls:()=>pe||Te(),getTheme:()=>be}),Et=$e=>{const{children:Xe,csp:rt,autoInsertSpaceInButton:Ke,alert:ye,anchor:ne,form:H,locale:R,componentSize:P,direction:ae,space:Q,virtual:ie,dropdownMatchSelectWidth:me,popupMatchSelectWidth:je,popupOverflow:Ce,legacyLocale:Se,parentContext:We,iconPrefixCls:re,theme:se,componentDisabled:J,segmented:de,statistic:xe,spin:ce,calendar:Ne,carousel:Oe,cascader:we,collapse:Re,typography:st,checkbox:tt,descriptions:Ye,divider:ke,drawer:Be,skeleton:it,steps:Ve,image:xt,layout:_t,list:Ot,mentions:wt,modal:Yt,progress:bt,result:ze,slider:nt,breadcrumb:St,menu:ut,pagination:Vt,input:Nt,empty:At,badge:Ie,radio:Ee,rate:Mt,switch:jt,transfer:He,avatar:et,message:Zt,tag:Ut,table:Jt,card:ln,tabs:Mn,timeline:gn,timePicker:Yn,upload:Gn,notification:ar,tree:gr,colorPicker:zt,datePicker:qt,wave:rn}=$e,dn=n.useCallback((dt,It)=>{const{prefixCls:Ct}=$e;if(It)return It;const kt=Ct||We.getPrefixCls("");return dt?`${kt}-${dt}`:kt},[We.getPrefixCls,$e.prefixCls]),Cn=re||We.iconPrefixCls||C.oR,on=Cn!==We.iconPrefixCls,pt=rt||We.csp,mt=(0,x.Z)(Cn,pt),sn=q(se,We.theme),Kt={csp:pt,autoInsertSpaceInButton:Ke,alert:ye,anchor:ne,locale:R||Se,direction:ae,space:Q,virtual:ie,popupMatchSelectWidth:je!=null?je:me,popupOverflow:Ce,getPrefixCls:dn,iconPrefixCls:Cn,theme:sn,segmented:de,statistic:xe,spin:ce,calendar:Ne,carousel:Oe,cascader:we,collapse:Re,typography:st,checkbox:tt,descriptions:Ye,divider:ke,drawer:Be,skeleton:it,steps:Ve,image:xt,input:Nt,layout:_t,list:Ot,mentions:wt,modal:Yt,progress:bt,result:ze,slider:nt,breadcrumb:St,menu:ut,pagination:Vt,empty:At,badge:Ie,radio:Ee,rate:Mt,switch:jt,transfer:He,avatar:et,message:Zt,tag:Ut,table:Jt,card:ln,tabs:Mn,timeline:gn,timePicker:Yn,upload:Gn,notification:ar,tree:gr,colorPicker:zt,datePicker:qt,wave:rn},tn=Object.assign({},We);Object.keys(Kt).forEach(dt=>{Kt[dt]!==void 0&&(tn[dt]=Kt[dt])}),V.forEach(dt=>{const It=$e[dt];It&&(tn[dt]=It)});const mn=(0,o.Z)(()=>tn,tn,(dt,It)=>{const Ct=Object.keys(dt),kt=Object.keys(It);return Ct.length!==kt.length||Ct.some(un=>dt[un]!==It[un])}),fn=n.useMemo(()=>({prefixCls:Cn,csp:pt}),[Cn,pt]);let kn=on?mt(Xe):Xe;const qn=n.useMemo(()=>{var dt,It,Ct,kt;return(0,s.T)(((dt=h.Z.Form)===null||dt===void 0?void 0:dt.defaultValidateMessages)||{},((Ct=(It=mn.locale)===null||It===void 0?void 0:It.Form)===null||Ct===void 0?void 0:Ct.defaultValidateMessages)||{},((kt=mn.form)===null||kt===void 0?void 0:kt.validateMessages)||{},(H==null?void 0:H.validateMessages)||{})},[mn,H==null?void 0:H.validateMessages]);Object.keys(qn).length>0&&(kn=n.createElement(d.Z.Provider,{value:qn},Xe)),R&&(kn=n.createElement(M,{locale:R,_ANT_MARK__:m},kn)),(Cn||pt)&&(kn=n.createElement(t.Z.Provider,{value:fn},kn)),P&&(kn=n.createElement(G.q,{size:P},kn)),kn=n.createElement(W,null,kn);const ct=n.useMemo(()=>{const dt=sn||{},{algorithm:It,token:Ct,components:kt}=dt,un=O(dt,["algorithm","token","components"]),nn=It&&(!Array.isArray(It)||It.length>0)?(0,a.jG)(It):S.uH,xn={};return Object.entries(kt||{}).forEach(Rn=>{let[Mr,er]=Rn;const zn=Object.assign({},er);"algorithm"in zn&&(zn.algorithm===!0?zn.theme=nn:(Array.isArray(zn.algorithm)||typeof zn.algorithm=="function")&&(zn.theme=(0,a.jG)(zn.algorithm)),delete zn.algorithm),xn[Mr]=zn}),Object.assign(Object.assign({},un),{theme:nn,token:Object.assign(Object.assign({},w.Z),Ct),components:xn})},[sn]);return se&&(kn=n.createElement(S.Mj.Provider,{value:ct},kn)),J!==void 0&&(kn=n.createElement(j.n,{disabled:J},kn)),n.createElement(C.E_.Provider,{value:mn},kn)},gt=$e=>{const Xe=n.useContext(C.E_),rt=n.useContext(c.Z);return n.createElement(Et,Object.assign({parentContext:Xe,legacyLocale:rt},$e))};gt.ConfigContext=C.E_,gt.SizeContext=G.Z,gt.config=Qe,gt.useConfig=te,Object.defineProperty(gt,"SizeContext",{get:()=>G.Z});var Ht=gt},7056:function(b,y,e){"use strict";e.d(y,{Z:function(){return n}});var a={locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"OK",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},t=a,o=e(38107),n={lang:Object.assign({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeQuarterPlaceholder:["Start quarter","End quarter"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},t),timePickerLocale:Object.assign({},o.Z)}},51244:function(b,y,e){"use strict";e.d(y,{Z:function(){return h}});var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(78330),d=e(52628),l=e(22151);const c=S=>{const{componentCls:w,sizePaddingEdgeHorizontal:C,colorSplit:z,lineWidth:Z}=S;return{[w]:Object.assign(Object.assign({},(0,n.Wf)(S)),{borderBlockStart:`${Z}px solid ${z}`,"&-vertical":{position:"relative",top:"-0.06em",display:"inline-block",height:"0.9em",margin:`0 ${S.dividerVerticalGutterMargin}px`,verticalAlign:"middle",borderTop:0,borderInlineStart:`${Z}px solid ${z}`},"&-horizontal":{display:"flex",clear:"both",width:"100%",minWidth:"100%",margin:`${S.dividerHorizontalGutterMargin}px 0`},[`&-horizontal${w}-with-text`]:{display:"flex",alignItems:"center",margin:`${S.dividerHorizontalWithTextGutterMargin}px 0`,color:S.colorTextHeading,fontWeight:500,fontSize:S.fontSizeLG,whiteSpace:"nowrap",textAlign:"center",borderBlockStart:`0 ${z}`,"&::before, &::after":{position:"relative",width:"50%",borderBlockStart:`${Z}px solid transparent`,borderBlockStartColor:"inherit",borderBlockEnd:0,transform:"translateY(50%)",content:"''"}},[`&-horizontal${w}-with-text-left`]:{"&::before":{width:"5%"},"&::after":{width:"95%"}},[`&-horizontal${w}-with-text-right`]:{"&::before":{width:"95%"},"&::after":{width:"5%"}},[`${w}-inner-text`]:{display:"inline-block",padding:"0 1em"},"&-dashed":{background:"none",borderColor:z,borderStyle:"dashed",borderWidth:`${Z}px 0 0`},[`&-horizontal${w}-with-text${w}-dashed`]:{"&::before, &::after":{borderStyle:"dashed none none"}},[`&-vertical${w}-dashed`]:{borderInlineStartWidth:Z,borderInlineEnd:0,borderBlockStart:0,borderBlockEnd:0},[`&-plain${w}-with-text`]:{color:S.colorText,fontWeight:"normal",fontSize:S.fontSize},[`&-horizontal${w}-with-text-left${w}-no-default-orientation-margin-left`]:{"&::before":{width:0},"&::after":{width:"100%"},[`${w}-inner-text`]:{paddingInlineStart:C}},[`&-horizontal${w}-with-text-right${w}-no-default-orientation-margin-right`]:{"&::before":{width:"100%"},"&::after":{width:0},[`${w}-inner-text`]:{paddingInlineEnd:C}}})}};var m=(0,d.Z)("Divider",S=>{const w=(0,l.TS)(S,{dividerVerticalGutterMargin:S.marginXS,dividerHorizontalWithTextGutterMargin:S.margin,dividerHorizontalGutterMargin:S.marginLG});return[c(w)]},{sizePaddingEdgeHorizontal:0}),g=function(S,w){var C={};for(var z in S)Object.prototype.hasOwnProperty.call(S,z)&&w.indexOf(z)<0&&(C[z]=S[z]);if(S!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Z=0,z=Object.getOwnPropertySymbols(S);Z{const{getPrefixCls:w,direction:C,divider:z}=o.useContext(s.E_),{prefixCls:Z,type:N="horizontal",orientation:L="center",orientationMargin:$,className:D,rootClassName:T,children:j,dashed:G,plain:k,style:te}=S,Y=g(S,["prefixCls","type","orientation","orientationMargin","className","rootClassName","children","dashed","plain","style"]),q=w("divider",Z),[le,X]=m(q),W=L.length>0?`-${L}`:L,x=!!j,O=L==="left"&&$!=null,_=L==="right"&&$!=null,U=t()(q,z==null?void 0:z.className,X,`${q}-${N}`,{[`${q}-with-text`]:x,[`${q}-with-text${W}`]:x,[`${q}-dashed`]:!!G,[`${q}-plain`]:!!k,[`${q}-rtl`]:C==="rtl",[`${q}-no-default-orientation-margin-left`]:O,[`${q}-no-default-orientation-margin-right`]:_},D,T),A=o.useMemo(()=>typeof $=="number"?$:/^\d+$/.test($)?Number($):$,[$]),V=Object.assign(Object.assign({},O&&{marginLeft:A}),_&&{marginRight:A});return le(o.createElement("div",Object.assign({className:U,style:Object.assign(Object.assign({},z==null?void 0:z.style),te)},Y,{role:"separator"}),j&&N!=="vertical"&&o.createElement("span",{className:`${q}-inner-text`,style:V},j)))}},40627:function(b,y,e){"use strict";var a=e(91169),t=e(87608),o=e.n(t),s=e(4933),n=e(51729),d=e(60409),l=e(98186),c=e(58757),m=e(15018),g=e(95446),M=e(37047),h=e(61836),S=e(85706),w=e(81285),C=e(22802),z=e(78607);const Z=null,N=T=>{const{menu:j,arrow:G,prefixCls:k,children:te,trigger:Y,disabled:q,dropdownRender:le,getPopupContainer:X,overlayClassName:W,rootClassName:x,open:O,onOpenChange:_,visible:U,onVisibleChange:A,mouseEnterDelay:V=.15,mouseLeaveDelay:fe=.1,autoAdjustOverflow:pe=!0,placement:ge="",overlay:be,transitionName:Te}=T,{getPopupContainer:Ge,getPrefixCls:qe,direction:Qe}=c.useContext(h.E_),ht=c.useMemo(()=>{const je=qe();return Te!==void 0?Te:ge.includes("top")?`${je}-slide-down`:`${je}-slide-up`},[qe,ge,Te]),Et=c.useMemo(()=>ge?ge.includes("Center")?ge.slice(0,ge.indexOf("Center")):ge:Qe==="rtl"?"bottomRight":"bottomLeft",[ge,Qe]),gt=qe("dropdown",k),[Ht,$e]=(0,z.Z)(gt),{token:Xe}=C.Z.useToken(),rt=c.Children.only(te),Ke=(0,M.Tm)(rt,{className:o()(`${gt}-trigger`,{[`${gt}-rtl`]:Qe==="rtl"},rt.props.className),disabled:q}),ye=q?[]:Y;let ne;ye&&ye.includes("contextMenu")&&(ne=!0);const[H,R]=(0,d.Z)(!1,{value:O!=null?O:U}),P=(0,n.Z)(je=>{_==null||_(je),A==null||A(je),R(je)}),ae=o()(W,x,$e,{[`${gt}-rtl`]:Qe==="rtl"}),Q=(0,g.Z)({arrowPointAtCenter:typeof G=="object"&&G.pointAtCenter,autoAdjustOverflow:pe,offset:Xe.marginXXS,arrowWidth:G?Xe.sizePopupArrow:0,borderRadius:Xe.borderRadius}),ie=c.useCallback(()=>{R(!1)},[]),me=()=>{let je;return j!=null&&j.items?je=c.createElement(S.Z,Object.assign({},j)):typeof be=="function"?je=be():je=be,le&&(je=le(je)),je=c.Children.only(typeof je=="string"?c.createElement("span",null,je):je),c.createElement(w.J,{prefixCls:`${gt}-menu`,expandIcon:c.createElement("span",{className:`${gt}-menu-submenu-arrow`},c.createElement(a.Z,{className:`${gt}-menu-submenu-arrow-icon`})),mode:"vertical",selectable:!1,onClick:ie,validator:Ce=>{let{mode:Se}=Ce}},je)};return Ht(c.createElement(s.Z,Object.assign({alignPoint:ne},(0,l.Z)(T,["rootClassName"]),{mouseEnterDelay:V,mouseLeaveDelay:fe,visible:H,builtinPlacements:Q,arrow:!!G,overlayClassName:ae,prefixCls:gt,getPopupContainer:X||Ge,transitionName:ht,trigger:ye,overlay:me,placement:Et,onVisibleChange:P}),Ke))};function L(T){return Object.assign(Object.assign({},T),{align:{overflow:{adjustX:!1,adjustY:!1}}})}const $=(0,m.Z)(N,"dropdown",T=>T,L),D=T=>c.createElement($,Object.assign({},T),c.createElement("span",null));N._InternalPanelDoNotUseOrYouWillBeFired=D,y.Z=N},73267:function(b,y,e){"use strict";e.d(y,{Z:function(){return C}});var a=e(40627),t=e(87608),o=e.n(t),s=e(58757),n=e(18974),d=e(12562),l=e(61836),c=e(57414),m=e(43528),g=e(78607),M=function(z,Z){var N={};for(var L in z)Object.prototype.hasOwnProperty.call(z,L)&&Z.indexOf(L)<0&&(N[L]=z[L]);if(z!=null&&typeof Object.getOwnPropertySymbols=="function")for(var $=0,L=Object.getOwnPropertySymbols(z);${const{getPopupContainer:Z,getPrefixCls:N,direction:L}=s.useContext(l.E_),{prefixCls:$,type:D="default",danger:T,disabled:j,loading:G,onClick:k,htmlType:te,children:Y,className:q,menu:le,arrow:X,autoFocus:W,overlay:x,trigger:O,align:_,open:U,onOpenChange:A,placement:V,getPopupContainer:fe,href:pe,icon:ge=s.createElement(n.Z,null),title:be,buttonsRender:Te=me=>me,mouseEnterDelay:Ge,mouseLeaveDelay:qe,overlayClassName:Qe,overlayStyle:ht,destroyPopupOnHide:Et,dropdownRender:gt}=z,Ht=M(z,["prefixCls","type","danger","disabled","loading","onClick","htmlType","children","className","menu","arrow","autoFocus","overlay","trigger","align","open","onOpenChange","placement","getPopupContainer","href","icon","title","buttonsRender","mouseEnterDelay","mouseLeaveDelay","overlayClassName","overlayStyle","destroyPopupOnHide","dropdownRender"]),$e=N("dropdown",$),Xe=`${$e}-button`,[rt,Ke]=(0,g.Z)($e),ye={menu:le,arrow:X,autoFocus:W,align:_,disabled:j,trigger:j?[]:O,onOpenChange:A,getPopupContainer:fe||Z,mouseEnterDelay:Ge,mouseLeaveDelay:qe,overlayClassName:Qe,overlayStyle:ht,destroyPopupOnHide:Et,dropdownRender:gt},{compactSize:ne,compactItemClassnames:H}=(0,m.ri)($e,L),R=o()(Xe,H,q,Ke);"overlay"in z&&(ye.overlay=x),"open"in z&&(ye.open=U),"placement"in z?ye.placement=V:ye.placement=L==="rtl"?"bottomLeft":"bottomRight";const P=s.createElement(d.ZP,{type:D,danger:T,disabled:j,loading:G,onClick:k,htmlType:te,href:pe,title:be},Y),ae=s.createElement(d.ZP,{type:D,danger:T,icon:ge}),[Q,ie]=Te([P,ae]);return rt(s.createElement(c.Z.Compact,Object.assign({className:R,size:ne,block:!0},Ht),Q,s.createElement(a.Z,Object.assign({},ye),ie)))};h.__ANT_BUTTON=!0;var S=h;const w=a.Z;w.Button=S;var C=w},78607:function(b,y,e){"use strict";e.d(y,{Z:function(){return M}});var a=e(78330),t=e(1016),o=e(1546),s=e(28107),n=e(24542),d=e(52628),l=e(22151),m=h=>{const{componentCls:S,menuCls:w,colorError:C,colorTextLightSolid:z}=h,Z=`${w}-item`;return{[`${S}, ${S}-menu-submenu`]:{[`${w} ${Z}`]:{[`&${Z}-danger:not(${Z}-disabled)`]:{color:C,"&:hover":{color:z,backgroundColor:C}}}}}};const g=h=>{const{componentCls:S,menuCls:w,zIndexPopup:C,dropdownArrowDistance:z,sizePopupArrow:Z,antCls:N,iconCls:L,motionDurationMid:$,dropdownPaddingVertical:D,fontSize:T,dropdownEdgeChildPadding:j,colorTextDisabled:G,fontSizeIcon:k,controlPaddingHorizontal:te,colorBgElevated:Y}=h;return[{[S]:Object.assign(Object.assign({},(0,a.Wf)(h)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:C,display:"block","&::before":{position:"absolute",insetBlock:-z+Z/2,zIndex:-9999,opacity:1e-4,content:'""'},[`&-trigger${N}-btn`]:{[`& > ${L}-down, & > ${N}-btn-icon > ${L}-down`]:{fontSize:k}},[`${S}-wrap`]:{position:"relative",[`${N}-btn > ${L}-down`]:{fontSize:k},[`${L}-down::before`]:{transition:`transform ${$}`}},[`${S}-wrap-open`]:{[`${L}-down::before`]:{transform:"rotate(180deg)"}},[` + &-hidden, + &-menu-hidden, + &-menu-submenu-hidden + `]:{display:"none"},[`&${N}-slide-down-enter${N}-slide-down-enter-active${S}-placement-bottomLeft, + &${N}-slide-down-appear${N}-slide-down-appear-active${S}-placement-bottomLeft, + &${N}-slide-down-enter${N}-slide-down-enter-active${S}-placement-bottom, + &${N}-slide-down-appear${N}-slide-down-appear-active${S}-placement-bottom, + &${N}-slide-down-enter${N}-slide-down-enter-active${S}-placement-bottomRight, + &${N}-slide-down-appear${N}-slide-down-appear-active${S}-placement-bottomRight`]:{animationName:t.fJ},[`&${N}-slide-up-enter${N}-slide-up-enter-active${S}-placement-topLeft, + &${N}-slide-up-appear${N}-slide-up-appear-active${S}-placement-topLeft, + &${N}-slide-up-enter${N}-slide-up-enter-active${S}-placement-top, + &${N}-slide-up-appear${N}-slide-up-appear-active${S}-placement-top, + &${N}-slide-up-enter${N}-slide-up-enter-active${S}-placement-topRight, + &${N}-slide-up-appear${N}-slide-up-appear-active${S}-placement-topRight`]:{animationName:t.Qt},[`&${N}-slide-down-leave${N}-slide-down-leave-active${S}-placement-bottomLeft, + &${N}-slide-down-leave${N}-slide-down-leave-active${S}-placement-bottom, + &${N}-slide-down-leave${N}-slide-down-leave-active${S}-placement-bottomRight`]:{animationName:t.Uw},[`&${N}-slide-up-leave${N}-slide-up-leave-active${S}-placement-topLeft, + &${N}-slide-up-leave${N}-slide-up-leave-active${S}-placement-top, + &${N}-slide-up-leave${N}-slide-up-leave-active${S}-placement-topRight`]:{animationName:t.ly}})},(0,n.ZP)(h,{colorBg:Y,limitVerticalRadius:!0,arrowPlacement:{top:!0,bottom:!0}}),{[`${S} ${w}`]:{position:"relative",margin:0},[`${w}-submenu-popup`]:{position:"absolute",zIndex:C,background:"transparent",boxShadow:"none",transformOrigin:"0 0","ul, li":{listStyle:"none",margin:0}},[`${S}, ${S}-menu-submenu`]:{[w]:Object.assign(Object.assign({padding:j,listStyleType:"none",backgroundColor:Y,backgroundClip:"padding-box",borderRadius:h.borderRadiusLG,outline:"none",boxShadow:h.boxShadowSecondary},(0,a.Qy)(h)),{[`${w}-item-group-title`]:{padding:`${D}px ${te}px`,color:h.colorTextDescription,transition:`all ${$}`},[`${w}-item`]:{position:"relative",display:"flex",alignItems:"center"},[`${w}-item-icon`]:{minWidth:T,marginInlineEnd:h.marginXS,fontSize:h.fontSizeSM},[`${w}-title-content`]:{flex:"auto","> a":{color:"inherit",transition:`all ${$}`,"&:hover":{color:"inherit"},"&::after":{position:"absolute",inset:0,content:'""'}}},[`${w}-item, ${w}-submenu-title`]:Object.assign(Object.assign({clear:"both",margin:0,padding:`${D}px ${te}px`,color:h.colorText,fontWeight:"normal",fontSize:T,lineHeight:h.lineHeight,cursor:"pointer",transition:`all ${$}`,borderRadius:h.borderRadiusSM,["&:hover, &-active"]:{backgroundColor:h.controlItemBgHover}},(0,a.Qy)(h)),{"&-selected":{color:h.colorPrimary,backgroundColor:h.controlItemBgActive,"&:hover, &-active":{backgroundColor:h.controlItemBgActiveHover}},"&-disabled":{color:G,cursor:"not-allowed","&:hover":{color:G,backgroundColor:Y,cursor:"not-allowed"},a:{pointerEvents:"none"}},"&-divider":{height:1,margin:`${h.marginXXS}px 0`,overflow:"hidden",lineHeight:0,backgroundColor:h.colorSplit},[`${S}-menu-submenu-expand-icon`]:{position:"absolute",insetInlineEnd:h.paddingXS,[`${S}-menu-submenu-arrow-icon`]:{marginInlineEnd:"0 !important",color:h.colorTextDescription,fontSize:k,fontStyle:"normal"}}}),[`${w}-item-group-list`]:{margin:`0 ${h.marginXS}px`,padding:0,listStyle:"none"},[`${w}-submenu-title`]:{paddingInlineEnd:te+h.fontSizeSM},[`${w}-submenu-vertical`]:{position:"relative"},[`${w}-submenu${w}-submenu-disabled ${S}-menu-submenu-title`]:{[`&, ${S}-menu-submenu-arrow-icon`]:{color:G,backgroundColor:Y,cursor:"not-allowed"}},[`${w}-submenu-selected ${S}-menu-submenu-title`]:{color:h.colorPrimary}})}},[(0,t.oN)(h,"slide-up"),(0,t.oN)(h,"slide-down"),(0,o.Fm)(h,"move-up"),(0,o.Fm)(h,"move-down"),(0,s._y)(h,"zoom-big")]]};var M=(0,d.Z)("Dropdown",(h,S)=>{let{rootPrefixCls:w}=S;const{marginXXS:C,sizePopupArrow:z,controlHeight:Z,fontSize:N,lineHeight:L,paddingXXS:$,componentCls:D,borderRadiusLG:T}=h,j=(Z-N*L)/2,{dropdownArrowOffset:G}=(0,n.fS)({contentRadius:T}),k=(0,l.TS)(h,{menuCls:`${D}-menu`,rootPrefixCls:w,dropdownArrowDistance:z/2+C,dropdownArrowOffset:G,dropdownPaddingVertical:j,dropdownEdgeChildPadding:$});return[g(k),m(k)]},h=>({zIndexPopup:h.zIndexPopupBase+50}))},17444:function(b,y,e){"use strict";e.d(y,{Z:function(){return $}});var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(29487),d=e(66671),l=e(51806),m=()=>{const[,D]=(0,l.Z)(),j=new d.C(D.colorBgBase).toHsl().l<.5?{opacity:.65}:{};return o.createElement("svg",{style:j,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},o.createElement("g",{fill:"none",fillRule:"evenodd"},o.createElement("g",{transform:"translate(24 31.67)"},o.createElement("ellipse",{fillOpacity:".8",fill:"#F5F5F7",cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),o.createElement("path",{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",fill:"#AEB8C2"}),o.createElement("path",{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",fill:"url(#linearGradient-1)",transform:"translate(13.56)"}),o.createElement("path",{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",fill:"#F5F5F7"}),o.createElement("path",{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",fill:"#DCE0E6"})),o.createElement("path",{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",fill:"#DCE0E6"}),o.createElement("g",{transform:"translate(149.65 15.383)",fill:"#FFF"},o.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),o.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))},M=()=>{const[,D]=(0,l.Z)(),{colorFill:T,colorFillTertiary:j,colorFillQuaternary:G,colorBgContainer:k}=D,{borderColor:te,shadowColor:Y,contentColor:q}=(0,o.useMemo)(()=>({borderColor:new d.C(T).onBackground(k).toHexShortString(),shadowColor:new d.C(j).onBackground(k).toHexShortString(),contentColor:new d.C(G).onBackground(k).toHexShortString()}),[T,j,G,k]);return o.createElement("svg",{width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},o.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},o.createElement("ellipse",{fill:Y,cx:"32",cy:"33",rx:"32",ry:"7"}),o.createElement("g",{fillRule:"nonzero",stroke:te},o.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"}),o.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",fill:q}))))},h=e(52628),S=e(22151);const w=D=>{const{componentCls:T,margin:j,marginXS:G,marginXL:k,fontSize:te,lineHeight:Y}=D;return{[T]:{marginInline:G,fontSize:te,lineHeight:Y,textAlign:"center",[`${T}-image`]:{height:D.emptyImgHeight,marginBottom:G,opacity:D.opacityImage,img:{height:"100%"},svg:{maxWidth:"100%",height:"100%",margin:"auto"}},[`${T}-description`]:{color:D.colorText},[`${T}-footer`]:{marginTop:j},"&-normal":{marginBlock:k,color:D.colorTextDisabled,[`${T}-description`]:{color:D.colorTextDisabled},[`${T}-image`]:{height:D.emptyImgHeightMD}},"&-small":{marginBlock:G,color:D.colorTextDisabled,[`${T}-image`]:{height:D.emptyImgHeightSM}}}}};var C=(0,h.Z)("Empty",D=>{const{componentCls:T,controlHeightLG:j}=D,G=(0,S.TS)(D,{emptyImgCls:`${T}-img`,emptyImgHeight:j*2.5,emptyImgHeightMD:j,emptyImgHeightSM:j*.875});return[w(G)]}),z=function(D,T){var j={};for(var G in D)Object.prototype.hasOwnProperty.call(D,G)&&T.indexOf(G)<0&&(j[G]=D[G]);if(D!=null&&typeof Object.getOwnPropertySymbols=="function")for(var k=0,G=Object.getOwnPropertySymbols(D);k{var{className:T,rootClassName:j,prefixCls:G,image:k=Z,description:te,children:Y,imageStyle:q,style:le}=D,X=z(D,["className","rootClassName","prefixCls","image","description","children","imageStyle","style"]);const{getPrefixCls:W,direction:x,empty:O}=o.useContext(s.E_),_=W("empty",G),[U,A]=C(_),[V]=(0,n.Z)("Empty"),fe=typeof te!="undefined"?te:V==null?void 0:V.description,pe=typeof fe=="string"?fe:"empty";let ge=null;return typeof k=="string"?ge=o.createElement("img",{alt:pe,src:k}):ge=k,U(o.createElement("div",Object.assign({className:t()(A,_,O==null?void 0:O.className,{[`${_}-normal`]:k===N,[`${_}-rtl`]:x==="rtl"},T,j),style:Object.assign(Object.assign({},O==null?void 0:O.style),le)},X),o.createElement("div",{className:`${_}-image`,style:q},ge),fe&&o.createElement("div",{className:`${_}-description`},fe),Y&&o.createElement("div",{className:`${_}-footer`},Y)))};L.PRESENTED_IMAGE_DEFAULT=Z,L.PRESENTED_IMAGE_SIMPLE=N;var $=L},81496:function(b,y,e){"use strict";e.d(y,{RV:function(){return d},Rk:function(){return l},Ux:function(){return m},aM:function(){return c},q3:function(){return s},qI:function(){return n}});var a=e(94866),t=e(98186),o=e(58757);const s=o.createContext({labelAlign:"right",vertical:!1,itemRef:()=>{}}),n=o.createContext(null),d=g=>{const M=(0,t.Z)(g,["prefixCls"]);return o.createElement(a.RV,Object.assign({},M))},l=o.createContext({prefixCls:""}),c=o.createContext({}),m=g=>{let{children:M,status:h,override:S}=g;const w=(0,o.useContext)(c),C=(0,o.useMemo)(()=>{const z=Object.assign({},w);return S&&delete z.isFormItemInput,h&&(delete z.status,delete z.hasFeedback,delete z.feedbackIcon),z},[h,S,w]);return o.createElement(c.Provider,{value:C},M)}},47513:function(b,y,e){"use strict";e.d(y,{Z:function(){return Ie}});var a=e(29140),t=e(87608),o=e.n(t),s=e(17598),n=e(58757),d=e(90881),l=e(81496);function c(Ee){const[Mt,jt]=n.useState(Ee);return n.useEffect(()=>{const He=setTimeout(()=>{jt(Ee)},Ee.length?0:10);return()=>{clearTimeout(He)}},[Ee]),Mt}var m=e(78330),g=e(28107),M=e(41086),h=e(52628),S=e(22151),C=Ee=>{const{componentCls:Mt}=Ee,jt=`${Mt}-show-help`,He=`${Mt}-show-help-item`;return{[jt]:{transition:`opacity ${Ee.motionDurationSlow} ${Ee.motionEaseInOut}`,"&-appear, &-enter":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}},[He]:{overflow:"hidden",transition:`height ${Ee.motionDurationSlow} ${Ee.motionEaseInOut}, + opacity ${Ee.motionDurationSlow} ${Ee.motionEaseInOut}, + transform ${Ee.motionDurationSlow} ${Ee.motionEaseInOut} !important`,[`&${He}-appear, &${He}-enter`]:{transform:"translateY(-5px)",opacity:0,["&-active"]:{transform:"translateY(0)",opacity:1}},[`&${He}-leave-active`]:{transform:"translateY(-5px)"}}}}};const z=Ee=>({legend:{display:"block",width:"100%",marginBottom:Ee.marginLG,padding:0,color:Ee.colorTextDescription,fontSize:Ee.fontSizeLG,lineHeight:"inherit",border:0,borderBottom:`${Ee.lineWidth}px ${Ee.lineType} ${Ee.colorBorder}`},label:{fontSize:Ee.fontSize},'input[type="search"]':{boxSizing:"border-box"},'input[type="radio"], input[type="checkbox"]':{lineHeight:"normal"},'input[type="file"]':{display:"block"},'input[type="range"]':{display:"block",width:"100%"},"select[multiple], select[size]":{height:"auto"},[`input[type='file']:focus, + input[type='radio']:focus, + input[type='checkbox']:focus`]:{outline:0,boxShadow:`0 0 0 ${Ee.controlOutlineWidth}px ${Ee.controlOutline}`},output:{display:"block",paddingTop:15,color:Ee.colorText,fontSize:Ee.fontSize,lineHeight:Ee.lineHeight}}),Z=(Ee,Mt)=>{const{formItemCls:jt}=Ee;return{[jt]:{[`${jt}-label > label`]:{height:Mt},[`${jt}-control-input`]:{minHeight:Mt}}}},N=Ee=>{const{componentCls:Mt}=Ee;return{[Ee.componentCls]:Object.assign(Object.assign(Object.assign({},(0,m.Wf)(Ee)),z(Ee)),{[`${Mt}-text`]:{display:"inline-block",paddingInlineEnd:Ee.paddingSM},"&-small":Object.assign({},Z(Ee,Ee.controlHeightSM)),"&-large":Object.assign({},Z(Ee,Ee.controlHeightLG))})}},L=Ee=>{const{formItemCls:Mt,iconCls:jt,componentCls:He,rootPrefixCls:et}=Ee;return{[Mt]:Object.assign(Object.assign({},(0,m.Wf)(Ee)),{marginBottom:Ee.marginLG,verticalAlign:"top","&-with-help":{transition:"none"},[`&-hidden, + &-hidden.${et}-row`]:{display:"none"},"&-has-warning":{[`${Mt}-split`]:{color:Ee.colorError}},"&-has-error":{[`${Mt}-split`]:{color:Ee.colorWarning}},[`${Mt}-label`]:{display:"inline-block",flexGrow:0,overflow:"hidden",whiteSpace:"nowrap",textAlign:"end",verticalAlign:"middle","&-left":{textAlign:"start"},"&-wrap":{overflow:"unset",lineHeight:`${Ee.lineHeight} - 0.25em`,whiteSpace:"unset"},"> label":{position:"relative",display:"inline-flex",alignItems:"center",maxWidth:"100%",height:Ee.controlHeight,color:Ee.colorTextHeading,fontSize:Ee.fontSize,[`> ${jt}`]:{fontSize:Ee.fontSize,verticalAlign:"top"},[`&${Mt}-required:not(${Mt}-required-mark-optional)::before`]:{display:"inline-block",marginInlineEnd:Ee.marginXXS,color:Ee.colorError,fontSize:Ee.fontSize,fontFamily:"SimSun, sans-serif",lineHeight:1,content:'"*"',[`${He}-hide-required-mark &`]:{display:"none"}},[`${Mt}-optional`]:{display:"inline-block",marginInlineStart:Ee.marginXXS,color:Ee.colorTextDescription,[`${He}-hide-required-mark &`]:{display:"none"}},[`${Mt}-tooltip`]:{color:Ee.colorTextDescription,cursor:"help",writingMode:"horizontal-tb",marginInlineStart:Ee.marginXXS},"&::after":{content:'":"',position:"relative",marginBlock:0,marginInlineStart:Ee.marginXXS/2,marginInlineEnd:Ee.marginXS},[`&${Mt}-no-colon::after`]:{content:'"\\a0"'}}},[`${Mt}-control`]:{display:"flex",flexDirection:"column",flexGrow:1,[`&:first-child:not([class^="'${et}-col-'"]):not([class*="' ${et}-col-'"])`]:{width:"100%"},"&-input":{position:"relative",display:"flex",alignItems:"center",minHeight:Ee.controlHeight,"&-content":{flex:"auto",maxWidth:"100%"}}},[Mt]:{"&-explain, &-extra":{clear:"both",color:Ee.colorTextDescription,fontSize:Ee.fontSize,lineHeight:Ee.lineHeight},"&-explain-connected":{width:"100%"},"&-extra":{minHeight:Ee.controlHeightSM,transition:`color ${Ee.motionDurationMid} ${Ee.motionEaseOut}`},"&-explain":{"&-error":{color:Ee.colorError},"&-warning":{color:Ee.colorWarning}}},[`&-with-help ${Mt}-explain`]:{height:"auto",opacity:1},[`${Mt}-feedback-icon`]:{fontSize:Ee.fontSize,textAlign:"center",visibility:"visible",animationName:g.kr,animationDuration:Ee.motionDurationMid,animationTimingFunction:Ee.motionEaseOutBack,pointerEvents:"none","&-success":{color:Ee.colorSuccess},"&-error":{color:Ee.colorError},"&-warning":{color:Ee.colorWarning},"&-validating":{color:Ee.colorPrimary}}})}},$=Ee=>{const{componentCls:Mt,formItemCls:jt,rootPrefixCls:He}=Ee;return{[`${Mt}-horizontal`]:{[`${jt}-label`]:{flexGrow:0},[`${jt}-control`]:{flex:"1 1 0",minWidth:0},[`${jt}-label.${He}-col-24 + ${jt}-control`]:{minWidth:"unset"}}}},D=Ee=>{const{componentCls:Mt,formItemCls:jt}=Ee;return{[`${Mt}-inline`]:{display:"flex",flexWrap:"wrap",[jt]:{flex:"none",marginInlineEnd:Ee.margin,marginBottom:0,"&-row":{flexWrap:"nowrap"},[`> ${jt}-label, + > ${jt}-control`]:{display:"inline-block",verticalAlign:"top"},[`> ${jt}-label`]:{flex:"none"},[`${Mt}-text`]:{display:"inline-block"},[`${jt}-has-feedback`]:{display:"inline-block"}}}}},T=Ee=>({padding:`0 0 ${Ee.paddingXS}px`,whiteSpace:"initial",textAlign:"start","> label":{margin:0,"&::after":{visibility:"hidden"}}}),j=Ee=>{const{componentCls:Mt,formItemCls:jt,rootPrefixCls:He}=Ee;return{[`${jt} ${jt}-label`]:T(Ee),[Mt]:{[jt]:{flexWrap:"wrap",[`${jt}-label, ${jt}-control`]:{[`&:not([class*=" ${He}-col-xs"])`]:{flex:"0 0 100%",maxWidth:"100%"}}}}}},G=Ee=>{const{componentCls:Mt,formItemCls:jt,rootPrefixCls:He}=Ee;return{[`${Mt}-vertical`]:{[jt]:{"&-row":{flexDirection:"column"},"&-label > label":{height:"auto"},[`${Mt}-item-control`]:{width:"100%"}}},[`${Mt}-vertical ${jt}-label, + .${He}-col-24${jt}-label, + .${He}-col-xl-24${jt}-label`]:T(Ee),[`@media (max-width: ${Ee.screenXSMax}px)`]:[j(Ee),{[Mt]:{[`.${He}-col-xs-24${jt}-label`]:T(Ee)}}],[`@media (max-width: ${Ee.screenSMMax}px)`]:{[Mt]:{[`.${He}-col-sm-24${jt}-label`]:T(Ee)}},[`@media (max-width: ${Ee.screenMDMax}px)`]:{[Mt]:{[`.${He}-col-md-24${jt}-label`]:T(Ee)}},[`@media (max-width: ${Ee.screenLGMax}px)`]:{[Mt]:{[`.${He}-col-lg-24${jt}-label`]:T(Ee)}}}};var k=(0,h.Z)("Form",(Ee,Mt)=>{let{rootPrefixCls:jt}=Mt;const He=(0,S.TS)(Ee,{formItemCls:`${Ee.componentCls}-item`,rootPrefixCls:jt});return[N(He),L(He),C(He),$(He),D(He),G(He),(0,M.Z)(He),g.kr]});const te=[];function Y(Ee,Mt,jt){let He=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;return{key:typeof Ee=="string"?Ee:`${Mt}-${He}`,error:Ee,errorStatus:jt}}var le=Ee=>{let{help:Mt,helpStatus:jt,errors:He=te,warnings:et=te,className:Zt,fieldId:Ut,onVisibleChanged:Jt}=Ee;const{prefixCls:ln}=n.useContext(l.Rk),Mn=`${ln}-item-explain`,[,gn]=k(ln),Yn=(0,n.useMemo)(()=>(0,d.Z)(ln),[ln]),Gn=c(He),ar=c(et),gr=n.useMemo(()=>Mt!=null?[Y(Mt,"help",jt)]:[].concat((0,a.Z)(Gn.map((qt,rn)=>Y(qt,"error","error",rn))),(0,a.Z)(ar.map((qt,rn)=>Y(qt,"warning","warning",rn)))),[Mt,jt,Gn,ar]),zt={};return Ut&&(zt.id=`${Ut}_help`),n.createElement(s.ZP,{motionDeadline:Yn.motionDeadline,motionName:`${ln}-show-help`,visible:!!gr.length,onVisibleChanged:Jt},qt=>{const{className:rn,style:dn}=qt;return n.createElement("div",Object.assign({},zt,{className:o()(Mn,rn,Zt,gn),style:dn,role:"alert"}),n.createElement(s.V4,Object.assign({keys:gr},(0,d.Z)(ln),{motionName:`${ln}-show-help-item`,component:!1}),Cn=>{const{key:on,error:pt,errorStatus:mt,className:sn,style:Kt}=Cn;return n.createElement("div",{key:on,className:o()(sn,{[`${Mn}-${mt}`]:mt}),style:Kt},pt)}))})},X=e(94866),W=e(61836),x=e(92428),O=e(33446),_=e(58785),U=e(18591);const A=["parentNode"],V="form_item";function fe(Ee){return Ee===void 0||Ee===!1?[]:Array.isArray(Ee)?Ee:[Ee]}function pe(Ee,Mt){if(!Ee.length)return;const jt=Ee.join("_");return Mt?`${Mt}_${jt}`:A.includes(jt)?`${V}_${jt}`:jt}function ge(Ee){return fe(Ee).join("_")}function be(Ee){const[Mt]=(0,X.cI)(),jt=n.useRef({}),He=n.useMemo(()=>Ee!=null?Ee:Object.assign(Object.assign({},Mt),{__INTERNAL__:{itemRef:et=>Zt=>{const Ut=ge(et);Zt?jt.current[Ut]=Zt:delete jt.current[Ut]}},scrollToField:function(et){let Zt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const Ut=fe(et),Jt=pe(Ut,He.__INTERNAL__.name),ln=Jt?document.getElementById(Jt):null;ln&&(0,U.Z)(ln,Object.assign({scrollMode:"if-needed",block:"nearest"},Zt))},getFieldInstance:et=>{const Zt=ge(et);return jt.current[Zt]}}),[Ee,Mt]);return[He]}var Te=e(48736),Ge=function(Ee,Mt){var jt={};for(var He in Ee)Object.prototype.hasOwnProperty.call(Ee,He)&&Mt.indexOf(He)<0&&(jt[He]=Ee[He]);if(Ee!=null&&typeof Object.getOwnPropertySymbols=="function")for(var et=0,He=Object.getOwnPropertySymbols(Ee);et{const jt=n.useContext(x.Z),{getPrefixCls:He,direction:et,form:Zt}=n.useContext(W.E_),{prefixCls:Ut,className:Jt,rootClassName:ln,size:Mn,disabled:gn=jt,form:Yn,colon:Gn,labelAlign:ar,labelWrap:gr,labelCol:zt,wrapperCol:qt,hideRequiredMark:rn,layout:dn="horizontal",scrollToFirstError:Cn,requiredMark:on,onFinishFailed:pt,name:mt,style:sn}=Ee,Kt=Ge(Ee,["prefixCls","className","rootClassName","size","disabled","form","colon","labelAlign","labelWrap","labelCol","wrapperCol","hideRequiredMark","layout","scrollToFirstError","requiredMark","onFinishFailed","name","style"]),tn=(0,_.Z)(Mn),mn=n.useContext(Te.Z),fn=(0,n.useMemo)(()=>on!==void 0?on:Zt&&Zt.requiredMark!==void 0?Zt.requiredMark:!rn,[rn,on,Zt]),kn=Gn!=null?Gn:Zt==null?void 0:Zt.colon,qn=He("form",Ut),[ct,dt]=k(qn),It=o()(qn,`${qn}-${dn}`,{[`${qn}-hide-required-mark`]:fn===!1,[`${qn}-rtl`]:et==="rtl",[`${qn}-${tn}`]:tn},dt,Zt==null?void 0:Zt.className,Jt,ln),[Ct]=be(Yn),{__INTERNAL__:kt}=Ct;kt.name=mt;const un=(0,n.useMemo)(()=>({name:mt,labelAlign:ar,labelCol:zt,labelWrap:gr,wrapperCol:qt,vertical:dn==="vertical",colon:kn,requiredMark:fn,itemRef:kt.itemRef,form:Ct}),[mt,ar,zt,qt,dn,kn,fn,Ct]);n.useImperativeHandle(Mt,()=>Ct);const nn=(Rn,Mr)=>{if(Rn){let er={block:"nearest"};typeof Rn=="object"&&(er=Rn),Ct.scrollToField(Mr,er)}},xn=Rn=>{if(pt==null||pt(Rn),Rn.errorFields.length){const Mr=Rn.errorFields[0].name;if(Cn!==void 0){nn(Cn,Mr);return}Zt&&Zt.scrollToFirstError!==void 0&&nn(Zt.scrollToFirstError,Mr)}};return ct(n.createElement(x.n,{disabled:gn},n.createElement(O.q,{size:tn},n.createElement(l.RV,{validateMessages:mn},n.createElement(l.q3.Provider,{value:un},n.createElement(X.ZP,Object.assign({id:mt},Kt,{name:mt,onFinishFailed:xn,form:Ct,style:Object.assign(Object.assign({},Zt==null?void 0:Zt.style),sn),className:It})))))))};var ht=n.forwardRef(qe),Et=e(13989),gt=e(21319),Ht=e(37047);const $e=()=>{const{status:Ee,errors:Mt=[],warnings:jt=[]}=(0,n.useContext)(l.aM);return{status:Ee,errors:Mt,warnings:jt}};$e.Context=l.aM;var Xe=$e,rt=e(61834);function Ke(Ee){const[Mt,jt]=n.useState(Ee),He=(0,n.useRef)(null),et=(0,n.useRef)([]),Zt=(0,n.useRef)(!1);n.useEffect(()=>(Zt.current=!1,()=>{Zt.current=!0,rt.Z.cancel(He.current),He.current=null}),[]);function Ut(Jt){Zt.current||(He.current===null&&(et.current=[],He.current=(0,rt.Z)(()=>{He.current=null,jt(ln=>{let Mn=ln;return et.current.forEach(gn=>{Mn=gn(Mn)}),Mn})})),et.current.push(Jt))}return[Mt,Ut]}function ye(){const{itemRef:Ee}=n.useContext(l.q3),Mt=n.useRef({});function jt(He,et){const Zt=et&&typeof et=="object"&&et.ref,Ut=He.join("_");return(Mt.current.name!==Ut||Mt.current.originRef!==Zt)&&(Mt.current.name=Ut,Mt.current.originRef=Zt,Mt.current.ref=(0,gt.sQ)(Ee(He),Zt)),Mt.current.ref}return jt}var ne=e(85678),H=e(79999),R=e(69831),P=e(25755),ae=e(81334),Q=e(46499),ie=e(98186),me=e(67665),je=e(91334),Se=Ee=>{const{prefixCls:Mt,status:jt,wrapperCol:He,children:et,errors:Zt,warnings:Ut,_internalItemRender:Jt,extra:ln,help:Mn,fieldId:gn,marginBottom:Yn,onErrorVisibleChanged:Gn}=Ee,ar=`${Mt}-item`,gr=n.useContext(l.q3),zt=He||gr.wrapperCol||{},qt=o()(`${ar}-control`,zt.className),rn=n.useMemo(()=>Object.assign({},gr),[gr]);delete rn.labelCol,delete rn.wrapperCol;const dn=n.createElement("div",{className:`${ar}-control-input`},n.createElement("div",{className:`${ar}-control-input-content`},et)),Cn=n.useMemo(()=>({prefixCls:Mt,status:jt}),[Mt,jt]),on=Yn!==null||Zt.length||Ut.length?n.createElement("div",{style:{display:"flex",flexWrap:"nowrap"}},n.createElement(l.Rk.Provider,{value:Cn},n.createElement(le,{fieldId:gn,errors:Zt,warnings:Ut,help:Mn,helpStatus:jt,className:`${ar}-explain-connected`,onVisibleChanged:Gn})),!!Yn&&n.createElement("div",{style:{width:0,height:Yn}})):null,pt={};gn&&(pt.id=`${gn}_extra`);const mt=ln?n.createElement("div",Object.assign({},pt,{className:`${ar}-extra`}),ln):null,sn=Jt&&Jt.mark==="pro_table_render"&&Jt.render?Jt.render(Ee,{input:dn,errorList:on,extra:mt}):n.createElement(n.Fragment,null,dn,on,mt);return n.createElement(l.q3.Provider,{value:rn},n.createElement(je.Z,Object.assign({},zt,{className:qt}),sn))},We=e(60698),re={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:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"},se=re,J=e(17202),de=function(Mt,jt){return n.createElement(J.Z,(0,We.Z)({},Mt,{ref:jt,icon:se}))},xe=n.forwardRef(de),ce=e(80076),Ne=e(29487),Oe=e(74820),we=function(Ee,Mt){var jt={};for(var He in Ee)Object.prototype.hasOwnProperty.call(Ee,He)&&Mt.indexOf(He)<0&&(jt[He]=Ee[He]);if(Ee!=null&&typeof Object.getOwnPropertySymbols=="function")for(var et=0,He=Object.getOwnPropertySymbols(Ee);et{let{prefixCls:Mt,label:jt,htmlFor:He,labelCol:et,labelAlign:Zt,colon:Ut,required:Jt,requiredMark:ln,tooltip:Mn}=Ee;var gn;const[Yn]=(0,Ne.Z)("Form"),{vertical:Gn,labelAlign:ar,labelCol:gr,labelWrap:zt,colon:qt}=n.useContext(l.q3);if(!jt)return null;const rn=et||gr||{},dn=Zt||ar,Cn=`${Mt}-item-label`,on=o()(Cn,dn==="left"&&`${Cn}-left`,rn.className,{[`${Cn}-wrap`]:!!zt});let pt=jt;const mt=Ut===!0||qt!==!1&&Ut!==!1;mt&&!Gn&&typeof jt=="string"&&jt.trim()!==""&&(pt=jt.replace(/[:|:]\s*$/,""));const Kt=Re(Mn);if(Kt){const{icon:mn=n.createElement(xe,null)}=Kt,fn=we(Kt,["icon"]),kn=n.createElement(Oe.Z,Object.assign({},fn),n.cloneElement(mn,{className:`${Mt}-item-tooltip`,title:""}));pt=n.createElement(n.Fragment,null,pt,kn)}ln==="optional"&&!Jt&&(pt=n.createElement(n.Fragment,null,pt,n.createElement("span",{className:`${Mt}-item-optional`,title:""},(Yn==null?void 0:Yn.optional)||((gn=ce.Z.Form)===null||gn===void 0?void 0:gn.optional))));const tn=o()({[`${Mt}-item-required`]:Jt,[`${Mt}-item-required-mark-optional`]:ln==="optional",[`${Mt}-item-no-colon`]:!mt});return n.createElement(je.Z,Object.assign({},rn,{className:on}),n.createElement("label",{htmlFor:He,className:tn,title:typeof jt=="string"?jt:""},pt))},Ye=function(Ee,Mt){var jt={};for(var He in Ee)Object.prototype.hasOwnProperty.call(Ee,He)&&Mt.indexOf(He)<0&&(jt[He]=Ee[He]);if(Ee!=null&&typeof Object.getOwnPropertySymbols=="function")for(var et=0,He=Object.getOwnPropertySymbols(Ee);et{if(Kt&&on.current){const Ct=getComputedStyle(on.current);fn(parseInt(Ct.marginBottom,10))}},[Kt,tn]);const kn=Ct=>{Ct||fn(null)},ct=function(){let Ct=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,kt="";const un=Ct?pt:Mn.errors,nn=Ct?mt:Mn.warnings;return ln!==void 0?kt=ln:Mn.validating?kt="validating":un.length?kt="error":nn.length?kt="warning":(Mn.touched||gn&&Mn.validated)&&(kt="success"),kt}(),dt=n.useMemo(()=>{let Ct;if(gn){const kt=ct&&ke[ct];Ct=kt?n.createElement("span",{className:o()(`${dn}-feedback-icon`,`${dn}-feedback-icon-${ct}`)},n.createElement(kt,null)):null}return{status:ct,errors:Ut,warnings:Jt,hasFeedback:gn,feedbackIcon:Ct,isFormItemInput:!0}},[ct,gn]),It=o()(dn,jt,He,{[`${dn}-with-help`]:sn||pt.length||mt.length,[`${dn}-has-feedback`]:ct&&gn,[`${dn}-has-success`]:ct==="success",[`${dn}-has-warning`]:ct==="warning",[`${dn}-has-error`]:ct==="error",[`${dn}-is-validating`]:ct==="validating",[`${dn}-hidden`]:Yn});return n.createElement("div",{className:It,style:et,ref:on},n.createElement(me.Z,Object.assign({className:`${dn}-row`},(0,ie.Z)(rn,["_internalItemRender","colon","dependencies","extra","fieldKey","getValueFromEvent","getValueProps","htmlFor","id","initialValue","isListField","label","labelAlign","labelCol","labelWrap","messageVariables","name","normalize","noStyle","preserve","requiredMark","rules","shouldUpdate","trigger","tooltip","validateFirst","validateTrigger","valuePropName","wrapperCol"])),n.createElement(tt,Object.assign({htmlFor:ar},Ee,{requiredMark:Cn,required:gr!=null?gr:zt,prefixCls:Mt})),n.createElement(Se,Object.assign({},Ee,Mn,{errors:pt,warnings:mt,prefixCls:Mt,status:ct,help:Zt,marginBottom:mn,onErrorVisibleChanged:kn}),n.createElement(l.qI.Provider,{value:qt},n.createElement(l.aM.Provider,{value:dt},Gn)))),!!mn&&n.createElement("div",{className:`${dn}-margin-offset`,style:{marginBottom:-mn}}))}var it=e(42156);function Ve(Ee){if(typeof Ee=="function")return Ee;const Mt=(0,it.Z)(Ee);return Mt.length<=1?Mt[0]:Mt}const xt="__SPLIT__",_t=null,Ot=n.memo(Ee=>{let{children:Mt}=Ee;return Mt},(Ee,Mt)=>Ee.value===Mt.value&&Ee.update===Mt.update&&Ee.childProps.length===Mt.childProps.length&&Ee.childProps.every((jt,He)=>jt===Mt.childProps[He]));function wt(Ee){return Ee!=null}function Yt(){return{errors:[],warnings:[],touched:!1,validating:!1,name:[],validated:!1}}function bt(Ee){const{name:Mt,noStyle:jt,className:He,dependencies:et,prefixCls:Zt,shouldUpdate:Ut,rules:Jt,children:ln,required:Mn,label:gn,messageVariables:Yn,trigger:Gn="onChange",validateTrigger:ar,hidden:gr,help:zt}=Ee,{getPrefixCls:qt}=n.useContext(W.E_),{name:rn}=n.useContext(l.q3),dn=Ve(ln),Cn=typeof dn=="function",on=n.useContext(l.qI),{validateTrigger:pt}=n.useContext(X.zb),mt=ar!==void 0?ar:pt,sn=wt(Mt),Kt=qt("form",Zt),[tn,mn]=k(Kt),fn=n.useContext(X.ZM),kn=n.useRef(),[qn,ct]=Ke({}),[dt,It]=(0,Et.Z)(()=>Yt()),Ct=er=>{const zn=fn==null?void 0:fn.getKey(er.name);if(It(er.destroy?Yt():er,!0),jt&&zt!==!1&&on){let Ur=er.name;if(er.destroy)Ur=kn.current||Ur;else if(zn!==void 0){const[pr,sa]=zn;Ur=[pr].concat((0,a.Z)(sa)),kn.current=Ur}on(er,Ur)}},kt=(er,zn)=>{ct(Ur=>{const pr=Object.assign({},Ur),Nr=[].concat((0,a.Z)(er.name.slice(0,-1)),(0,a.Z)(zn)).join(xt);return er.destroy?delete pr[Nr]:pr[Nr]=er,pr})},[un,nn]=n.useMemo(()=>{const er=(0,a.Z)(dt.errors),zn=(0,a.Z)(dt.warnings);return Object.values(qn).forEach(Ur=>{er.push.apply(er,(0,a.Z)(Ur.errors||[])),zn.push.apply(zn,(0,a.Z)(Ur.warnings||[]))}),[er,zn]},[qn,dt.errors,dt.warnings]),xn=ye();function Rn(er,zn,Ur){return jt&&!gr?er:n.createElement(Be,Object.assign({key:"row"},Ee,{className:o()(He,mn),prefixCls:Kt,fieldId:zn,isRequired:Ur,errors:un,warnings:nn,meta:dt,onSubItemMetaChange:kt}),er)}if(!sn&&!Cn&&!et)return tn(Rn(dn));let Mr={};return typeof gn=="string"?Mr.label=gn:Mt&&(Mr.label=String(Mt)),Yn&&(Mr=Object.assign(Object.assign({},Mr),Yn)),tn(n.createElement(X.gN,Object.assign({},Ee,{messageVariables:Mr,trigger:Gn,validateTrigger:mt,onMetaChange:Ct}),(er,zn,Ur)=>{const pr=fe(Mt).length&&zn?zn.name:[],sa=pe(pr,rn),Nr=Mn!==void 0?Mn:!!(Jt&&Jt.some(Pn=>{if(Pn&&typeof Pn=="object"&&Pn.required&&!Pn.warningOnly)return!0;if(typeof Pn=="function"){const rr=Pn(Ur);return rr&&rr.required&&!rr.warningOnly}return!1})),Zn=Object.assign({},er);let In=null;if(Array.isArray(dn)&&sn)In=dn;else if(!(Cn&&(!(Ut||et)||sn))){if(!(et&&!Cn&&!sn))if((0,Ht.l$)(dn)){const Pn=Object.assign(Object.assign({},dn.props),Zn);if(Pn.id||(Pn.id=sa),zt||un.length>0||nn.length>0||Ee.extra){const Gr=[];(zt||un.length>0)&&Gr.push(`${sa}_help`),Ee.extra&&Gr.push(`${sa}_extra`),Pn["aria-describedby"]=Gr.join(" ")}un.length>0&&(Pn["aria-invalid"]="true"),Nr&&(Pn["aria-required"]="true"),(0,gt.Yr)(dn)&&(Pn.ref=xn(pr,dn)),new Set([].concat((0,a.Z)(fe(Gn)),(0,a.Z)(fe(mt)))).forEach(Gr=>{Pn[Gr]=function(){for(var na,pa,cr,Zr,Ea,ha=arguments.length,Wn=new Array(ha),Fn=0;Fn{var{prefixCls:Mt,children:jt}=Ee,He=St(Ee,["prefixCls","children"]);const{getPrefixCls:et}=n.useContext(W.E_),Zt=et("form",Mt),Ut=n.useMemo(()=>({prefixCls:Zt,status:"error"}),[Zt]);return n.createElement(X.aV,Object.assign({},He),(Jt,ln,Mn)=>n.createElement(l.Rk.Provider,{value:Ut},jt(Jt.map(gn=>Object.assign(Object.assign({},gn),{fieldKey:gn.key})),ln,{errors:Mn.errors,warnings:Mn.warnings})))};function Nt(){const{form:Ee}=(0,n.useContext)(l.q3);return Ee}const At=ht;At.Item=nt,At.List=Vt,At.ErrorList=le,At.useForm=be,At.useFormInstance=Nt,At.useWatch=X.qo,At.Provider=l.RV,At.create=()=>{};var Ie=At},48736:function(b,y,e){"use strict";var a=e(58757);y.Z=(0,a.createContext)(void 0)},35429:function(b,y,e){"use strict";var a=e(58757);const t=(0,a.createContext)({});y.Z=t},91334:function(b,y,e){"use strict";var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(35429),d=e(58378),l=function(M,h){var S={};for(var w in M)Object.prototype.hasOwnProperty.call(M,w)&&h.indexOf(w)<0&&(S[w]=M[w]);if(M!=null&&typeof Object.getOwnPropertySymbols=="function")for(var C=0,w=Object.getOwnPropertySymbols(M);C{const{getPrefixCls:S,direction:w}=o.useContext(s.E_),{gutter:C,wrap:z,supportFlexGap:Z}=o.useContext(n.Z),{prefixCls:N,span:L,order:$,offset:D,push:T,pull:j,className:G,children:k,flex:te,style:Y}=M,q=l(M,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),le=S("col",N),[X,W]=(0,d.c)(le);let x={};m.forEach(U=>{let A={};const V=M[U];typeof V=="number"?A.span=V:typeof V=="object"&&(A=V||{}),delete q[U],x=Object.assign(Object.assign({},x),{[`${le}-${U}-${A.span}`]:A.span!==void 0,[`${le}-${U}-order-${A.order}`]:A.order||A.order===0,[`${le}-${U}-offset-${A.offset}`]:A.offset||A.offset===0,[`${le}-${U}-push-${A.push}`]:A.push||A.push===0,[`${le}-${U}-pull-${A.pull}`]:A.pull||A.pull===0,[`${le}-${U}-flex-${A.flex}`]:A.flex||A.flex==="auto",[`${le}-rtl`]:w==="rtl"})});const O=t()(le,{[`${le}-${L}`]:L!==void 0,[`${le}-order-${$}`]:$,[`${le}-offset-${D}`]:D,[`${le}-push-${T}`]:T,[`${le}-pull-${j}`]:j},G,x,W),_={};if(C&&C[0]>0){const U=C[0]/2;_.paddingLeft=U,_.paddingRight=U}if(C&&C[1]>0&&!Z){const U=C[1]/2;_.paddingTop=U,_.paddingBottom=U}return te&&(_.flex=c(te),z===!1&&!_.minWidth&&(_.minWidth=0)),X(o.createElement("div",Object.assign({},q,{style:Object.assign(Object.assign({},_),Y),className:O,ref:h}),k))});y.Z=g},60059:function(b,y,e){"use strict";var a=e(58757),t=e(81334),o=e(4459),s=e(87078);function n(){let d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;const l=(0,a.useRef)({}),c=(0,o.Z)(),m=(0,s.Z)();return(0,t.Z)(()=>{const g=m.subscribe(M=>{l.current=M,d&&c()});return()=>m.unsubscribe(g)},[]),l.current}y.Z=n},67665:function(b,y,e){"use strict";var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(69387),d=e(87078),l=e(35429),c=e(58378),m=function(w,C){var z={};for(var Z in w)Object.prototype.hasOwnProperty.call(w,Z)&&C.indexOf(Z)<0&&(z[Z]=w[Z]);if(w!=null&&typeof Object.getOwnPropertySymbols=="function")for(var N=0,Z=Object.getOwnPropertySymbols(w);N{if(typeof w=="string"&&Z(w),typeof w=="object")for(let L=0;L{N()},[JSON.stringify(w),C]),z}const S=o.forwardRef((w,C)=>{const{prefixCls:z,justify:Z,align:N,className:L,style:$,children:D,gutter:T=0,wrap:j}=w,G=m(w,["prefixCls","justify","align","className","style","children","gutter","wrap"]),{getPrefixCls:k,direction:te}=o.useContext(s.E_),[Y,q]=o.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),[le,X]=o.useState({xs:!1,sm:!1,md:!1,lg:!1,xl:!1,xxl:!1}),W=h(N,le),x=h(Z,le),O=(0,n.Z)(),_=o.useRef(T),U=(0,d.Z)();o.useEffect(()=>{const gt=U.subscribe(Ht=>{X(Ht);const $e=_.current||0;(!Array.isArray($e)&&typeof $e=="object"||Array.isArray($e)&&(typeof $e[0]=="object"||typeof $e[1]=="object"))&&q(Ht)});return()=>U.unsubscribe(gt)},[]);const A=()=>{const gt=[void 0,void 0];return(Array.isArray(T)?T:[T,void 0]).forEach(($e,Xe)=>{if(typeof $e=="object")for(let rt=0;rt0?ge[0]/-2:void 0,qe=ge[1]!=null&&ge[1]>0?ge[1]/-2:void 0;Ge&&(Te.marginLeft=Ge,Te.marginRight=Ge),O?[,Te.rowGap]=ge:qe&&(Te.marginTop=qe,Te.marginBottom=qe);const[Qe,ht]=ge,Et=o.useMemo(()=>({gutter:[Qe,ht],wrap:j,supportFlexGap:O}),[Qe,ht,j,O]);return fe(o.createElement(l.Z.Provider,{value:Et},o.createElement("div",Object.assign({},G,{className:be,style:Object.assign(Object.assign({},Te),$),ref:C}),D)))});y.Z=S},58378:function(b,y,e){"use strict";e.d(y,{V:function(){return c},c:function(){return m}});var a=e(52628),t=e(22151);const o=g=>{const{componentCls:M}=g;return{[M]:{display:"flex",flexFlow:"row wrap",minWidth:0,"&::before, &::after":{display:"flex"},"&-no-wrap":{flexWrap:"nowrap"},"&-start":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-end":{justifyContent:"flex-end"},"&-space-between":{justifyContent:"space-between"},"&-space-around":{justifyContent:"space-around"},"&-space-evenly":{justifyContent:"space-evenly"},"&-top":{alignItems:"flex-start"},"&-middle":{alignItems:"center"},"&-bottom":{alignItems:"flex-end"}}}},s=g=>{const{componentCls:M}=g;return{[M]:{position:"relative",maxWidth:"100%",minHeight:1}}},n=(g,M)=>{const{componentCls:h,gridColumns:S}=g,w={};for(let C=S;C>=0;C--)C===0?(w[`${h}${M}-${C}`]={display:"none"},w[`${h}-push-${C}`]={insetInlineStart:"auto"},w[`${h}-pull-${C}`]={insetInlineEnd:"auto"},w[`${h}${M}-push-${C}`]={insetInlineStart:"auto"},w[`${h}${M}-pull-${C}`]={insetInlineEnd:"auto"},w[`${h}${M}-offset-${C}`]={marginInlineStart:0},w[`${h}${M}-order-${C}`]={order:0}):(w[`${h}${M}-${C}`]={display:"block",flex:`0 0 ${C/S*100}%`,maxWidth:`${C/S*100}%`},w[`${h}${M}-push-${C}`]={insetInlineStart:`${C/S*100}%`},w[`${h}${M}-pull-${C}`]={insetInlineEnd:`${C/S*100}%`},w[`${h}${M}-offset-${C}`]={marginInlineStart:`${C/S*100}%`},w[`${h}${M}-order-${C}`]={order:C});return w},d=(g,M)=>n(g,M),l=(g,M,h)=>({[`@media (min-width: ${M}px)`]:Object.assign({},d(g,h))}),c=(0,a.Z)("Grid",g=>[o(g)]),m=(0,a.Z)("Grid",g=>{const M=(0,t.TS)(g,{gridColumns:24}),h={"-sm":M.screenSMMin,"-md":M.screenMDMin,"-lg":M.screenLGMin,"-xl":M.screenXLMin,"-xxl":M.screenXXLMin};return[s(M),d(M,""),d(M,"-xs"),Object.keys(h).map(S=>l(M,h[S],S)).reduce((S,w)=>Object.assign(Object.assign({},S),w),{})]})},32423:function(b,y,e){"use strict";e.d(y,{Z:function(){return re}});var a=e(10130),t=e(23926),o=e(87608),s=e.n(o),n=e(60698),d=e(37734),l=e(38790),c=e(28314),m=e(47075),g=e(60412),M=e(14346);function h(){return typeof BigInt=="function"}function S(se){return!se&&se!==0&&!Number.isNaN(se)||!String(se).trim()}function w(se){var J=se.trim(),de=J.startsWith("-");de&&(J=J.slice(1)),J=J.replace(/(\.\d*[^0])0*$/,"$1").replace(/\.0*$/,"").replace(/^0+/,""),J.startsWith(".")&&(J="0".concat(J));var xe=J||"0",ce=xe.split("."),Ne=ce[0]||"0",Oe=ce[1]||"0";Ne==="0"&&Oe==="0"&&(de=!1);var we=de?"-":"";return{negative:de,negativeStr:we,trimStr:xe,integerStr:Ne,decimalStr:Oe,fullStr:"".concat(we).concat(xe)}}function C(se){var J=String(se);return!Number.isNaN(Number(J))&&J.includes("e")}function z(se){var J=String(se);if(C(se)){var de=Number(J.slice(J.indexOf("e-")+2)),xe=J.match(/\.(\d+)/);return xe!=null&&xe[1]&&(de+=xe[1].length),de}return J.includes(".")&&N(J)?J.length-J.indexOf(".")-1:0}function Z(se){var J=String(se);if(C(se)){if(se>Number.MAX_SAFE_INTEGER)return String(h()?BigInt(se).toString():Number.MAX_SAFE_INTEGER);if(se0&&arguments[0]!==void 0?arguments[0]:!0;return de?this.isInvalidate()?"":w("".concat(this.getMark()).concat(this.getIntegerStr(),".").concat(this.getDecimalStr())).fullStr:this.origin}}]),se}(),$=function(){function se(J){if((0,g.Z)(this,se),(0,d.Z)(this,"origin",""),(0,d.Z)(this,"number",void 0),(0,d.Z)(this,"empty",void 0),S(J)){this.empty=!0;return}this.origin=String(J),this.number=Number(J)}return(0,M.Z)(se,[{key:"negate",value:function(){return new se(-this.toNumber())}},{key:"add",value:function(de){if(this.isInvalidate())return new se(de);var xe=Number(de);if(Number.isNaN(xe))return this;var ce=this.number+xe;if(ce>Number.MAX_SAFE_INTEGER)return new se(Number.MAX_SAFE_INTEGER);if(ceNumber.MAX_SAFE_INTEGER)return new se(Number.MAX_SAFE_INTEGER);if(ce0&&arguments[0]!==void 0?arguments[0]:!0;return de?this.isInvalidate()?"":Z(this.number):this.origin}}]),se}();function D(se){return h()?new L(se):new $(se)}function T(se,J,de){var xe=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(se==="")return"";var ce=w(se),Ne=ce.negativeStr,Oe=ce.integerStr,we=ce.decimalStr,Re="".concat(J).concat(we),st="".concat(Ne).concat(Oe);if(de>=0){var tt=Number(we[de]);if(tt>=5&&!xe){var Ye=D(se).add("".concat(Ne,"0.").concat("0".repeat(de)).concat(10-tt));return T(Ye.toString(),J,de,xe)}return de===0?st:"".concat(st).concat(J).concat(we.padEnd(de,"0").slice(0,de))}return Re===".0"?st:"".concat(st).concat(Re)}var j=D,G=e(19570),k=e(81334),te=e(21319),Y=e(58757),q=e(75556);function le(se,J){var de=(0,Y.useRef)(null);function xe(){try{var Ne=se.selectionStart,Oe=se.selectionEnd,we=se.value,Re=we.substring(0,Ne),st=we.substring(Oe);de.current={start:Ne,end:Oe,value:we,beforeTxt:Re,afterTxt:st}}catch(tt){}}function ce(){if(se&&de.current&&J)try{var Ne=se.value,Oe=de.current,we=Oe.beforeTxt,Re=Oe.afterTxt,st=Oe.start,tt=Ne.length;if(Ne.endsWith(Re))tt=Ne.length-de.current.afterTxt.length;else if(Ne.startsWith(we))tt=we.length;else{var Ye=we[st-1],ke=Ne.indexOf(Ye,st-1);ke!==-1&&(tt=ke+1)}se.setSelectionRange(tt,tt)}catch(Be){(0,q.ZP)(!1,"Something warning of cursor restore. Please fire issue about this: ".concat(Be.message))}}return[xe,ce]}var X=e(21618),W=function(){var J=(0,Y.useState)(!1),de=(0,c.Z)(J,2),xe=de[0],ce=de[1];return(0,k.Z)(function(){ce((0,X.Z)())},[]),xe},x=W,O=e(61834),_=200,U=600;function A(se){var J=se.prefixCls,de=se.upNode,xe=se.downNode,ce=se.upDisabled,Ne=se.downDisabled,Oe=se.onStep,we=Y.useRef(),Re=Y.useRef([]),st=Y.useRef();st.current=Oe;var tt=function(){clearTimeout(we.current)},Ye=function(wt,Yt){wt.preventDefault(),tt(),st.current(Yt);function bt(){st.current(Yt),we.current=setTimeout(bt,_)}we.current=setTimeout(bt,U)};Y.useEffect(function(){return function(){tt(),Re.current.forEach(function(Ot){return O.Z.cancel(Ot)})}},[]);var ke=x();if(ke)return null;var Be="".concat(J,"-handler"),it=s()(Be,"".concat(Be,"-up"),(0,d.Z)({},"".concat(Be,"-up-disabled"),ce)),Ve=s()(Be,"".concat(Be,"-down"),(0,d.Z)({},"".concat(Be,"-down-disabled"),Ne)),xt=function(){return Re.current.push((0,O.Z)(tt))},_t={unselectable:"on",role:"button",onMouseUp:xt,onMouseLeave:xt};return Y.createElement("div",{className:"".concat(Be,"-wrap")},Y.createElement("span",(0,n.Z)({},_t,{onMouseDown:function(wt){Ye(wt,!0)},"aria-label":"Increase Value","aria-disabled":ce,className:it}),de||Y.createElement("span",{unselectable:"on",className:"".concat(J,"-handler-up-inner")})),Y.createElement("span",(0,n.Z)({},_t,{onMouseDown:function(wt){Ye(wt,!1)},"aria-label":"Decrease Value","aria-disabled":Ne,className:Ve}),xe||Y.createElement("span",{unselectable:"on",className:"".concat(J,"-handler-down-inner")})))}function V(se){var J=typeof se=="number"?Z(se):w(se).fullStr,de=J.includes(".");return de?w(J.replace(/(\d)\.(\d)/g,"$1$2.")).fullStr:se+"0"}var fe=e(33615),pe=function(){var se=(0,Y.useRef)(0),J=function(){O.Z.cancel(se.current)};return(0,Y.useEffect)(function(){return J},[]),function(de){J(),se.current=(0,O.Z)(function(){de()})}},ge=["prefixCls","className","style","min","max","step","defaultValue","value","disabled","readOnly","upHandler","downHandler","keyboard","controls","classNames","stringMode","parser","formatter","precision","decimalSeparator","onChange","onInput","onPressEnter","onStep"],be=["disabled","style","prefixCls","value","prefix","suffix","addonBefore","addonAfter","classes","className","classNames"],Te=function(J,de){return J||de.isEmpty()?de.toString():de.toNumber()},Ge=function(J){var de=j(J);return de.isInvalidate()?null:de},qe=Y.forwardRef(function(se,J){var de,xe=se.prefixCls,ce=xe===void 0?"rc-input-number":xe,Ne=se.className,Oe=se.style,we=se.min,Re=se.max,st=se.step,tt=st===void 0?1:st,Ye=se.defaultValue,ke=se.value,Be=se.disabled,it=se.readOnly,Ve=se.upHandler,xt=se.downHandler,_t=se.keyboard,Ot=se.controls,wt=Ot===void 0?!0:Ot,Yt=se.classNames,bt=se.stringMode,ze=se.parser,nt=se.formatter,St=se.precision,ut=se.decimalSeparator,Vt=se.onChange,Nt=se.onInput,At=se.onPressEnter,Ie=se.onStep,Ee=(0,m.Z)(se,ge),Mt="".concat(ce,"-input"),jt=Y.useRef(null),He=Y.useState(!1),et=(0,c.Z)(He,2),Zt=et[0],Ut=et[1],Jt=Y.useRef(!1),ln=Y.useRef(!1),Mn=Y.useRef(!1),gn=Y.useState(function(){return j(ke!=null?ke:Ye)}),Yn=(0,c.Z)(gn,2),Gn=Yn[0],ar=Yn[1];function gr(Zn){ke===void 0&&ar(Zn)}var zt=Y.useCallback(function(Zn,In){if(!In)return St>=0?St:Math.max(z(Zn),z(tt))},[St,tt]),qt=Y.useCallback(function(Zn){var In=String(Zn);if(ze)return ze(In);var Pn=In;return ut&&(Pn=Pn.replace(ut,".")),Pn.replace(/[^\w.-]+/g,"")},[ze,ut]),rn=Y.useRef(""),dn=Y.useCallback(function(Zn,In){if(nt)return nt(Zn,{userTyping:In,input:String(rn.current)});var Pn=typeof Zn=="number"?Z(Zn):Zn;if(!In){var rr=zt(Pn,In);if(N(Pn)&&(ut||rr>=0)){var br=ut||".";Pn=T(Pn,br,rr)}}return Pn},[nt,zt,ut]),Cn=Y.useState(function(){var Zn=Ye!=null?Ye:ke;return Gn.isInvalidate()&&["string","number"].includes((0,l.Z)(Zn))?Number.isNaN(Zn)?"":Zn:dn(Gn.toString(),!1)}),on=(0,c.Z)(Cn,2),pt=on[0],mt=on[1];rn.current=pt;function sn(Zn,In){mt(dn(Zn.isInvalidate()?Zn.toString(!1):Zn.toString(!In),In))}var Kt=Y.useMemo(function(){return Ge(Re)},[Re,St]),tn=Y.useMemo(function(){return Ge(we)},[we,St]),mn=Y.useMemo(function(){return!Kt||!Gn||Gn.isInvalidate()?!1:Kt.lessEquals(Gn)},[Kt,Gn]),fn=Y.useMemo(function(){return!tn||!Gn||Gn.isInvalidate()?!1:Gn.lessEquals(tn)},[tn,Gn]),kn=le(jt.current,Zt),qn=(0,c.Z)(kn,2),ct=qn[0],dt=qn[1],It=function(In){return Kt&&!In.lessEquals(Kt)?Kt:tn&&!tn.lessEquals(In)?tn:null},Ct=function(In){return!It(In)},kt=function(In,Pn){var rr=In,br=Ct(rr)||rr.isEmpty();if(!rr.isEmpty()&&!Pn&&(rr=It(rr)||rr,br=!0),!it&&!Be&&br){var Gr=rr.toString(),na=zt(Gr,Pn);return na>=0&&(rr=j(T(Gr,".",na)),Ct(rr)||(rr=j(T(Gr,".",na,!0)))),rr.equals(Gn)||(gr(rr),Vt==null||Vt(rr.isEmpty()?null:Te(bt,rr)),ke===void 0&&sn(rr,Pn)),rr}return Gn},un=pe(),nn=function Zn(In){if(ct(),rn.current=In,mt(In),!ln.current){var Pn=qt(In),rr=j(Pn);rr.isNaN()||kt(rr,!0)}Nt==null||Nt(In),un(function(){var br=In;ze||(br=In.replace(/。/g,".")),br!==In&&Zn(br)})},xn=function(){ln.current=!0},Rn=function(){ln.current=!1,nn(jt.current.value)},Mr=function(In){nn(In.target.value)},er=function(In){var Pn;if(!(In&&mn||!In&&fn)){Jt.current=!1;var rr=j(Mn.current?V(tt):tt);In||(rr=rr.negate());var br=(Gn||j(0)).add(rr.toString()),Gr=kt(br,!1);Ie==null||Ie(Te(bt,Gr),{offset:Mn.current?V(tt):tt,type:In?"up":"down"}),(Pn=jt.current)===null||Pn===void 0||Pn.focus()}},zn=function(In){var Pn=j(qt(pt)),rr=Pn;Pn.isNaN()?rr=kt(Gn,In):rr=kt(Pn,In),ke!==void 0?sn(Gn,!1):rr.isNaN()||sn(rr,!1)},Ur=function(){Jt.current=!0},pr=function(In){var Pn=In.key,rr=In.shiftKey;Jt.current=!0,Mn.current=rr,Pn==="Enter"&&(ln.current||(Jt.current=!1),zn(!1),At==null||At(In)),_t!==!1&&!ln.current&&["Up","ArrowUp","Down","ArrowDown"].includes(Pn)&&(er(Pn==="Up"||Pn==="ArrowUp"),In.preventDefault())},sa=function(){Jt.current=!1,Mn.current=!1},Nr=function(){zn(!1),Ut(!1),Jt.current=!1};return(0,k.o)(function(){Gn.isInvalidate()||sn(Gn,!1)},[St]),(0,k.o)(function(){var Zn=j(ke);ar(Zn);var In=j(qt(pt));(!Zn.equals(In)||!Jt.current||nt)&&sn(Zn,Jt.current)},[ke]),(0,k.o)(function(){nt&&dt()},[pt]),Y.createElement("div",{className:s()(ce,Yt==null?void 0:Yt.input,Ne,(de={},(0,d.Z)(de,"".concat(ce,"-focused"),Zt),(0,d.Z)(de,"".concat(ce,"-disabled"),Be),(0,d.Z)(de,"".concat(ce,"-readonly"),it),(0,d.Z)(de,"".concat(ce,"-not-a-number"),Gn.isNaN()),(0,d.Z)(de,"".concat(ce,"-out-of-range"),!Gn.isInvalidate()&&!Ct(Gn)),de)),style:Oe,onFocus:function(){Ut(!0)},onBlur:Nr,onKeyDown:pr,onKeyUp:sa,onCompositionStart:xn,onCompositionEnd:Rn,onBeforeInput:Ur},wt&&Y.createElement(A,{prefixCls:ce,upNode:Ve,downNode:xt,upDisabled:mn,downDisabled:fn,onStep:er}),Y.createElement("div",{className:"".concat(Mt,"-wrap")},Y.createElement("input",(0,n.Z)({autoComplete:"off",role:"spinbutton","aria-valuemin":we,"aria-valuemax":Re,"aria-valuenow":Gn.isInvalidate()?null:Gn.toString(),step:tt},Ee,{ref:(0,te.sQ)(jt,J),className:Mt,value:pt,onChange:Mr,disabled:Be,readOnly:it}))))}),Qe=Y.forwardRef(function(se,J){var de=se.disabled,xe=se.style,ce=se.prefixCls,Ne=se.value,Oe=se.prefix,we=se.suffix,Re=se.addonBefore,st=se.addonAfter,tt=se.classes,Ye=se.className,ke=se.classNames,Be=(0,m.Z)(se,be),it=Y.useRef(null),Ve=function(_t){it.current&&(0,fe.nH)(it.current,_t)};return Y.createElement(G.Q,{inputElement:Y.createElement(qe,(0,n.Z)({prefixCls:ce,disabled:de,classNames:ke,ref:(0,te.sQ)(it,J)},Be)),className:Ye,triggerFocus:Ve,prefixCls:ce,value:Ne,disabled:de,style:xe,prefix:Oe,suffix:we,addonAfter:st,addonBefore:Re,classes:tt,classNames:ke,components:{affixWrapper:"div",groupWrapper:"div",wrapper:"div",groupAddon:"div"}})});Qe.displayName="InputNumber";var ht=Qe,Et=ht,gt=e(41496),Ht=e(61836),$e=e(42505),Xe=e(92428),rt=e(58785),Ke=e(81496),ye=e(43528),ne=e(46902),H=e(78330),R=e(64493),P=e(52628);const ae=(se,J)=>{let{componentCls:de,borderRadiusSM:xe,borderRadiusLG:ce}=se;const Ne=J==="lg"?ce:xe;return{[`&-${J}`]:{[`${de}-handler-wrap`]:{borderStartEndRadius:Ne,borderEndEndRadius:Ne},[`${de}-handler-up`]:{borderStartEndRadius:Ne},[`${de}-handler-down`]:{borderEndEndRadius:Ne}}}},Q=se=>{const{componentCls:J,lineWidth:de,lineType:xe,colorBorder:ce,borderRadius:Ne,fontSizeLG:Oe,controlHeightLG:we,controlHeightSM:Re,colorError:st,inputPaddingHorizontalSM:tt,colorTextDescription:Ye,motionDurationMid:ke,colorPrimary:Be,inputPaddingHorizontal:it,inputPaddingVertical:Ve,colorBgContainer:xt,colorTextDisabled:_t,borderRadiusSM:Ot,borderRadiusLG:wt,controlWidth:Yt,handleVisible:bt}=se;return[{[J]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,H.Wf)(se)),(0,ne.ik)(se)),(0,ne.bi)(se,J)),{display:"inline-block",width:Yt,margin:0,padding:0,border:`${de}px ${xe} ${ce}`,borderRadius:Ne,"&-rtl":{direction:"rtl",[`${J}-input`]:{direction:"rtl"}},"&-lg":{padding:0,fontSize:Oe,borderRadius:wt,[`input${J}-input`]:{height:we-2*de}},"&-sm":{padding:0,borderRadius:Ot,[`input${J}-input`]:{height:Re-2*de,padding:`0 ${tt}px`}},"&:hover":Object.assign({},(0,ne.pU)(se)),"&-focused":Object.assign({},(0,ne.M1)(se)),"&-out-of-range":{[`${J}-input-wrap`]:{input:{color:st}}},"&-group":Object.assign(Object.assign(Object.assign({},(0,H.Wf)(se)),(0,ne.s7)(se)),{"&-wrapper":{display:"inline-block",textAlign:"start",verticalAlign:"top",[`${J}-affix-wrapper`]:{width:"100%"},"&-lg":{[`${J}-group-addon`]:{borderRadius:wt,fontSize:se.fontSizeLG}},"&-sm":{[`${J}-group-addon`]:{borderRadius:Ot}},[`${J}-wrapper-disabled > ${J}-group-addon`]:Object.assign({},(0,ne.Xy)(se))}}),[`&-disabled ${J}-input`]:{cursor:"not-allowed"},[J]:{"&-input":Object.assign(Object.assign(Object.assign(Object.assign({},(0,H.Wf)(se)),{width:"100%",padding:`${Ve}px ${it}px`,textAlign:"start",backgroundColor:"transparent",border:0,borderRadius:Ne,outline:0,transition:`all ${ke} linear`,appearance:"textfield",fontSize:"inherit"}),(0,ne.nz)(se.colorTextPlaceholder)),{'&[type="number"]::-webkit-inner-spin-button, &[type="number"]::-webkit-outer-spin-button':{margin:0,webkitAppearance:"none",appearance:"none"}})}})},{[J]:Object.assign(Object.assign(Object.assign({[`&:hover ${J}-handler-wrap, &-focused ${J}-handler-wrap`]:{opacity:1},[`${J}-handler-wrap`]:{position:"absolute",insetBlockStart:0,insetInlineEnd:0,width:se.handleWidth,height:"100%",background:xt,borderStartStartRadius:0,borderStartEndRadius:Ne,borderEndEndRadius:Ne,borderEndStartRadius:0,opacity:bt===!0?1:0,display:"flex",flexDirection:"column",alignItems:"stretch",transition:`opacity ${ke} linear ${ke}`,[`${J}-handler`]:{display:"flex",alignItems:"center",justifyContent:"center",flex:"auto",height:"40%",[` + ${J}-handler-up-inner, + ${J}-handler-down-inner + `]:{marginInlineEnd:0,fontSize:se.handleFontSize}}},[`${J}-handler`]:{height:"50%",overflow:"hidden",color:Ye,fontWeight:"bold",lineHeight:0,textAlign:"center",cursor:"pointer",borderInlineStart:`${de}px ${xe} ${ce}`,transition:`all ${ke} linear`,"&:active":{background:se.colorFillAlter},"&:hover":{height:"60%",[` + ${J}-handler-up-inner, + ${J}-handler-down-inner + `]:{color:Be}},"&-up-inner, &-down-inner":Object.assign(Object.assign({},(0,H.Ro)()),{color:Ye,transition:`all ${ke} linear`,userSelect:"none"})},[`${J}-handler-up`]:{borderStartEndRadius:Ne},[`${J}-handler-down`]:{borderBlockStart:`${de}px ${xe} ${ce}`,borderEndEndRadius:Ne}},ae(se,"lg")),ae(se,"sm")),{"&-disabled, &-readonly":{[`${J}-handler-wrap`]:{display:"none"},[`${J}-input`]:{color:"inherit"}},[` + ${J}-handler-up-disabled, + ${J}-handler-down-disabled + `]:{cursor:"not-allowed"},[` + ${J}-handler-up-disabled:hover &-handler-up-inner, + ${J}-handler-down-disabled:hover &-handler-down-inner + `]:{color:_t}})},{[`${J}-borderless`]:{borderColor:"transparent",boxShadow:"none",[`${J}-handler-down`]:{borderBlockStartWidth:0}}}]},ie=se=>{const{componentCls:J,inputPaddingVertical:de,inputPaddingHorizontal:xe,inputAffixPadding:ce,controlWidth:Ne,borderRadiusLG:Oe,borderRadiusSM:we}=se;return{[`${J}-affix-wrapper`]:Object.assign(Object.assign(Object.assign({},(0,ne.ik)(se)),(0,ne.bi)(se,`${J}-affix-wrapper`)),{position:"relative",display:"inline-flex",width:Ne,padding:0,paddingInlineStart:xe,"&-lg":{borderRadius:Oe},"&-sm":{borderRadius:we},[`&:not(${J}-affix-wrapper-disabled):hover`]:Object.assign(Object.assign({},(0,ne.pU)(se)),{zIndex:1}),"&-focused, &:focus":{zIndex:1},[`&-disabled > ${J}-disabled`]:{background:"transparent"},[`> div${J}`]:{width:"100%",border:"none",outline:"none",[`&${J}-focused`]:{boxShadow:"none !important"}},[`input${J}-input`]:{padding:`${de}px 0`},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[`${J}-handler-wrap`]:{zIndex:2},[J]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center",pointerEvents:"none"},"&-prefix":{marginInlineEnd:ce},"&-suffix":{position:"absolute",insetBlockStart:0,insetInlineEnd:0,zIndex:1,height:"100%",marginInlineEnd:xe,marginInlineStart:ce}}})}};var me=(0,P.Z)("InputNumber",se=>{const J=(0,ne.e5)(se);return[Q(J),ie(J),(0,R.c)(J)]},se=>({controlWidth:90,handleWidth:se.controlHeightSM-se.lineWidth*2,handleFontSize:se.fontSize/2,handleVisible:"auto"})),je=function(se,J){var de={};for(var xe in se)Object.prototype.hasOwnProperty.call(se,xe)&&J.indexOf(xe)<0&&(de[xe]=se[xe]);if(se!=null&&typeof Object.getOwnPropertySymbols=="function")for(var ce=0,xe=Object.getOwnPropertySymbols(se);ce{const{getPrefixCls:de,direction:xe}=Y.useContext(Ht.E_),ce=Y.useRef(null);Y.useImperativeHandle(J,()=>ce.current);const{className:Ne,rootClassName:Oe,size:we,disabled:Re,prefixCls:st,addonBefore:tt,addonAfter:Ye,prefix:ke,bordered:Be=!0,readOnly:it,status:Ve,controls:xt}=se,_t=je(se,["className","rootClassName","size","disabled","prefixCls","addonBefore","addonAfter","prefix","bordered","readOnly","status","controls"]),Ot=de("input-number",st),[wt,Yt]=me(Ot),{compactSize:bt,compactItemClassnames:ze}=(0,ye.ri)(Ot,xe);let nt=Y.createElement(t.Z,{className:`${Ot}-handler-up-inner`}),St=Y.createElement(a.Z,{className:`${Ot}-handler-down-inner`});const ut=typeof xt=="boolean"?xt:void 0;typeof xt=="object"&&(nt=typeof xt.upIcon=="undefined"?nt:Y.createElement("span",{className:`${Ot}-handler-up-inner`},xt.upIcon),St=typeof xt.downIcon=="undefined"?St:Y.createElement("span",{className:`${Ot}-handler-down-inner`},xt.downIcon));const{hasFeedback:Vt,status:Nt,isFormItemInput:At,feedbackIcon:Ie}=Y.useContext(Ke.aM),Ee=(0,gt.F)(Nt,Ve),Mt=(0,rt.Z)(Jt=>{var ln;return(ln=we!=null?we:bt)!==null&&ln!==void 0?ln:Jt}),jt=Y.useContext(Xe.Z),He=Re!=null?Re:jt,et=s()({[`${Ot}-lg`]:Mt==="large",[`${Ot}-sm`]:Mt==="small",[`${Ot}-rtl`]:xe==="rtl",[`${Ot}-borderless`]:!Be,[`${Ot}-in-form-item`]:At},(0,gt.Z)(Ot,Ee),ze,Yt),Zt=`${Ot}-group`,Ut=Y.createElement(Et,Object.assign({ref:ce,disabled:He,className:s()(Ne,Oe),upHandler:nt,downHandler:St,prefixCls:Ot,readOnly:it,controls:ut,prefix:ke,suffix:Vt&&Ie,addonAfter:Ye&&Y.createElement(ye.BR,null,Y.createElement(Ke.Ux,{override:!0,status:!0},Ye)),addonBefore:tt&&Y.createElement(ye.BR,null,Y.createElement(Ke.Ux,{override:!0,status:!0},tt)),classNames:{input:et},classes:{affixWrapper:s()((0,gt.Z)(`${Ot}-affix-wrapper`,Ee,Vt),{[`${Ot}-affix-wrapper-sm`]:Mt==="small",[`${Ot}-affix-wrapper-lg`]:Mt==="large",[`${Ot}-affix-wrapper-rtl`]:xe==="rtl",[`${Ot}-affix-wrapper-borderless`]:!Be},Yt),wrapper:s()({[`${Zt}-rtl`]:xe==="rtl",[`${Ot}-wrapper-disabled`]:He},Yt),group:s()({[`${Ot}-group-wrapper-sm`]:Mt==="small",[`${Ot}-group-wrapper-lg`]:Mt==="large",[`${Ot}-group-wrapper-rtl`]:xe==="rtl"},(0,gt.Z)(`${Ot}-group-wrapper`,Ee,Vt),Yt)}},_t));return wt(Ut)}),Se=Ce,We=se=>Y.createElement($e.ZP,{theme:{components:{InputNumber:{handleVisible:!0}}}},Y.createElement(Ce,Object.assign({},se)));Se._InternalPanelDoNotUseOrYouWillBeFired=We;var re=Se},95670:function(b,y,e){"use strict";e.d(y,{Z:function(){return L},n:function(){return Z}});var a=e(79999),t=e(87608),o=e.n(t),s=e(19570),n=e(21319),d=e(58757),l=e(41496),c=e(61836),m=e(92428),g=e(58785),M=e(81496),h=e(43528),S=e(52191),w=e(46902);function C($){return!!($.prefix||$.suffix||$.allowClear)}var z=function($,D){var T={};for(var j in $)Object.prototype.hasOwnProperty.call($,j)&&D.indexOf(j)<0&&(T[j]=$[j]);if($!=null&&typeof Object.getOwnPropertySymbols=="function")for(var G=0,j=Object.getOwnPropertySymbols($);G{var T;const{prefixCls:j,bordered:G=!0,status:k,size:te,disabled:Y,onBlur:q,onFocus:le,suffix:X,allowClear:W,addonAfter:x,addonBefore:O,className:_,style:U,styles:A,rootClassName:V,onChange:fe,classNames:pe}=$,ge=z($,["prefixCls","bordered","status","size","disabled","onBlur","onFocus","suffix","allowClear","addonAfter","addonBefore","className","style","styles","rootClassName","onChange","classNames"]),{getPrefixCls:be,direction:Te,input:Ge}=d.useContext(c.E_),qe=be("input",j),Qe=(0,d.useRef)(null),[ht,Et]=(0,w.ZP)(qe),{compactSize:gt,compactItemClassnames:Ht}=(0,h.ri)(qe,Te),$e=(0,g.Z)(Se=>{var We;return(We=te!=null?te:gt)!==null&&We!==void 0?We:Se}),Xe=d.useContext(m.Z),rt=Y!=null?Y:Xe,{status:Ke,hasFeedback:ye,feedbackIcon:ne}=(0,d.useContext)(M.aM),H=(0,l.F)(Ke,k),R=C($)||!!ye,P=(0,d.useRef)(R);(0,d.useEffect)(()=>{var Se;R&&P.current,P.current=R},[R]);const ae=(0,S.Z)(Qe,!0),Q=Se=>{ae(),q==null||q(Se)},ie=Se=>{ae(),le==null||le(Se)},me=Se=>{ae(),fe==null||fe(Se)},je=(ye||X)&&d.createElement(d.Fragment,null,X,ye&&ne);let Ce;return typeof W=="object"&&(W!=null&&W.clearIcon)?Ce=W:W&&(Ce={clearIcon:d.createElement(a.Z,null)}),ht(d.createElement(s.Z,Object.assign({ref:(0,n.sQ)(D,Qe),prefixCls:qe,autoComplete:Ge==null?void 0:Ge.autoComplete},ge,{disabled:rt,onBlur:Q,onFocus:ie,style:Object.assign(Object.assign({},Ge==null?void 0:Ge.style),U),styles:Object.assign(Object.assign({},Ge==null?void 0:Ge.styles),A),suffix:je,allowClear:Ce,className:o()(_,V,Ht,Ge==null?void 0:Ge.className),onChange:me,addonAfter:x&&d.createElement(h.BR,null,d.createElement(M.Ux,{override:!0,status:!0},x)),addonBefore:O&&d.createElement(h.BR,null,d.createElement(M.Ux,{override:!0,status:!0},O)),classNames:Object.assign(Object.assign(Object.assign({},pe),Ge==null?void 0:Ge.classNames),{input:o()({[`${qe}-sm`]:$e==="small",[`${qe}-lg`]:$e==="large",[`${qe}-rtl`]:Te==="rtl",[`${qe}-borderless`]:!G},!R&&(0,l.Z)(qe,H),pe==null?void 0:pe.input,(T=Ge==null?void 0:Ge.classNames)===null||T===void 0?void 0:T.input,Et)}),classes:{affixWrapper:o()({[`${qe}-affix-wrapper-sm`]:$e==="small",[`${qe}-affix-wrapper-lg`]:$e==="large",[`${qe}-affix-wrapper-rtl`]:Te==="rtl",[`${qe}-affix-wrapper-borderless`]:!G},(0,l.Z)(`${qe}-affix-wrapper`,H,ye),Et),wrapper:o()({[`${qe}-group-rtl`]:Te==="rtl"},Et),group:o()({[`${qe}-group-wrapper-sm`]:$e==="small",[`${qe}-group-wrapper-lg`]:$e==="large",[`${qe}-group-wrapper-rtl`]:Te==="rtl",[`${qe}-group-wrapper-disabled`]:rt},(0,l.Z)(`${qe}-group-wrapper`,H,ye),Et)}})))})},79617:function(b,y,e){"use strict";var a=e(79999),t=e(87608),o=e.n(t),s=e(9457),n=e(58757),d=e(41496),l=e(61836),c=e(92428),m=e(58785),g=e(81496),M=e(95670),h=e(46902),S=function(C,z){var Z={};for(var N in C)Object.prototype.hasOwnProperty.call(C,N)&&z.indexOf(N)<0&&(Z[N]=C[N]);if(C!=null&&typeof Object.getOwnPropertySymbols=="function")for(var L=0,N=Object.getOwnPropertySymbols(C);L{const{prefixCls:Z,bordered:N=!0,size:L,disabled:$,status:D,allowClear:T,showCount:j,classNames:G}=C,k=S(C,["prefixCls","bordered","size","disabled","status","allowClear","showCount","classNames"]),{getPrefixCls:te,direction:Y}=n.useContext(l.E_),q=(0,m.Z)(L),le=n.useContext(c.Z),X=$!=null?$:le,{status:W,hasFeedback:x,feedbackIcon:O}=n.useContext(g.aM),_=(0,d.F)(W,D),U=n.useRef(null);n.useImperativeHandle(z,()=>{var ge;return{resizableTextArea:(ge=U.current)===null||ge===void 0?void 0:ge.resizableTextArea,focus:be=>{var Te,Ge;(0,M.n)((Ge=(Te=U.current)===null||Te===void 0?void 0:Te.resizableTextArea)===null||Ge===void 0?void 0:Ge.textArea,be)},blur:()=>{var be;return(be=U.current)===null||be===void 0?void 0:be.blur()}}});const A=te("input",Z);let V;typeof T=="object"&&(T!=null&&T.clearIcon)?V=T:T&&(V={clearIcon:n.createElement(a.Z,null)});const[fe,pe]=(0,h.ZP)(A);return fe(n.createElement(s.Z,Object.assign({},k,{disabled:X,allowClear:V,classes:{affixWrapper:o()(`${A}-textarea-affix-wrapper`,{[`${A}-affix-wrapper-rtl`]:Y==="rtl",[`${A}-affix-wrapper-borderless`]:!N,[`${A}-affix-wrapper-sm`]:q==="small",[`${A}-affix-wrapper-lg`]:q==="large",[`${A}-textarea-show-count`]:j},(0,d.Z)(`${A}-affix-wrapper`,_),pe)},classNames:Object.assign(Object.assign({},G),{textarea:o()({[`${A}-borderless`]:!N,[`${A}-sm`]:q==="small",[`${A}-lg`]:q==="large"},(0,d.Z)(A,_),pe,G==null?void 0:G.textarea)}),prefixCls:A,suffix:x&&n.createElement("span",{className:`${A}-textarea-suffix`},O),showCount:j,ref:U})))});y.Z=w},52191:function(b,y,e){"use strict";e.d(y,{Z:function(){return t}});var a=e(58757);function t(o,s){const n=(0,a.useRef)([]),d=()=>{n.current.push(setTimeout(()=>{var l,c,m,g;!((l=o.current)===null||l===void 0)&&l.input&&((c=o.current)===null||c===void 0?void 0:c.input.getAttribute("type"))==="password"&&(!((m=o.current)===null||m===void 0)&&m.input.hasAttribute("value"))&&((g=o.current)===null||g===void 0||g.input.removeAttribute("value"))}))};return(0,a.useEffect)(()=>(s&&d(),()=>n.current.forEach(l=>{l&&clearTimeout(l)})),[]),d}},21149:function(b,y,e){"use strict";e.d(y,{Z:function(){return X}});var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(81496),d=e(46902),c=W=>{const{getPrefixCls:x,direction:O}=(0,o.useContext)(s.E_),{prefixCls:_,className:U}=W,A=x("input-group",_),V=x("input"),[fe,pe]=(0,d.ZP)(V),ge=t()(A,{[`${A}-lg`]:W.size==="large",[`${A}-sm`]:W.size==="small",[`${A}-compact`]:W.compact,[`${A}-rtl`]:O==="rtl"},pe,U),be=(0,o.useContext)(n.aM),Te=(0,o.useMemo)(()=>Object.assign(Object.assign({},be),{isFormItemInput:!1}),[be]);return fe(o.createElement("span",{className:ge,style:W.style,onMouseEnter:W.onMouseEnter,onMouseLeave:W.onMouseLeave,onFocus:W.onFocus,onBlur:W.onBlur},o.createElement(n.aM.Provider,{value:Te},W.children)))},m=e(95670),g=e(83720),M=e(56019),h=e(98186),S=e(21319),w=e(52191),C=function(W,x){var O={};for(var _ in W)Object.prototype.hasOwnProperty.call(W,_)&&x.indexOf(_)<0&&(O[_]=W[_]);if(W!=null&&typeof Object.getOwnPropertySymbols=="function")for(var U=0,_=Object.getOwnPropertySymbols(W);U<_.length;U++)x.indexOf(_[U])<0&&Object.prototype.propertyIsEnumerable.call(W,_[U])&&(O[_[U]]=W[_[U]]);return O};const z=W=>W?o.createElement(M.Z,null):o.createElement(g.Z,null),Z={click:"onClick",hover:"onMouseOver"};var L=o.forwardRef((W,x)=>{const{visibilityToggle:O=!0}=W,_=typeof O=="object"&&O.visible!==void 0,[U,A]=(0,o.useState)(()=>_?O.visible:!1),V=(0,o.useRef)(null);o.useEffect(()=>{_&&A(O.visible)},[_,O]);const fe=(0,w.Z)(V),pe=()=>{const{disabled:rt}=W;rt||(U&&fe(),A(Ke=>{var ye;const ne=!Ke;return typeof O=="object"&&((ye=O.onVisibleChange)===null||ye===void 0||ye.call(O,ne)),ne}))},ge=rt=>{const{action:Ke="click",iconRender:ye=z}=W,ne=Z[Ke]||"",H=ye(U),R={[ne]:pe,className:`${rt}-icon`,key:"passwordIcon",onMouseDown:P=>{P.preventDefault()},onMouseUp:P=>{P.preventDefault()}};return o.cloneElement(o.isValidElement(H)?H:o.createElement("span",null,H),R)},{className:be,prefixCls:Te,inputPrefixCls:Ge,size:qe}=W,Qe=C(W,["className","prefixCls","inputPrefixCls","size"]),{getPrefixCls:ht}=o.useContext(s.E_),Et=ht("input",Ge),gt=ht("input-password",Te),Ht=O&&ge(gt),$e=t()(gt,be,{[`${gt}-${qe}`]:!!qe}),Xe=Object.assign(Object.assign({},(0,h.Z)(Qe,["suffix","iconRender","visibilityToggle"])),{type:U?"text":"password",className:$e,prefixCls:Et,suffix:Ht});return qe&&(Xe.size=qe),o.createElement(m.Z,Object.assign({ref:(0,S.sQ)(x,V)},Xe))}),$=e(99534),D=e(37047),T=e(12562),j=e(58785),G=e(43528),k=function(W,x){var O={};for(var _ in W)Object.prototype.hasOwnProperty.call(W,_)&&x.indexOf(_)<0&&(O[_]=W[_]);if(W!=null&&typeof Object.getOwnPropertySymbols=="function")for(var U=0,_=Object.getOwnPropertySymbols(W);U<_.length;U++)x.indexOf(_[U])<0&&Object.prototype.propertyIsEnumerable.call(W,_[U])&&(O[_[U]]=W[_[U]]);return O},Y=o.forwardRef((W,x)=>{const{prefixCls:O,inputPrefixCls:_,className:U,size:A,suffix:V,enterButton:fe=!1,addonAfter:pe,loading:ge,disabled:be,onSearch:Te,onChange:Ge,onCompositionStart:qe,onCompositionEnd:Qe}=W,ht=k(W,["prefixCls","inputPrefixCls","className","size","suffix","enterButton","addonAfter","loading","disabled","onSearch","onChange","onCompositionStart","onCompositionEnd"]),{getPrefixCls:Et,direction:gt}=o.useContext(s.E_),Ht=o.useRef(!1),$e=Et("input-search",O),Xe=Et("input",_),{compactSize:rt}=(0,G.ri)($e,gt),Ke=(0,j.Z)(re=>{var se;return(se=A!=null?A:rt)!==null&&se!==void 0?se:re}),ye=o.useRef(null),ne=re=>{re&&re.target&&re.type==="click"&&Te&&Te(re.target.value,re),Ge&&Ge(re)},H=re=>{var se;document.activeElement===((se=ye.current)===null||se===void 0?void 0:se.input)&&re.preventDefault()},R=re=>{var se,J;Te&&Te((J=(se=ye.current)===null||se===void 0?void 0:se.input)===null||J===void 0?void 0:J.value,re)},P=re=>{Ht.current||ge||R(re)},ae=typeof fe=="boolean"?o.createElement($.Z,null):null,Q=`${$e}-button`;let ie;const me=fe||{},je=me.type&&me.type.__ANT_BUTTON===!0;je||me.type==="button"?ie=(0,D.Tm)(me,Object.assign({onMouseDown:H,onClick:re=>{var se,J;(J=(se=me==null?void 0:me.props)===null||se===void 0?void 0:se.onClick)===null||J===void 0||J.call(se,re),R(re)},key:"enterButton"},je?{className:Q,size:Ke}:{})):ie=o.createElement(T.ZP,{className:Q,type:fe?"primary":void 0,size:Ke,disabled:be,key:"enterButton",onMouseDown:H,onClick:R,loading:ge,icon:ae},fe),pe&&(ie=[ie,(0,D.Tm)(pe,{key:"addonAfter"})]);const Ce=t()($e,{[`${$e}-rtl`]:gt==="rtl",[`${$e}-${Ke}`]:!!Ke,[`${$e}-with-button`]:!!fe},U),Se=re=>{Ht.current=!0,qe==null||qe(re)},We=re=>{Ht.current=!1,Qe==null||Qe(re)};return o.createElement(m.Z,Object.assign({ref:(0,S.sQ)(ye,x),onPressEnter:P},ht,{size:Ke,onCompositionStart:Se,onCompositionEnd:We,prefixCls:Xe,addonAfter:ie,suffix:V,onChange:ne,className:Ce,disabled:be}))}),q=e(79617);const le=m.Z;le.Group=c,le.Search=Y,le.TextArea=q.Z,le.Password=L;var X=le},46902:function(b,y,e){"use strict";e.d(y,{M1:function(){return l},Xy:function(){return c},bi:function(){return M},e5:function(){return L},ik:function(){return h},nz:function(){return n},pU:function(){return d},s7:function(){return S},x0:function(){return g}});var a=e(78330),t=e(64493),o=e(22151),s=e(52628);const n=D=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:D,userSelect:"none"},"&:placeholder-shown":{textOverflow:"ellipsis"}}),d=D=>({borderColor:D.inputBorderHoverColor,borderInlineEndWidth:D.lineWidth}),l=D=>({borderColor:D.inputBorderHoverColor,boxShadow:`0 0 0 ${D.controlOutlineWidth}px ${D.controlOutline}`,borderInlineEndWidth:D.lineWidth,outline:0}),c=D=>({color:D.colorTextDisabled,backgroundColor:D.colorBgContainerDisabled,borderColor:D.colorBorder,boxShadow:"none",cursor:"not-allowed",opacity:1,"&:hover":Object.assign({},d((0,o.TS)(D,{inputBorderHoverColor:D.colorBorder})))}),m=D=>{const{inputPaddingVerticalLG:T,fontSizeLG:j,lineHeightLG:G,borderRadiusLG:k,inputPaddingHorizontalLG:te}=D;return{padding:`${T}px ${te}px`,fontSize:j,lineHeight:G,borderRadius:k}},g=D=>({padding:`${D.inputPaddingVerticalSM}px ${D.controlPaddingHorizontalSM-1}px`,borderRadius:D.borderRadiusSM}),M=(D,T)=>{const{componentCls:j,colorError:G,colorWarning:k,colorErrorOutline:te,colorWarningOutline:Y,colorErrorBorderHover:q,colorWarningBorderHover:le}=D;return{[`&-status-error:not(${T}-disabled):not(${T}-borderless)${T}`]:{borderColor:G,"&:hover":{borderColor:q},"&:focus, &-focused":Object.assign({},l((0,o.TS)(D,{inputBorderActiveColor:G,inputBorderHoverColor:G,controlOutline:te}))),[`${j}-prefix, ${j}-suffix`]:{color:G}},[`&-status-warning:not(${T}-disabled):not(${T}-borderless)${T}`]:{borderColor:k,"&:hover":{borderColor:le},"&:focus, &-focused":Object.assign({},l((0,o.TS)(D,{inputBorderActiveColor:k,inputBorderHoverColor:k,controlOutline:Y}))),[`${j}-prefix, ${j}-suffix`]:{color:k}}}},h=D=>Object.assign(Object.assign({position:"relative",display:"inline-block",width:"100%",minWidth:0,padding:`${D.inputPaddingVertical}px ${D.inputPaddingHorizontal}px`,color:D.colorText,fontSize:D.fontSize,lineHeight:D.lineHeight,backgroundColor:D.colorBgContainer,backgroundImage:"none",borderWidth:D.lineWidth,borderStyle:D.lineType,borderColor:D.colorBorder,borderRadius:D.borderRadius,transition:`all ${D.motionDurationMid}`},n(D.colorTextPlaceholder)),{"&:hover":Object.assign({},d(D)),"&:focus, &-focused":Object.assign({},l(D)),"&-disabled, &[disabled]":Object.assign({},c(D)),"&-borderless":{"&, &:hover, &:focus, &-focused, &-disabled, &[disabled]":{backgroundColor:"transparent",border:"none",boxShadow:"none"}},"textarea&":{maxWidth:"100%",height:"auto",minHeight:D.controlHeight,lineHeight:D.lineHeight,verticalAlign:"bottom",transition:`all ${D.motionDurationSlow}, height 0s`,resize:"vertical"},"&-lg":Object.assign({},m(D)),"&-sm":Object.assign({},g(D)),"&-rtl":{direction:"rtl"},"&-textarea-rtl":{direction:"rtl"}}),S=D=>{const{componentCls:T,antCls:j}=D;return{position:"relative",display:"table",width:"100%",borderCollapse:"separate",borderSpacing:0,["&[class*='col-']"]:{paddingInlineEnd:D.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${T}, &-lg > ${T}-group-addon`]:Object.assign({},m(D)),[`&-sm ${T}, &-sm > ${T}-group-addon`]:Object.assign({},g(D)),[`&-lg ${j}-select-single ${j}-select-selector`]:{height:D.controlHeightLG},[`&-sm ${j}-select-single ${j}-select-selector`]:{height:D.controlHeightSM},[`> ${T}`]:{display:"table-cell","&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${T}-group`]:{["&-addon, &-wrap"]:{display:"table-cell",width:1,whiteSpace:"nowrap",verticalAlign:"middle","&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:"block !important"},"&-addon":{position:"relative",padding:`0 ${D.inputPaddingHorizontal}px`,color:D.colorText,fontWeight:"normal",fontSize:D.fontSize,textAlign:"center",backgroundColor:D.colorFillAlter,border:`${D.lineWidth}px ${D.lineType} ${D.colorBorder}`,borderRadius:D.borderRadius,transition:`all ${D.motionDurationSlow}`,lineHeight:1,[`${j}-select`]:{margin:`-${D.inputPaddingVertical+1}px -${D.inputPaddingHorizontal}px`,[`&${j}-select-single:not(${j}-select-customize-input)`]:{[`${j}-select-selector`]:{backgroundColor:"inherit",border:`${D.lineWidth}px ${D.lineType} transparent`,boxShadow:"none"}},"&-open, &-focused":{[`${j}-select-selector`]:{color:D.colorPrimary}}},[`${j}-cascader-picker`]:{margin:`-9px -${D.inputPaddingHorizontal}px`,backgroundColor:"transparent",[`${j}-cascader-input`]:{textAlign:"start",border:0,boxShadow:"none"}}},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}},[`${T}`]:{width:"100%",marginBottom:0,textAlign:"inherit","&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${T}-search-with-button &`]:{zIndex:0}}},[`> ${T}:first-child, ${T}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${j}-select ${j}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${T}-affix-wrapper`]:{[`&:not(:first-child) ${T}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${T}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${T}:last-child, ${T}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${j}-select ${j}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${T}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${T}-search &`]:{borderStartStartRadius:D.borderRadius,borderEndStartRadius:D.borderRadius}},[`&:not(:first-child), ${T}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${T}-group-compact`]:Object.assign(Object.assign({display:"block"},(0,a.dF)()),{[`${T}-group-addon, ${T}-group-wrap, > ${T}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:D.lineWidth,"&:hover":{zIndex:1},"&:focus":{zIndex:1}}},"& > *":{display:"inline-block",float:"none",verticalAlign:"top",borderRadius:0},[` + & > ${T}-affix-wrapper, + & > ${T}-number-affix-wrapper, + & > ${j}-picker-range + `]:{display:"inline-flex"},"& > *:not(:last-child)":{marginInlineEnd:-D.lineWidth,borderInlineEndWidth:D.lineWidth},[`${T}`]:{float:"none"},[`& > ${j}-select > ${j}-select-selector, + & > ${j}-select-auto-complete ${T}, + & > ${j}-cascader-picker ${T}, + & > ${T}-group-wrapper ${T}`]:{borderInlineEndWidth:D.lineWidth,borderRadius:0,"&:hover":{zIndex:1},"&:focus":{zIndex:1}},[`& > ${j}-select-focused`]:{zIndex:1},[`& > ${j}-select > ${j}-select-arrow`]:{zIndex:1},[`& > *:first-child, + & > ${j}-select:first-child > ${j}-select-selector, + & > ${j}-select-auto-complete:first-child ${T}, + & > ${j}-cascader-picker:first-child ${T}`]:{borderStartStartRadius:D.borderRadius,borderEndStartRadius:D.borderRadius},[`& > *:last-child, + & > ${j}-select:last-child > ${j}-select-selector, + & > ${j}-cascader-picker:last-child ${T}, + & > ${j}-cascader-picker-focused:last-child ${T}`]:{borderInlineEndWidth:D.lineWidth,borderStartEndRadius:D.borderRadius,borderEndEndRadius:D.borderRadius},[`& > ${j}-select-auto-complete ${T}`]:{verticalAlign:"top"},[`${T}-group-wrapper + ${T}-group-wrapper`]:{marginInlineStart:-D.lineWidth,[`${T}-affix-wrapper`]:{borderRadius:0}},[`${T}-group-wrapper:not(:last-child)`]:{[`&${T}-search > ${T}-group`]:{[`& > ${T}-group-addon > ${T}-search-button`]:{borderRadius:0},[`& > ${T}`]:{borderStartStartRadius:D.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:D.borderRadius}}}})}},w=D=>{const{componentCls:T,controlHeightSM:j,lineWidth:G}=D,k=16,te=(j-G*2-k)/2;return{[T]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,a.Wf)(D)),h(D)),M(D,T)),{'&[type="color"]':{height:D.controlHeight,[`&${T}-lg`]:{height:D.controlHeightLG},[`&${T}-sm`]:{height:j,paddingTop:te,paddingBottom:te}},'&[type="search"]::-webkit-search-cancel-button, &[type="search"]::-webkit-search-decoration':{"-webkit-appearance":"none"}})}},C=D=>{const{componentCls:T}=D;return{[`${T}-clear-icon`]:{margin:0,color:D.colorTextQuaternary,fontSize:D.fontSizeIcon,verticalAlign:-1,cursor:"pointer",transition:`color ${D.motionDurationSlow}`,"&:hover":{color:D.colorTextTertiary},"&:active":{color:D.colorText},"&-hidden":{visibility:"hidden"},"&-has-suffix":{margin:`0 ${D.inputAffixPadding}px`}}}},z=D=>{const{componentCls:T,inputAffixPadding:j,colorTextDescription:G,motionDurationSlow:k,colorIcon:te,colorIconHover:Y,iconCls:q}=D;return{[`${T}-affix-wrapper`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},h(D)),{display:"inline-flex",[`&:not(${T}-affix-wrapper-disabled):hover`]:Object.assign(Object.assign({},d(D)),{zIndex:1,[`${T}-search-with-button &`]:{zIndex:0}}),"&-focused, &:focus":{zIndex:1},"&-disabled":{[`${T}[disabled]`]:{background:"transparent"}},[`> input${T}`]:{padding:0,fontSize:"inherit",border:"none",borderRadius:0,outline:"none","&::-ms-reveal":{display:"none"},"&:focus":{boxShadow:"none !important"}},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[`${T}`]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center","> *:not(:last-child)":{marginInlineEnd:D.paddingXS}},"&-show-count-suffix":{color:G},"&-show-count-has-suffix":{marginInlineEnd:D.paddingXXS},"&-prefix":{marginInlineEnd:j},"&-suffix":{marginInlineStart:j}}}),C(D)),{[`${q}${T}-password-icon`]:{color:te,cursor:"pointer",transition:`all ${k}`,"&:hover":{color:Y}}}),M(D,`${T}-affix-wrapper`))}},Z=D=>{const{componentCls:T,colorError:j,colorWarning:G,borderRadiusLG:k,borderRadiusSM:te}=D;return{[`${T}-group`]:Object.assign(Object.assign(Object.assign({},(0,a.Wf)(D)),S(D)),{"&-rtl":{direction:"rtl"},"&-wrapper":{display:"inline-block",width:"100%",textAlign:"start",verticalAlign:"top","&-rtl":{direction:"rtl"},"&-lg":{[`${T}-group-addon`]:{borderRadius:k,fontSize:D.fontSizeLG}},"&-sm":{[`${T}-group-addon`]:{borderRadius:te}},"&-status-error":{[`${T}-group-addon`]:{color:j,borderColor:j}},"&-status-warning":{[`${T}-group-addon`]:{color:G,borderColor:G}},"&-disabled":{[`${T}-group-addon`]:Object.assign({},c(D))},[`&:not(${T}-compact-first-item):not(${T}-compact-last-item)${T}-compact-item`]:{[`${T}, ${T}-group-addon`]:{borderRadius:0}},[`&:not(${T}-compact-last-item)${T}-compact-first-item`]:{[`${T}, ${T}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${T}-compact-first-item)${T}-compact-last-item`]:{[`${T}, ${T}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}})}},N=D=>{const{componentCls:T,antCls:j}=D,G=`${T}-search`;return{[G]:{[`${T}`]:{"&:hover, &:focus":{borderColor:D.colorPrimaryHover,[`+ ${T}-group-addon ${G}-button:not(${j}-btn-primary)`]:{borderInlineStartColor:D.colorPrimaryHover}}},[`${T}-affix-wrapper`]:{borderRadius:0},[`${T}-lg`]:{lineHeight:D.lineHeightLG-2e-4},[`> ${T}-group`]:{[`> ${T}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${G}-button`]:{paddingTop:0,paddingBottom:0,borderStartStartRadius:0,borderStartEndRadius:D.borderRadius,borderEndEndRadius:D.borderRadius,borderEndStartRadius:0},[`${G}-button:not(${j}-btn-primary)`]:{color:D.colorTextDescription,"&:hover":{color:D.colorPrimaryHover},"&:active":{color:D.colorPrimaryActive},[`&${j}-btn-loading::before`]:{insetInlineStart:0,insetInlineEnd:0,insetBlockStart:0,insetBlockEnd:0}}}},[`${G}-button`]:{height:D.controlHeight,"&:hover, &:focus":{zIndex:1}},[`&-large ${G}-button`]:{height:D.controlHeightLG},[`&-small ${G}-button`]:{height:D.controlHeightSM},"&-rtl":{direction:"rtl"},[`&${T}-compact-item`]:{[`&:not(${T}-compact-last-item)`]:{[`${T}-group-addon`]:{[`${T}-search-button`]:{marginInlineEnd:-D.lineWidth,borderRadius:0}}},[`&:not(${T}-compact-first-item)`]:{[`${T},${T}-affix-wrapper`]:{borderRadius:0}},[`> ${T}-group-addon ${T}-search-button, + > ${T}, + ${T}-affix-wrapper`]:{"&:hover,&:focus,&:active":{zIndex:2}},[`> ${T}-affix-wrapper-focused`]:{zIndex:2}}}}};function L(D){return(0,o.TS)(D,{inputAffixPadding:D.paddingXXS,inputPaddingVertical:Math.max(Math.round((D.controlHeight-D.fontSize*D.lineHeight)/2*10)/10-D.lineWidth,3),inputPaddingVerticalLG:Math.ceil((D.controlHeightLG-D.fontSizeLG*D.lineHeightLG)/2*10)/10-D.lineWidth,inputPaddingVerticalSM:Math.max(Math.round((D.controlHeightSM-D.fontSize*D.lineHeight)/2*10)/10-D.lineWidth,0),inputPaddingHorizontal:D.paddingSM-D.lineWidth,inputPaddingHorizontalSM:D.paddingXS-D.lineWidth,inputPaddingHorizontalLG:D.controlPaddingHorizontal-D.lineWidth,inputBorderHoverColor:D.colorPrimaryHover,inputBorderActiveColor:D.colorPrimaryHover})}const $=D=>{const{componentCls:T,paddingLG:j}=D,G=`${T}-textarea`;return{[G]:{position:"relative","&-show-count":{[`> ${T}`]:{height:"100%"},[`${T}-data-count`]:{position:"absolute",bottom:-D.fontSize*D.lineHeight,insetInlineEnd:0,color:D.colorTextDescription,whiteSpace:"nowrap",pointerEvents:"none"}},"&-allow-clear":{[`> ${T}`]:{paddingInlineEnd:j}},[`&-affix-wrapper${G}-has-feedback`]:{[`${T}`]:{paddingInlineEnd:j}},[`&-affix-wrapper${T}-affix-wrapper`]:{padding:0,[`> textarea${T}`]:{fontSize:"inherit",border:"none",outline:"none","&:focus":{boxShadow:"none !important"}},[`${T}-suffix`]:{margin:0,"> *:not(:last-child)":{marginInline:0},[`${T}-clear-icon`]:{position:"absolute",insetInlineEnd:D.paddingXS,insetBlockStart:D.paddingXS},[`${G}-suffix`]:{position:"absolute",top:0,insetInlineEnd:D.inputPaddingHorizontal,bottom:0,zIndex:1,display:"inline-flex",alignItems:"center",margin:"auto",pointerEvents:"none"}}}}}};y.ZP=(0,s.Z)("Input",D=>{const T=L(D);return[w(T),$(T),z(T),Z(T),N(T),(0,t.c)(T)]})},67423:function(b,y,e){"use strict";e.d(y,{D:function(){return L},Z:function(){return T}});var a=e(60698),t=e(58757),o={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"},s=o,n=e(17202),d=function(G,k){return t.createElement(n.Z,(0,a.Z)({},G,{ref:k,icon:s}))},l=t.forwardRef(d),c=e(99142),m=e(91169),g=e(87608),M=e.n(g),h=e(98186),w=j=>!isNaN(parseFloat(j))&&isFinite(j),C=e(61836),z=e(79802),Z=function(j,G){var k={};for(var te in j)Object.prototype.hasOwnProperty.call(j,te)&&G.indexOf(te)<0&&(k[te]=j[te]);if(j!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,te=Object.getOwnPropertySymbols(j);Y{let j=0;return function(){let G=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return j+=1,`${G}${j}`}})();var T=t.forwardRef((j,G)=>{const{prefixCls:k,className:te,trigger:Y,children:q,defaultCollapsed:le=!1,theme:X="dark",style:W={},collapsible:x=!1,reverseArrow:O=!1,width:_=200,collapsedWidth:U=80,zeroWidthTriggerStyle:A,breakpoint:V,onCollapse:fe,onBreakpoint:pe}=j,ge=Z(j,["prefixCls","className","trigger","children","defaultCollapsed","theme","style","collapsible","reverseArrow","width","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint"]),{siderHook:be}=(0,t.useContext)(z.Gs),[Te,Ge]=(0,t.useState)("collapsed"in j?j.collapsed:le),[qe,Qe]=(0,t.useState)(!1);(0,t.useEffect)(()=>{"collapsed"in j&&Ge(j.collapsed)},[j.collapsed]);const ht=(rt,Ke)=>{"collapsed"in j||Ge(rt),fe==null||fe(rt,Ke)},Et=(0,t.useRef)();Et.current=rt=>{Qe(rt.matches),pe==null||pe(rt.matches),Te!==rt.matches&&ht(rt.matches,"responsive")},(0,t.useEffect)(()=>{function rt(ye){return Et.current(ye)}let Ke;if(typeof window!="undefined"){const{matchMedia:ye}=window;if(ye&&V&&V in N){Ke=ye(`(max-width: ${N[V]})`);try{Ke.addEventListener("change",rt)}catch(ne){Ke.addListener(rt)}rt(Ke)}}return()=>{try{Ke==null||Ke.removeEventListener("change",rt)}catch(ye){Ke==null||Ke.removeListener(rt)}}},[V]),(0,t.useEffect)(()=>{const rt=$("ant-sider-");return be.addSider(rt),()=>be.removeSider(rt)},[]);const gt=()=>{ht(!Te,"clickTrigger")},{getPrefixCls:Ht}=(0,t.useContext)(C.E_),$e=()=>{const rt=Ht("layout-sider",k),Ke=(0,h.Z)(ge,["collapsed"]),ye=Te?U:_,ne=w(ye)?`${ye}px`:String(ye),H=parseFloat(String(U||0))===0?t.createElement("span",{onClick:gt,className:M()(`${rt}-zero-width-trigger`,`${rt}-zero-width-trigger-${O?"right":"left"}`),style:A},Y||t.createElement(l,null)):null,ae={expanded:O?t.createElement(m.Z,null):t.createElement(c.Z,null),collapsed:O?t.createElement(c.Z,null):t.createElement(m.Z,null)}[Te?"collapsed":"expanded"],Q=Y!==null?H||t.createElement("div",{className:`${rt}-trigger`,onClick:gt,style:{width:ne}},Y||ae):null,ie=Object.assign(Object.assign({},W),{flex:`0 0 ${ne}`,maxWidth:ne,minWidth:ne,width:ne}),me=M()(rt,`${rt}-${X}`,{[`${rt}-collapsed`]:!!Te,[`${rt}-has-trigger`]:x&&Y!==null&&!H,[`${rt}-below`]:!!qe,[`${rt}-zero-width`]:parseFloat(ne)===0},te);return t.createElement("aside",Object.assign({className:me},Ke,{style:ie,ref:G}),t.createElement("div",{className:`${rt}-children`},q),x||qe&&H?Q:null)},Xe=t.useMemo(()=>({siderCollapsed:Te}),[Te]);return t.createElement(L.Provider,{value:Xe},$e())})},79802:function(b,y,e){"use strict";e.d(y,{VY:function(){return D},$_:function(){return $},h4:function(){return L},Gs:function(){return w},ZP:function(){return T}});var a=e(29140),t=e(87608),o=e.n(t),s=e(98186),n=e(58757),d=e(61836),l=e(52628),c=e(22151),g=j=>{const{componentCls:G,colorBgContainer:k,colorBgBody:te,colorText:Y}=j;return{[`${G}-sider-light`]:{background:k,[`${G}-sider-trigger`]:{color:Y,background:k},[`${G}-sider-zero-width-trigger`]:{color:Y,background:k,border:`1px solid ${te}`,borderInlineStart:0}}}};const M=j=>{const{antCls:G,componentCls:k,colorText:te,colorTextLightSolid:Y,colorBgHeader:q,colorBgBody:le,colorBgTrigger:X,layoutHeaderHeight:W,layoutHeaderPaddingInline:x,layoutHeaderColor:O,layoutFooterPadding:_,layoutTriggerHeight:U,layoutZeroTriggerSize:A,motionDurationMid:V,motionDurationSlow:fe,fontSize:pe,borderRadius:ge}=j;return{[k]:Object.assign(Object.assign({display:"flex",flex:"auto",flexDirection:"column",minHeight:0,background:le,"&, *":{boxSizing:"border-box"},[`&${k}-has-sider`]:{flexDirection:"row",[`> ${k}, > ${k}-content`]:{width:0}},[`${k}-header, &${k}-footer`]:{flex:"0 0 auto"},[`${k}-sider`]:{position:"relative",minWidth:0,background:q,transition:`all ${V}, background 0s`,"&-children":{height:"100%",marginTop:-.1,paddingTop:.1,[`${G}-menu${G}-menu-inline-collapsed`]:{width:"auto"}},"&-has-trigger":{paddingBottom:U},"&-right":{order:1},"&-trigger":{position:"fixed",bottom:0,zIndex:1,height:U,color:Y,lineHeight:`${U}px`,textAlign:"center",background:X,cursor:"pointer",transition:`all ${V}`},"&-zero-width":{"> *":{overflow:"hidden"},"&-trigger":{position:"absolute",top:W,insetInlineEnd:-A,zIndex:1,width:A,height:A,color:Y,fontSize:j.fontSizeXL,display:"flex",alignItems:"center",justifyContent:"center",background:q,borderStartStartRadius:0,borderStartEndRadius:ge,borderEndEndRadius:ge,borderEndStartRadius:0,cursor:"pointer",transition:`background ${fe} ease`,"&::after":{position:"absolute",inset:0,background:"transparent",transition:`all ${fe}`,content:'""'},"&:hover::after":{background:"rgba(255, 255, 255, 0.2)"},"&-right":{insetInlineStart:-A,borderStartStartRadius:ge,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:ge}}}}},g(j)),{"&-rtl":{direction:"rtl"}}),[`${k}-header`]:{height:W,paddingInline:x,color:O,lineHeight:`${W}px`,background:q,[`${G}-menu`]:{lineHeight:"inherit"}},[`${k}-footer`]:{padding:_,color:te,fontSize:pe,background:le},[`${k}-content`]:{flex:"auto",minHeight:0}}};var h=(0,l.Z)("Layout",j=>{const{colorText:G,controlHeightSM:k,controlHeight:te,controlHeightLG:Y,marginXXS:q}=j,le=Y*1.25,X=(0,c.TS)(j,{layoutHeaderHeight:te*2,layoutHeaderPaddingInline:le,layoutHeaderColor:G,layoutFooterPadding:`${k}px ${le}px`,layoutTriggerHeight:Y+q*2,layoutZeroTriggerSize:Y});return[M(X)]},j=>{const{colorBgLayout:G}=j;return{colorBgHeader:"#001529",colorBgBody:G,colorBgTrigger:"#002140"}}),S=function(j,G){var k={};for(var te in j)Object.prototype.hasOwnProperty.call(j,te)&&G.indexOf(te)<0&&(k[te]=j[te]);if(j!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Y=0,te=Object.getOwnPropertySymbols(j);Ynull,removeSider:()=>null}});function C(j){let{suffixCls:G,tagName:k,displayName:te}=j;return Y=>n.forwardRef((le,X)=>n.createElement(Y,Object.assign({ref:X,suffixCls:G,tagName:k},le)))}const z=n.forwardRef((j,G)=>{const{prefixCls:k,suffixCls:te,className:Y,tagName:q}=j,le=S(j,["prefixCls","suffixCls","className","tagName"]),{getPrefixCls:X}=n.useContext(d.E_),W=X("layout",k),[x,O]=h(W),_=te?`${W}-${te}`:W;return x(n.createElement(q,Object.assign({className:o()(k||_,Y,O),ref:G},le)))}),Z=n.forwardRef((j,G)=>{const{direction:k}=n.useContext(d.E_),[te,Y]=n.useState([]),{prefixCls:q,className:le,rootClassName:X,children:W,hasSider:x,tagName:O,style:_}=j,U=S(j,["prefixCls","className","rootClassName","children","hasSider","tagName","style"]),A=(0,s.Z)(U,["suffixCls"]),{getPrefixCls:V,layout:fe}=n.useContext(d.E_),pe=V("layout",q),[ge,be]=h(pe),Te=o()(pe,{[`${pe}-has-sider`]:typeof x=="boolean"?x:te.length>0,[`${pe}-rtl`]:k==="rtl"},fe==null?void 0:fe.className,le,X,be),Ge=n.useMemo(()=>({siderHook:{addSider:qe=>{Y(Qe=>[].concat((0,a.Z)(Qe),[qe]))},removeSider:qe=>{Y(Qe=>Qe.filter(ht=>ht!==qe))}}}),[]);return ge(n.createElement(w.Provider,{value:Ge},n.createElement(O,Object.assign({ref:G,className:Te,style:Object.assign(Object.assign({},fe==null?void 0:fe.style),_)},A),W)))}),N=C({tagName:"div",displayName:"Layout"})(Z),L=C({suffixCls:"header",tagName:"header",displayName:"Header"})(z),$=C({suffixCls:"footer",tagName:"footer",displayName:"Footer"})(z),D=C({suffixCls:"content",tagName:"main",displayName:"Content"})(z);var T=N},37617:function(b,y,e){"use strict";e.d(y,{Z:function(){return W}});var a=e(29140),t=e(87608),o=e.n(t),s=e(58757),n=e(44818),d=e(87078),l=e(61836),c=e(10401),m=e(67665),g=e(60059),M=e(35910),h=e(79233),S=e(37047),w=e(91334);const C=s.createContext({}),z=C.Consumer;var Z=function(x,O){var _={};for(var U in x)Object.prototype.hasOwnProperty.call(x,U)&&O.indexOf(U)<0&&(_[U]=x[U]);if(x!=null&&typeof Object.getOwnPropertySymbols=="function")for(var A=0,U=Object.getOwnPropertySymbols(x);A{var{prefixCls:O,className:_,avatar:U,title:A,description:V}=x,fe=Z(x,["prefixCls","className","avatar","title","description"]);const{getPrefixCls:pe}=(0,s.useContext)(l.E_),ge=pe("list",O),be=o()(`${ge}-item-meta`,_),Te=s.createElement("div",{className:`${ge}-item-meta-content`},A&&s.createElement("h4",{className:`${ge}-item-meta-title`},A),V&&s.createElement("div",{className:`${ge}-item-meta-description`},V));return s.createElement("div",Object.assign({},fe,{className:be}),U&&s.createElement("div",{className:`${ge}-item-meta-avatar`},U),(A||V)&&Te)},L=(x,O)=>{var{prefixCls:_,children:U,actions:A,extra:V,className:fe,colStyle:pe}=x,ge=Z(x,["prefixCls","children","actions","extra","className","colStyle"]);const{grid:be,itemLayout:Te}=(0,s.useContext)(C),{getPrefixCls:Ge}=(0,s.useContext)(l.E_),qe=()=>{let $e;return s.Children.forEach(U,Xe=>{typeof Xe=="string"&&($e=!0)}),$e&&s.Children.count(U)>1},Qe=()=>Te==="vertical"?!!V:!qe(),ht=Ge("list",_),Et=A&&A.length>0&&s.createElement("ul",{className:`${ht}-item-action`,key:"actions"},A.map(($e,Xe)=>s.createElement("li",{key:`${ht}-item-action-${Xe}`},$e,Xe!==A.length-1&&s.createElement("em",{className:`${ht}-item-action-split`})))),gt=be?"div":"li",Ht=s.createElement(gt,Object.assign({},ge,be?{}:{ref:O},{className:o()(`${ht}-item`,{[`${ht}-item-no-flex`]:!Qe()},fe)}),Te==="vertical"&&V?[s.createElement("div",{className:`${ht}-item-main`,key:"content"},U,Et),s.createElement("div",{className:`${ht}-item-extra`,key:"extra"},V)]:[U,Et,(0,S.Tm)(V,{key:"extra"})]);return be?s.createElement(w.Z,{ref:O,flex:1,style:pe},Ht):Ht},$=(0,s.forwardRef)(L);$.Meta=N;var D=$,T=e(78330),j=e(52628),G=e(22151);const k=x=>{const{listBorderedCls:O,componentCls:_,paddingLG:U,margin:A,itemPaddingSM:V,itemPaddingLG:fe,marginLG:pe,borderRadiusLG:ge}=x;return{[`${O}`]:{border:`${x.lineWidth}px ${x.lineType} ${x.colorBorder}`,borderRadius:ge,[`${_}-header,${_}-footer,${_}-item`]:{paddingInline:U},[`${_}-pagination`]:{margin:`${A}px ${pe}px`}},[`${O}${_}-sm`]:{[`${_}-item,${_}-header,${_}-footer`]:{padding:V}},[`${O}${_}-lg`]:{[`${_}-item,${_}-header,${_}-footer`]:{padding:fe}}}},te=x=>{const{componentCls:O,screenSM:_,screenMD:U,marginLG:A,marginSM:V,margin:fe}=x;return{[`@media screen and (max-width:${U})`]:{[`${O}`]:{[`${O}-item`]:{[`${O}-item-action`]:{marginInlineStart:A}}},[`${O}-vertical`]:{[`${O}-item`]:{[`${O}-item-extra`]:{marginInlineStart:A}}}},[`@media screen and (max-width: ${_})`]:{[`${O}`]:{[`${O}-item`]:{flexWrap:"wrap",[`${O}-action`]:{marginInlineStart:V}}},[`${O}-vertical`]:{[`${O}-item`]:{flexWrap:"wrap-reverse",[`${O}-item-main`]:{minWidth:x.contentWidth},[`${O}-item-extra`]:{margin:`auto auto ${fe}px`}}}}}},Y=x=>{const{componentCls:O,antCls:_,controlHeight:U,minHeight:A,paddingSM:V,marginLG:fe,padding:pe,itemPadding:ge,colorPrimary:be,itemPaddingSM:Te,itemPaddingLG:Ge,paddingXS:qe,margin:Qe,colorText:ht,colorTextDescription:Et,motionDurationSlow:gt,lineWidth:Ht,headerBg:$e,footerBg:Xe,emptyTextPadding:rt,metaMarginBottom:Ke,avatarMarginRight:ye,titleMarginBottom:ne,descriptionFontSize:H}=x,R={};return["start","center","end"].forEach(P=>{R[`&-align-${P}`]={textAlign:P}}),{[`${O}`]:Object.assign(Object.assign({},(0,T.Wf)(x)),{position:"relative","*":{outline:"none"},[`${O}-header`]:{background:$e},[`${O}-footer`]:{background:Xe},[`${O}-header, ${O}-footer`]:{paddingBlock:V},[`${O}-pagination`]:Object.assign(Object.assign({marginBlockStart:fe},R),{[`${_}-pagination-options`]:{textAlign:"start"}}),[`${O}-spin`]:{minHeight:A,textAlign:"center"},[`${O}-items`]:{margin:0,padding:0,listStyle:"none"},[`${O}-item`]:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:ge,color:ht,[`${O}-item-meta`]:{display:"flex",flex:1,alignItems:"flex-start",maxWidth:"100%",[`${O}-item-meta-avatar`]:{marginInlineEnd:ye},[`${O}-item-meta-content`]:{flex:"1 0",width:0,color:ht},[`${O}-item-meta-title`]:{margin:`0 0 ${x.marginXXS}px 0`,color:ht,fontSize:x.fontSize,lineHeight:x.lineHeight,"> a":{color:ht,transition:`all ${gt}`,["&:hover"]:{color:be}}},[`${O}-item-meta-description`]:{color:Et,fontSize:H,lineHeight:x.lineHeight}},[`${O}-item-action`]:{flex:"0 0 auto",marginInlineStart:x.marginXXL,padding:0,fontSize:0,listStyle:"none",["& > li"]:{position:"relative",display:"inline-block",padding:`0 ${qe}px`,color:Et,fontSize:x.fontSize,lineHeight:x.lineHeight,textAlign:"center",["&:first-child"]:{paddingInlineStart:0}},[`${O}-item-action-split`]:{position:"absolute",insetBlockStart:"50%",insetInlineEnd:0,width:Ht,height:Math.ceil(x.fontSize*x.lineHeight)-x.marginXXS*2,transform:"translateY(-50%)",backgroundColor:x.colorSplit}}},[`${O}-empty`]:{padding:`${pe}px 0`,color:Et,fontSize:x.fontSizeSM,textAlign:"center"},[`${O}-empty-text`]:{padding:rt,color:x.colorTextDisabled,fontSize:x.fontSize,textAlign:"center"},[`${O}-item-no-flex`]:{display:"block"}}),[`${O}-grid ${_}-col > ${O}-item`]:{display:"block",maxWidth:"100%",marginBlockEnd:Qe,paddingBlock:0,borderBlockEnd:"none"},[`${O}-vertical ${O}-item`]:{alignItems:"initial",[`${O}-item-main`]:{display:"block",flex:1},[`${O}-item-extra`]:{marginInlineStart:fe},[`${O}-item-meta`]:{marginBlockEnd:Ke,[`${O}-item-meta-title`]:{marginBlockStart:0,marginBlockEnd:ne,color:ht,fontSize:x.fontSizeLG,lineHeight:x.lineHeightLG}},[`${O}-item-action`]:{marginBlockStart:pe,marginInlineStart:"auto","> li":{padding:`0 ${pe}px`,["&:first-child"]:{paddingInlineStart:0}}}},[`${O}-split ${O}-item`]:{borderBlockEnd:`${x.lineWidth}px ${x.lineType} ${x.colorSplit}`,["&:last-child"]:{borderBlockEnd:"none"}},[`${O}-split ${O}-header`]:{borderBlockEnd:`${x.lineWidth}px ${x.lineType} ${x.colorSplit}`},[`${O}-split${O}-empty ${O}-footer`]:{borderTop:`${x.lineWidth}px ${x.lineType} ${x.colorSplit}`},[`${O}-loading ${O}-spin-nested-loading`]:{minHeight:U},[`${O}-split${O}-something-after-last-item ${_}-spin-container > ${O}-items > ${O}-item:last-child`]:{borderBlockEnd:`${x.lineWidth}px ${x.lineType} ${x.colorSplit}`},[`${O}-lg ${O}-item`]:{padding:Ge},[`${O}-sm ${O}-item`]:{padding:Te},[`${O}:not(${O}-vertical)`]:{[`${O}-item-no-flex`]:{[`${O}-item-action`]:{float:"right"}}}}};var q=(0,j.Z)("List",x=>{const O=(0,G.TS)(x,{listBorderedCls:`${x.componentCls}-bordered`,minHeight:x.controlHeightLG});return[Y(O),k(O),te(O)]},x=>({contentWidth:220,itemPadding:`${x.paddingContentVertical}px 0`,itemPaddingSM:`${x.paddingContentVerticalSM}px ${x.paddingContentHorizontal}px`,itemPaddingLG:`${x.paddingContentVerticalLG}px ${x.paddingContentHorizontalLG}px`,headerBg:"transparent",footerBg:"transparent",emptyTextPadding:x.padding,metaMarginBottom:x.padding,avatarMarginRight:x.padding,titleMarginBottom:x.paddingSM,descriptionFontSize:x.fontSize})),le=function(x,O){var _={};for(var U in x)Object.prototype.hasOwnProperty.call(x,U)&&O.indexOf(U)<0&&(_[U]=x[U]);if(x!=null&&typeof Object.getOwnPropertySymbols=="function")for(var A=0,U=Object.getOwnPropertySymbols(x);A(Yt,bt)=>{var ze;H(Yt),P(bt),_&&_[wt]&&((ze=_==null?void 0:_[wt])===null||ze===void 0||ze.call(_,Yt,bt))},Se=Ce("onChange"),We=Ce("onShowSizeChange"),re=(wt,Yt)=>{if(!Xe)return null;let bt;return typeof $e=="function"?bt=$e(wt):$e?bt=wt[$e]:bt=wt.key,bt||(bt=`list-item-${Yt}`),s.createElement(s.Fragment,{key:bt},Xe(wt,Yt))},se=()=>!!(Ge||_||gt),J=ae("list",U),[de,xe]=q(J);let ce=Ht;typeof ce=="boolean"&&(ce={spinning:ce});const Ne=ce&&ce.spinning;let Oe="";switch(ht){case"large":Oe="lg";break;case"small":Oe="sm";break;default:break}const we=o()(J,{[`${J}-vertical`]:Te==="vertical",[`${J}-${Oe}`]:Oe,[`${J}-split`]:V,[`${J}-bordered`]:A,[`${J}-loading`]:Ne,[`${J}-grid`]:!!qe,[`${J}-something-after-last-item`]:se(),[`${J}-rtl`]:ie==="rtl"},me==null?void 0:me.className,fe,pe,xe),Re=(0,n.Z)(je,{total:Qe.length,current:ne,pageSize:R},_||{}),st=Math.ceil(Re.total/Re.pageSize);Re.current>st&&(Re.current=st);const tt=_?s.createElement("div",{className:o()(`${J}-pagination`,`${J}-pagination-align-${(O=Re==null?void 0:Re.align)!==null&&O!==void 0?O:"end"}`)},s.createElement(M.Z,Object.assign({},Re,{onChange:Se,onShowSizeChange:We}))):null;let Ye=(0,a.Z)(Qe);_&&Qe.length>(Re.current-1)*Re.pageSize&&(Ye=(0,a.Z)(Qe).splice((Re.current-1)*Re.pageSize,Re.pageSize));const ke=Object.keys(qe||{}).some(wt=>["xs","sm","md","lg","xl","xxl"].includes(wt)),Be=(0,g.Z)(ke),it=s.useMemo(()=>{for(let wt=0;wt{if(!qe)return;const wt=it&&qe[it]?qe[it]:qe.column;if(wt)return{width:`${100/wt}%`,maxWidth:`${100/wt}%`}},[qe==null?void 0:qe.column,it]);let xt=Ne&&s.createElement("div",{style:{minHeight:53}});if(Ye.length>0){const wt=Ye.map((Yt,bt)=>re(Yt,bt));xt=qe?s.createElement(m.Z,{gutter:qe.gutter},s.Children.map(wt,Yt=>s.createElement("div",{key:Yt==null?void 0:Yt.key,style:Ve},Yt))):s.createElement("ul",{className:`${J}-items`},wt)}else!be&&!Ne&&(xt=s.createElement("div",{className:`${J}-empty-text`},rt&&rt.emptyText||(Q==null?void 0:Q("List"))||s.createElement(c.Z,{componentName:"List"})));const _t=Re.position||"bottom",Ot=s.useMemo(()=>({grid:qe,itemLayout:Te}),[JSON.stringify(qe),Te]);return de(s.createElement(C.Provider,{value:Ot},s.createElement("div",Object.assign({style:Object.assign(Object.assign({},me==null?void 0:me.style),ge),className:we},Ke),(_t==="top"||_t==="both")&&tt,Et&&s.createElement("div",{className:`${J}-header`},Et),s.createElement(h.Z,Object.assign({},ce),xt,be),gt&&s.createElement("div",{className:`${J}-footer`},gt),Ge||(_t==="bottom"||_t==="both")&&tt)))}X.Item=D;var W=X},10520:function(b,y,e){"use strict";var a=e(58757);const t=(0,a.createContext)(void 0);y.Z=t},80076:function(b,y,e){"use strict";var a=e(57522),t=e(81872),o=e(7056),s=e(38107);const n="${label} is not a valid ${type}",d={locale:"en",Pagination:a.Z,DatePicker:o.Z,TimePicker:s.Z,Calendar:t.Z,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",filterCheckall:"Select all items",filterSearchPlaceholder:"Search in filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Tour:{Next:"Next",Previous:"Previous",Finish:"Finish"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:n,method:n,array:n,object:n,number:n,date:n,boolean:n,integer:n,float:n,regexp:n,email:n,url:n,hex:n},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"},QRCode:{expired:"QR code expired",refresh:"Refresh"},ColorPicker:{presetEmpty:"Empty"}};y.Z=d},29487:function(b,y,e){"use strict";var a=e(58757),t=e(10520),o=e(80076);const s=(n,d)=>{const l=a.useContext(t.Z),c=a.useMemo(()=>{var g;const M=d||o.Z[n],h=(g=l==null?void 0:l[n])!==null&&g!==void 0?g:{};return Object.assign(Object.assign({},typeof M=="function"?M():M),h||{})},[n,d,l]),m=a.useMemo(()=>{const g=l==null?void 0:l.locale;return l!=null&&l.exist&&!g?o.Z.locale:g},[l]);return[c,m]};y.Z=s},1597:function(b,y,e){"use strict";e.d(y,{Z:function(){return M}});var a=e(23737),t={locale:"zh_CN",today:"\u4ECA\u5929",now:"\u6B64\u523B",backToToday:"\u8FD4\u56DE\u4ECA\u5929",ok:"\u786E\u5B9A",timeSelect:"\u9009\u62E9\u65F6\u95F4",dateSelect:"\u9009\u62E9\u65E5\u671F",weekSelect:"\u9009\u62E9\u5468",clear:"\u6E05\u9664",month:"\u6708",year:"\u5E74",previousMonth:"\u4E0A\u4E2A\u6708 (\u7FFB\u9875\u4E0A\u952E)",nextMonth:"\u4E0B\u4E2A\u6708 (\u7FFB\u9875\u4E0B\u952E)",monthSelect:"\u9009\u62E9\u6708\u4EFD",yearSelect:"\u9009\u62E9\u5E74\u4EFD",decadeSelect:"\u9009\u62E9\u5E74\u4EE3",yearFormat:"YYYY\u5E74",dayFormat:"D\u65E5",dateFormat:"YYYY\u5E74M\u6708D\u65E5",dateTimeFormat:"YYYY\u5E74M\u6708D\u65E5 HH\u65F6mm\u5206ss\u79D2",previousYear:"\u4E0A\u4E00\u5E74 (Control\u952E\u52A0\u5DE6\u65B9\u5411\u952E)",nextYear:"\u4E0B\u4E00\u5E74 (Control\u952E\u52A0\u53F3\u65B9\u5411\u952E)",previousDecade:"\u4E0A\u4E00\u5E74\u4EE3",nextDecade:"\u4E0B\u4E00\u5E74\u4EE3",previousCentury:"\u4E0A\u4E00\u4E16\u7EAA",nextCentury:"\u4E0B\u4E00\u4E16\u7EAA"},o=t,n={placeholder:"\u8BF7\u9009\u62E9\u65F6\u95F4",rangePlaceholder:["\u5F00\u59CB\u65F6\u95F4","\u7ED3\u675F\u65F6\u95F4"]};const d={lang:Object.assign({placeholder:"\u8BF7\u9009\u62E9\u65E5\u671F",yearPlaceholder:"\u8BF7\u9009\u62E9\u5E74\u4EFD",quarterPlaceholder:"\u8BF7\u9009\u62E9\u5B63\u5EA6",monthPlaceholder:"\u8BF7\u9009\u62E9\u6708\u4EFD",weekPlaceholder:"\u8BF7\u9009\u62E9\u5468",rangePlaceholder:["\u5F00\u59CB\u65E5\u671F","\u7ED3\u675F\u65E5\u671F"],rangeYearPlaceholder:["\u5F00\u59CB\u5E74\u4EFD","\u7ED3\u675F\u5E74\u4EFD"],rangeMonthPlaceholder:["\u5F00\u59CB\u6708\u4EFD","\u7ED3\u675F\u6708\u4EFD"],rangeQuarterPlaceholder:["\u5F00\u59CB\u5B63\u5EA6","\u7ED3\u675F\u5B63\u5EA6"],rangeWeekPlaceholder:["\u5F00\u59CB\u5468","\u7ED3\u675F\u5468"]},o),timePickerLocale:Object.assign({},n)};d.lang.ok="\u786E\u5B9A";var l=d,c=l;const m="${label}\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684${type}";var M={locale:"zh-cn",Pagination:a.Z,DatePicker:l,TimePicker:n,Calendar:c,global:{placeholder:"\u8BF7\u9009\u62E9"},Table:{filterTitle:"\u7B5B\u9009",filterConfirm:"\u786E\u5B9A",filterReset:"\u91CD\u7F6E",filterEmptyText:"\u65E0\u7B5B\u9009\u9879",filterCheckall:"\u5168\u9009",filterSearchPlaceholder:"\u5728\u7B5B\u9009\u9879\u4E2D\u641C\u7D22",selectAll:"\u5168\u9009\u5F53\u9875",selectInvert:"\u53CD\u9009\u5F53\u9875",selectNone:"\u6E05\u7A7A\u6240\u6709",selectionAll:"\u5168\u9009\u6240\u6709",sortTitle:"\u6392\u5E8F",expand:"\u5C55\u5F00\u884C",collapse:"\u5173\u95ED\u884C",triggerDesc:"\u70B9\u51FB\u964D\u5E8F",triggerAsc:"\u70B9\u51FB\u5347\u5E8F",cancelSort:"\u53D6\u6D88\u6392\u5E8F"},Modal:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",justOkText:"\u77E5\u9053\u4E86"},Tour:{Next:"\u4E0B\u4E00\u6B65",Previous:"\u4E0A\u4E00\u6B65",Finish:"\u7ED3\u675F\u5BFC\u89C8"},Popconfirm:{cancelText:"\u53D6\u6D88",okText:"\u786E\u5B9A"},Transfer:{titles:["",""],searchPlaceholder:"\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9",itemUnit:"\u9879",itemsUnit:"\u9879",remove:"\u5220\u9664",selectCurrent:"\u5168\u9009\u5F53\u9875",removeCurrent:"\u5220\u9664\u5F53\u9875",selectAll:"\u5168\u9009\u6240\u6709",removeAll:"\u5220\u9664\u5168\u90E8",selectInvert:"\u53CD\u9009\u5F53\u9875"},Upload:{uploading:"\u6587\u4EF6\u4E0A\u4F20\u4E2D",removeFile:"\u5220\u9664\u6587\u4EF6",uploadError:"\u4E0A\u4F20\u9519\u8BEF",previewFile:"\u9884\u89C8\u6587\u4EF6",downloadFile:"\u4E0B\u8F7D\u6587\u4EF6"},Empty:{description:"\u6682\u65E0\u6570\u636E"},Icon:{icon:"\u56FE\u6807"},Text:{edit:"\u7F16\u8F91",copy:"\u590D\u5236",copied:"\u590D\u5236\u6210\u529F",expand:"\u5C55\u5F00"},PageHeader:{back:"\u8FD4\u56DE"},Form:{optional:"\uFF08\u53EF\u9009\uFF09",defaultValidateMessages:{default:"\u5B57\u6BB5\u9A8C\u8BC1\u9519\u8BEF${label}",required:"\u8BF7\u8F93\u5165${label}",enum:"${label}\u5FC5\u987B\u662F\u5176\u4E2D\u4E00\u4E2A[${enum}]",whitespace:"${label}\u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26",date:{format:"${label}\u65E5\u671F\u683C\u5F0F\u65E0\u6548",parse:"${label}\u4E0D\u80FD\u8F6C\u6362\u4E3A\u65E5\u671F",invalid:"${label}\u662F\u4E00\u4E2A\u65E0\u6548\u65E5\u671F"},types:{string:m,method:m,array:m,object:m,number:m,date:m,boolean:m,integer:m,float:m,regexp:m,email:m,url:m,hex:m},string:{len:"${label}\u987B\u4E3A${len}\u4E2A\u5B57\u7B26",min:"${label}\u6700\u5C11${min}\u4E2A\u5B57\u7B26",max:"${label}\u6700\u591A${max}\u4E2A\u5B57\u7B26",range:"${label}\u987B\u5728${min}-${max}\u5B57\u7B26\u4E4B\u95F4"},number:{len:"${label}\u5FC5\u987B\u7B49\u4E8E${len}",min:"${label}\u6700\u5C0F\u503C\u4E3A${min}",max:"${label}\u6700\u5927\u503C\u4E3A${max}",range:"${label}\u987B\u5728${min}-${max}\u4E4B\u95F4"},array:{len:"\u987B\u4E3A${len}\u4E2A${label}",min:"\u6700\u5C11${min}\u4E2A${label}",max:"\u6700\u591A${max}\u4E2A${label}",range:"${label}\u6570\u91CF\u987B\u5728${min}-${max}\u4E4B\u95F4"},pattern:{mismatch:"${label}\u4E0E\u6A21\u5F0F\u4E0D\u5339\u914D${pattern}"}}},Image:{preview:"\u9884\u89C8"},QRCode:{expired:"\u4E8C\u7EF4\u7801\u8FC7\u671F",refresh:"\u70B9\u51FB\u5237\u65B0"},ColorPicker:{presetEmpty:"\u6682\u65E0"}}},81285:function(b,y,e){"use strict";e.d(y,{J:function(){return d}});var a=e(58757),t=e(43528),o=e(71219),s=function(l,c){var m={};for(var g in l)Object.prototype.hasOwnProperty.call(l,g)&&c.indexOf(g)<0&&(m[g]=l[g]);if(l!=null&&typeof Object.getOwnPropertySymbols=="function")for(var M=0,g=Object.getOwnPropertySymbols(l);M{const{children:m}=l,g=s(l,["children"]),M=a.useContext(n),h=a.useMemo(()=>Object.assign(Object.assign({},M),g),[M,g.prefixCls,g.mode,g.selectable]);return a.createElement(n.Provider,{value:h},a.createElement(t.BR,null,(0,o.t4)(m)?a.cloneElement(m,{ref:c}):m))});y.Z=n},85706:function(b,y,e){"use strict";e.d(y,{Z:function(){return rt}});var a=e(87854),t=e(58757),o=e(67423),s=e(87608),n=e.n(s),d=e(61836),l=function(Ke,ye){var ne={};for(var H in Ke)Object.prototype.hasOwnProperty.call(Ke,H)&&ye.indexOf(H)<0&&(ne[H]=Ke[H]);if(Ke!=null&&typeof Object.getOwnPropertySymbols=="function")for(var R=0,H=Object.getOwnPropertySymbols(Ke);R{const{prefixCls:ye,className:ne,dashed:H}=Ke,R=l(Ke,["prefixCls","className","dashed"]),{getPrefixCls:P}=t.useContext(d.E_),ae=P("menu",ye),Q=n()({[`${ae}-item-divider-dashed`]:!!H},ne);return t.createElement(a.iz,Object.assign({className:Q},R))},g=e(42156),M=e(98186),h=e(74820),S=e(37047),C=(0,t.createContext)({prefixCls:"",firstLevel:!0,inlineCollapsed:!1}),Z=Ke=>{var ye;const{className:ne,children:H,icon:R,title:P,danger:ae}=Ke,{prefixCls:Q,firstLevel:ie,direction:me,disableMenuItemTitleTooltip:je,inlineCollapsed:Ce}=t.useContext(C),Se=xe=>{const ce=t.createElement("span",{className:`${Q}-title-content`},H);return(!R||(0,S.l$)(H)&&H.type==="span")&&H&&xe&&ie&&typeof H=="string"?t.createElement("div",{className:`${Q}-inline-collapsed-noicon`},H.charAt(0)):ce},{siderCollapsed:We}=t.useContext(o.D);let re=P;typeof P=="undefined"?re=ie?H:"":P===!1&&(re="");const se={title:re};!We&&!Ce&&(se.title=null,se.open=!1);const J=(0,g.Z)(H).length;let de=t.createElement(a.ck,Object.assign({},(0,M.Z)(Ke,["title","icon","danger"]),{className:n()({[`${Q}-item-danger`]:ae,[`${Q}-item-only-child`]:(R?J+1:J)===1},ne),title:typeof P=="string"?P:void 0}),(0,S.Tm)(R,{className:n()((0,S.l$)(R)?(ye=R.props)===null||ye===void 0?void 0:ye.className:"",`${Q}-item-icon`)}),Se(Ce));return je||(de=t.createElement(h.Z,Object.assign({},se,{placement:me==="rtl"?"left":"right",overlayClassName:`${Q}-inline-collapsed-tooltip`}),de)),de},L=Ke=>{var ye;const{popupClassName:ne,icon:H,title:R,theme:P}=Ke,ae=t.useContext(C),{prefixCls:Q,inlineCollapsed:ie,theme:me}=ae,je=(0,a.Xl)();let Ce;if(!H)Ce=ie&&!je.length&&R&&typeof R=="string"?t.createElement("div",{className:`${Q}-inline-collapsed-noicon`},R.charAt(0)):t.createElement("span",{className:`${Q}-title-content`},R);else{const We=(0,S.l$)(R)&&R.type==="span";Ce=t.createElement(t.Fragment,null,(0,S.Tm)(H,{className:n()((0,S.l$)(H)?(ye=H.props)===null||ye===void 0?void 0:ye.className:"",`${Q}-item-icon`)}),We?R:t.createElement("span",{className:`${Q}-title-content`},R))}const Se=t.useMemo(()=>Object.assign(Object.assign({},ae),{firstLevel:!1}),[ae]);return t.createElement(C.Provider,{value:Se},t.createElement(a.Wd,Object.assign({},(0,M.Z)(Ke,["icon"]),{title:Ce,popupClassName:n()(Q,ne,`${Q}-${P||me}`)})))},$=e(18974),D=e(51729),T=e(90881),j=e(81285),G=function(Ke,ye){var ne={};for(var H in Ke)Object.prototype.hasOwnProperty.call(Ke,H)&&ye.indexOf(H)<0&&(ne[H]=Ke[H]);if(Ke!=null&&typeof Object.getOwnPropertySymbols=="function")for(var R=0,H=Object.getOwnPropertySymbols(Ke);R{if(ye&&typeof ye=="object"){const H=ye,{label:R,children:P,key:ae,type:Q}=H,ie=G(H,["label","children","key","type"]),me=ae!=null?ae:`tmp-${ne}`;return P||Q==="group"?Q==="group"?t.createElement(a.BW,Object.assign({key:me},ie,{title:R}),k(P)):t.createElement(L,Object.assign({key:me},ie,{title:R}),k(P)):Q==="divider"?t.createElement(m,Object.assign({key:me},ie)):t.createElement(Z,Object.assign({key:me},ie),R)}return null}).filter(ye=>ye)}function te(Ke){return t.useMemo(()=>Ke&&k(Ke),[Ke])}var Y=e(66671),q=e(78330),le=e(41086),X=e(1016),W=e(28107),x=e(52628),O=e(22151),U=Ke=>{const{componentCls:ye,motionDurationSlow:ne,horizontalLineHeight:H,colorSplit:R,lineWidth:P,lineType:ae,itemPaddingInline:Q}=Ke;return{[`${ye}-horizontal`]:{lineHeight:H,border:0,borderBottom:`${P}px ${ae} ${R}`,boxShadow:"none","&::after":{display:"block",clear:"both",height:0,content:'"\\20"'},[`${ye}-item, ${ye}-submenu`]:{position:"relative",display:"inline-block",verticalAlign:"bottom",paddingInline:Q},[`> ${ye}-item:hover, + > ${ye}-item-active, + > ${ye}-submenu ${ye}-submenu-title:hover`]:{backgroundColor:"transparent"},[`${ye}-item, ${ye}-submenu-title`]:{transition:[`border-color ${ne}`,`background ${ne}`].join(",")},[`${ye}-submenu-arrow`]:{display:"none"}}}},V=Ke=>{let{componentCls:ye,menuArrowOffset:ne}=Ke;return{[`${ye}-rtl`]:{direction:"rtl"},[`${ye}-submenu-rtl`]:{transformOrigin:"100% 0"},[`${ye}-rtl${ye}-vertical, + ${ye}-submenu-rtl ${ye}-vertical`]:{[`${ye}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateY(-${ne})`},"&::after":{transform:`rotate(45deg) translateY(${ne})`}}}}};const fe=Ke=>Object.assign({},(0,q.oN)(Ke));var ge=(Ke,ye)=>{const{componentCls:ne,itemColor:H,itemSelectedColor:R,groupTitleColor:P,itemBg:ae,subMenuItemBg:Q,itemSelectedBg:ie,activeBarHeight:me,activeBarWidth:je,activeBarBorderWidth:Ce,motionDurationSlow:Se,motionEaseInOut:We,motionEaseOut:re,itemPaddingInline:se,motionDurationMid:J,itemHoverColor:de,lineType:xe,colorSplit:ce,itemDisabledColor:Ne,dangerItemColor:Oe,dangerItemHoverColor:we,dangerItemSelectedColor:Re,dangerItemActiveBg:st,dangerItemSelectedBg:tt,itemHoverBg:Ye,itemActiveBg:ke,menuSubMenuBg:Be,horizontalItemSelectedColor:it,horizontalItemSelectedBg:Ve,horizontalItemBorderRadius:xt,horizontalItemHoverBg:_t,popupBg:Ot}=Ke;return{[`${ne}-${ye}, ${ne}-${ye} > ${ne}`]:{color:H,background:ae,[`&${ne}-root:focus-visible`]:Object.assign({},fe(Ke)),[`${ne}-item-group-title`]:{color:P},[`${ne}-submenu-selected`]:{[`> ${ne}-submenu-title`]:{color:R}},[`${ne}-item-disabled, ${ne}-submenu-disabled`]:{color:`${Ne} !important`},[`${ne}-item:not(${ne}-item-selected):not(${ne}-submenu-selected)`]:{[`&:hover, > ${ne}-submenu-title:hover`]:{color:de}},[`&:not(${ne}-horizontal)`]:{[`${ne}-item:not(${ne}-item-selected)`]:{"&:hover":{backgroundColor:Ye},"&:active":{backgroundColor:ke}},[`${ne}-submenu-title`]:{"&:hover":{backgroundColor:Ye},"&:active":{backgroundColor:ke}}},[`${ne}-item-danger`]:{color:Oe,[`&${ne}-item:hover`]:{[`&:not(${ne}-item-selected):not(${ne}-submenu-selected)`]:{color:we}},[`&${ne}-item:active`]:{background:st}},[`${ne}-item a`]:{"&, &:hover":{color:"inherit"}},[`${ne}-item-selected`]:{color:R,[`&${ne}-item-danger`]:{color:Re},["a, a:hover"]:{color:"inherit"}},[`& ${ne}-item-selected`]:{backgroundColor:ie,[`&${ne}-item-danger`]:{backgroundColor:tt}},[`${ne}-item, ${ne}-submenu-title`]:{[`&:not(${ne}-item-disabled):focus-visible`]:Object.assign({},fe(Ke))},[`&${ne}-submenu > ${ne}`]:{backgroundColor:Be},[`&${ne}-popup > ${ne}`]:{backgroundColor:Ot},[`&${ne}-horizontal`]:Object.assign(Object.assign({},ye==="dark"?{borderBottom:0}:{}),{[`> ${ne}-item, > ${ne}-submenu`]:{top:Ce,marginTop:-Ce,marginBottom:0,borderRadius:xt,"&::after":{position:"absolute",insetInline:se,bottom:0,borderBottom:`${me}px solid transparent`,transition:`border-color ${Se} ${We}`,content:'""'},["&:hover, &-active, &-open"]:{background:_t,"&::after":{borderBottomWidth:me,borderBottomColor:it}},["&-selected"]:{color:it,backgroundColor:Ve,"&:hover":{backgroundColor:Ve},"&::after":{borderBottomWidth:me,borderBottomColor:it}}}}),[`&${ne}-root`]:{[`&${ne}-inline, &${ne}-vertical`]:{borderInlineEnd:`${Ce}px ${xe} ${ce}`}},[`&${ne}-inline`]:{[`${ne}-sub${ne}-inline`]:{background:Q},[`${ne}-item, ${ne}-submenu-title`]:Ce&&je?{width:`calc(100% + ${Ce}px)`}:{},[`${ne}-item`]:{position:"relative","&::after":{position:"absolute",insetBlock:0,insetInlineEnd:0,borderInlineEnd:`${je}px solid ${R}`,transform:"scaleY(0.0001)",opacity:0,transition:[`transform ${J} ${re}`,`opacity ${J} ${re}`].join(","),content:'""'},[`&${ne}-item-danger`]:{"&::after":{borderInlineEndColor:Re}}},[`${ne}-selected, ${ne}-item-selected`]:{"&::after":{transform:"scaleY(1)",opacity:1,transition:[`transform ${J} ${We}`,`opacity ${J} ${We}`].join(",")}}}}}};const be=Ke=>{const{componentCls:ye,itemHeight:ne,itemMarginInline:H,padding:R,menuArrowSize:P,marginXS:ae,itemMarginBlock:Q}=Ke,ie=R+P+ae;return{[`${ye}-item`]:{position:"relative",overflow:"hidden"},[`${ye}-item, ${ye}-submenu-title`]:{height:ne,lineHeight:`${ne}px`,paddingInline:R,overflow:"hidden",textOverflow:"ellipsis",marginInline:H,marginBlock:Q,width:`calc(100% - ${H*2}px)`},[`> ${ye}-item, + > ${ye}-submenu > ${ye}-submenu-title`]:{height:ne,lineHeight:`${ne}px`},[`${ye}-item-group-list ${ye}-submenu-title, + ${ye}-submenu-title`]:{paddingInlineEnd:ie}}};var Ge=Ke=>{const{componentCls:ye,iconCls:ne,itemHeight:H,colorTextLightSolid:R,dropdownWidth:P,controlHeightLG:ae,motionDurationMid:Q,motionEaseOut:ie,paddingXL:me,itemMarginInline:je,fontSizeLG:Ce,motionDurationSlow:Se,paddingXS:We,boxShadowSecondary:re,collapsedWidth:se,collapsedIconSize:J}=Ke,de={height:H,lineHeight:`${H}px`,listStylePosition:"inside",listStyleType:"disc"};return[{[ye]:{["&-inline, &-vertical"]:Object.assign({[`&${ye}-root`]:{boxShadow:"none"}},be(Ke))},[`${ye}-submenu-popup`]:{[`${ye}-vertical`]:Object.assign(Object.assign({},be(Ke)),{boxShadow:re})}},{[`${ye}-submenu-popup ${ye}-vertical${ye}-sub`]:{minWidth:P,maxHeight:`calc(100vh - ${ae*2.5}px)`,padding:"0",overflow:"hidden",borderInlineEnd:0,"&:not([class*='-active'])":{overflowX:"hidden",overflowY:"auto"}}},{[`${ye}-inline`]:{width:"100%",[`&${ye}-root`]:{[`${ye}-item, ${ye}-submenu-title`]:{display:"flex",alignItems:"center",transition:[`border-color ${Se}`,`background ${Se}`,`padding ${Q} ${ie}`].join(","),[`> ${ye}-title-content`]:{flex:"auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},"> *":{flex:"none"}}},[`${ye}-sub${ye}-inline`]:{padding:0,border:0,borderRadius:0,boxShadow:"none",[`& > ${ye}-submenu > ${ye}-submenu-title`]:de,[`& ${ye}-item-group-title`]:{paddingInlineStart:me}},[`${ye}-item`]:de}},{[`${ye}-inline-collapsed`]:{width:se,[`&${ye}-root`]:{[`${ye}-item, ${ye}-submenu ${ye}-submenu-title`]:{[`> ${ye}-inline-collapsed-noicon`]:{fontSize:Ce,textAlign:"center"}}},[`> ${ye}-item, + > ${ye}-item-group > ${ye}-item-group-list > ${ye}-item, + > ${ye}-item-group > ${ye}-item-group-list > ${ye}-submenu > ${ye}-submenu-title, + > ${ye}-submenu > ${ye}-submenu-title`]:{insetInlineStart:0,paddingInline:`calc(50% - ${Ce/2}px - ${je}px)`,textOverflow:"clip",[` + ${ye}-submenu-arrow, + ${ye}-submenu-expand-icon + `]:{opacity:0},[`${ye}-item-icon, ${ne}`]:{margin:0,fontSize:J,lineHeight:`${H}px`,"+ span":{display:"inline-block",opacity:0}}},[`${ye}-item-icon, ${ne}`]:{display:"inline-block"},"&-tooltip":{pointerEvents:"none",[`${ye}-item-icon, ${ne}`]:{display:"none"},"a, a:hover":{color:R}},[`${ye}-item-group-title`]:Object.assign(Object.assign({},q.vS),{paddingInline:We})}}]};const qe=Ke=>{const{componentCls:ye,motionDurationSlow:ne,motionDurationMid:H,motionEaseInOut:R,motionEaseOut:P,iconCls:ae,iconSize:Q,iconMarginInlineEnd:ie}=Ke;return{[`${ye}-item, ${ye}-submenu-title`]:{position:"relative",display:"block",margin:0,whiteSpace:"nowrap",cursor:"pointer",transition:[`border-color ${ne}`,`background ${ne}`,`padding ${ne} ${R}`].join(","),[`${ye}-item-icon, ${ae}`]:{minWidth:Q,fontSize:Q,transition:[`font-size ${H} ${P}`,`margin ${ne} ${R}`,`color ${ne}`].join(","),"+ span":{marginInlineStart:ie,opacity:1,transition:[`opacity ${ne} ${R}`,`margin ${ne}`,`color ${ne}`].join(",")}},[`${ye}-item-icon`]:Object.assign({},(0,q.Ro)()),[`&${ye}-item-only-child`]:{[`> ${ae}, > ${ye}-item-icon`]:{marginInlineEnd:0}}},[`${ye}-item-disabled, ${ye}-submenu-disabled`]:{background:"none !important",cursor:"not-allowed","&::after":{borderColor:"transparent !important"},a:{color:"inherit !important"},[`> ${ye}-submenu-title`]:{color:"inherit !important",cursor:"not-allowed"}}}},Qe=Ke=>{const{componentCls:ye,motionDurationSlow:ne,motionEaseInOut:H,borderRadius:R,menuArrowSize:P,menuArrowOffset:ae}=Ke;return{[`${ye}-submenu`]:{["&-expand-icon, &-arrow"]:{position:"absolute",top:"50%",insetInlineEnd:Ke.margin,width:P,color:"currentcolor",transform:"translateY(-50%)",transition:`transform ${ne} ${H}, opacity ${ne}`},"&-arrow":{"&::before, &::after":{position:"absolute",width:P*.6,height:P*.15,backgroundColor:"currentcolor",borderRadius:R,transition:[`background ${ne} ${H}`,`transform ${ne} ${H}`,`top ${ne} ${H}`,`color ${ne} ${H}`].join(","),content:'""'},"&::before":{transform:`rotate(45deg) translateY(-${ae})`},"&::after":{transform:`rotate(-45deg) translateY(${ae})`}}}}},ht=Ke=>{const{antCls:ye,componentCls:ne,fontSize:H,motionDurationSlow:R,motionDurationMid:P,motionEaseInOut:ae,paddingXS:Q,padding:ie,colorSplit:me,lineWidth:je,zIndexPopup:Ce,borderRadiusLG:Se,subMenuItemBorderRadius:We,menuArrowSize:re,menuArrowOffset:se,lineType:J,menuPanelMaskInset:de,groupTitleLineHeight:xe,groupTitleFontSize:ce}=Ke;return[{"":{[`${ne}`]:Object.assign(Object.assign({},(0,q.dF)()),{["&-hidden"]:{display:"none"}})},[`${ne}-submenu-hidden`]:{display:"none"}},{[ne]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,q.Wf)(Ke)),(0,q.dF)()),{marginBottom:0,paddingInlineStart:0,fontSize:H,lineHeight:0,listStyle:"none",outline:"none",transition:`width ${R} cubic-bezier(0.2, 0, 0, 1) 0s`,["ul, ol"]:{margin:0,padding:0,listStyle:"none"},["&-overflow"]:{display:"flex",[`${ne}-item`]:{flex:"none"}},[`${ne}-item, ${ne}-submenu, ${ne}-submenu-title`]:{borderRadius:Ke.itemBorderRadius},[`${ne}-item-group-title`]:{padding:`${Q}px ${ie}px`,fontSize:ce,lineHeight:xe,transition:`all ${R}`},[`&-horizontal ${ne}-submenu`]:{transition:[`border-color ${R} ${ae}`,`background ${R} ${ae}`].join(",")},[`${ne}-submenu, ${ne}-submenu-inline`]:{transition:[`border-color ${R} ${ae}`,`background ${R} ${ae}`,`padding ${P} ${ae}`].join(",")},[`${ne}-submenu ${ne}-sub`]:{cursor:"initial",transition:[`background ${R} ${ae}`,`padding ${R} ${ae}`].join(",")},[`${ne}-title-content`]:{transition:`color ${R}`},[`${ne}-item a`]:{"&::before":{position:"absolute",inset:0,backgroundColor:"transparent",content:'""'}},[`${ne}-item-divider`]:{overflow:"hidden",lineHeight:0,borderColor:me,borderStyle:J,borderWidth:0,borderTopWidth:je,marginBlock:je,padding:0,"&-dashed":{borderStyle:"dashed"}}}),qe(Ke)),{[`${ne}-item-group`]:{[`${ne}-item-group-list`]:{margin:0,padding:0,[`${ne}-item, ${ne}-submenu-title`]:{paddingInline:`${H*2}px ${ie}px`}}},"&-submenu":{"&-popup":{position:"absolute",zIndex:Ce,borderRadius:Se,boxShadow:"none",transformOrigin:"0 0",[`&${ne}-submenu`]:{background:"transparent"},"&::before":{position:"absolute",inset:`${de}px 0 0`,zIndex:-1,width:"100%",height:"100%",opacity:0,content:'""'}},"&-placement-rightTop::before":{top:0,insetInlineStart:de},[` + &-placement-leftTop, + &-placement-bottomRight, + `]:{transformOrigin:"100% 0"},[` + &-placement-leftBottom, + &-placement-topRight, + `]:{transformOrigin:"100% 100%"},[` + &-placement-rightBottom, + &-placement-topLeft, + `]:{transformOrigin:"0 100%"},[` + &-placement-bottomLeft, + &-placement-rightTop, + `]:{transformOrigin:"0 0"},[` + &-placement-leftTop, + &-placement-leftBottom + `]:{paddingInlineEnd:Ke.paddingXS},[` + &-placement-rightTop, + &-placement-rightBottom + `]:{paddingInlineStart:Ke.paddingXS},[` + &-placement-topRight, + &-placement-topLeft + `]:{paddingBottom:Ke.paddingXS},[` + &-placement-bottomRight, + &-placement-bottomLeft + `]:{paddingTop:Ke.paddingXS},[`> ${ne}`]:Object.assign(Object.assign(Object.assign({borderRadius:Se},qe(Ke)),Qe(Ke)),{[`${ne}-item, ${ne}-submenu > ${ne}-submenu-title`]:{borderRadius:We},[`${ne}-submenu-title::after`]:{transition:`transform ${R} ${ae}`}})}}),Qe(Ke)),{[`&-inline-collapsed ${ne}-submenu-arrow, + &-inline ${ne}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateX(${se})`},"&::after":{transform:`rotate(45deg) translateX(-${se})`}},[`${ne}-submenu-open${ne}-submenu-inline > ${ne}-submenu-title > ${ne}-submenu-arrow`]:{transform:`translateY(-${re*.2}px)`,"&::after":{transform:`rotate(-45deg) translateX(-${se})`},"&::before":{transform:`rotate(45deg) translateX(${se})`}}})},{[`${ye}-layout-header`]:{[ne]:{lineHeight:"inherit"}}}]};var Et=(Ke,ye)=>(0,x.Z)("Menu",H=>{if(ye===!1)return[];const{colorBgElevated:R,colorPrimary:P,colorTextLightSolid:ae,controlHeightLG:Q,fontSize:ie,darkItemColor:me,darkDangerItemColor:je,darkItemBg:Ce,darkSubMenuItemBg:Se,darkItemSelectedColor:We,darkItemSelectedBg:re,darkDangerItemSelectedBg:se,darkItemHoverBg:J,darkGroupTitleColor:de,darkItemHoverColor:xe,darkItemDisabledColor:ce,darkDangerItemHoverColor:Ne,darkDangerItemSelectedColor:Oe,darkDangerItemActiveBg:we}=H,Re=ie/7*5,st=(0,O.TS)(H,{menuArrowSize:Re,menuHorizontalHeight:Q*1.15,menuArrowOffset:`${Re*.25}px`,menuPanelMaskInset:-7,menuSubMenuBg:R}),tt=(0,O.TS)(st,{itemColor:me,itemHoverColor:xe,groupTitleColor:de,itemSelectedColor:We,itemBg:Ce,popupBg:Ce,subMenuItemBg:Se,itemActiveBg:"transparent",itemSelectedBg:re,activeBarHeight:0,activeBarBorderWidth:0,itemHoverBg:J,itemDisabledColor:ce,dangerItemColor:je,dangerItemHoverColor:Ne,dangerItemSelectedColor:Oe,dangerItemActiveBg:we,dangerItemSelectedBg:se,menuSubMenuBg:Se,horizontalItemSelectedColor:ae,horizontalItemSelectedBg:P});return[ht(st),U(st),Ge(st),ge(st,"light"),ge(tt,"dark"),V(st),(0,le.Z)(st),(0,X.oN)(st,"slide-up"),(0,X.oN)(st,"slide-down"),(0,W._y)(st,"zoom-big")]},H=>{const{colorPrimary:R,colorError:P,colorTextDisabled:ae,colorErrorBg:Q,colorText:ie,colorTextDescription:me,colorBgContainer:je,colorFillAlter:Ce,colorFillContent:Se,lineWidth:We,lineWidthBold:re,controlItemBgActive:se,colorBgTextHover:J,controlHeightLG:de,lineHeight:xe,colorBgElevated:ce,marginXXS:Ne,padding:Oe,fontSize:we,controlHeightSM:Re,fontSizeLG:st,colorTextLightSolid:tt,colorErrorHover:Ye}=H,ke=new Y.C(tt).setAlpha(.65).toRgbString();return{dropdownWidth:160,zIndexPopup:H.zIndexPopupBase+50,radiusItem:H.borderRadiusLG,itemBorderRadius:H.borderRadiusLG,radiusSubMenuItem:H.borderRadiusSM,subMenuItemBorderRadius:H.borderRadiusSM,colorItemText:ie,itemColor:ie,colorItemTextHover:ie,itemHoverColor:ie,colorItemTextHoverHorizontal:R,horizontalItemHoverColor:R,colorGroupTitle:me,groupTitleColor:me,colorItemTextSelected:R,itemSelectedColor:R,colorItemTextSelectedHorizontal:R,horizontalItemSelectedColor:R,colorItemBg:je,itemBg:je,colorItemBgHover:J,itemHoverBg:J,colorItemBgActive:Se,itemActiveBg:se,colorSubItemBg:Ce,subMenuItemBg:Ce,colorItemBgSelected:se,itemSelectedBg:se,colorItemBgSelectedHorizontal:"transparent",horizontalItemSelectedBg:"transparent",colorActiveBarWidth:0,activeBarWidth:0,colorActiveBarHeight:re,activeBarHeight:re,colorActiveBarBorderSize:We,activeBarBorderWidth:We,colorItemTextDisabled:ae,itemDisabledColor:ae,colorDangerItemText:P,dangerItemColor:P,colorDangerItemTextHover:P,dangerItemHoverColor:P,colorDangerItemTextSelected:P,dangerItemSelectedColor:P,colorDangerItemBgActive:Q,dangerItemActiveBg:Q,colorDangerItemBgSelected:Q,dangerItemSelectedBg:Q,itemMarginInline:H.marginXXS,horizontalItemBorderRadius:0,horizontalItemHoverBg:"transparent",itemHeight:de,groupTitleLineHeight:xe,collapsedWidth:de*2,popupBg:ce,itemMarginBlock:Ne,itemPaddingInline:Oe,horizontalLineHeight:`${de*1.15}px`,iconSize:we,iconMarginInlineEnd:Re-we,collapsedIconSize:st,groupTitleFontSize:we,darkItemDisabledColor:new Y.C(tt).setAlpha(.25).toRgbString(),darkItemColor:ke,darkDangerItemColor:P,darkItemBg:"#001529",darkSubMenuItemBg:"#000c17",darkItemSelectedColor:tt,darkItemSelectedBg:R,darkDangerItemSelectedBg:P,darkItemHoverBg:"transparent",darkGroupTitleColor:ke,darkItemHoverColor:tt,darkDangerItemHoverColor:Ye,darkDangerItemSelectedColor:tt,darkDangerItemActiveBg:P}},{deprecatedTokens:[["colorGroupTitle","groupTitleColor"],["radiusItem","itemBorderRadius"],["radiusSubMenuItem","subMenuItemBorderRadius"],["colorItemText","itemColor"],["colorItemTextHover","itemHoverColor"],["colorItemTextHoverHorizontal","horizontalItemHoverColor"],["colorItemTextSelected","itemSelectedColor"],["colorItemTextSelectedHorizontal","horizontalItemSelectedColor"],["colorItemTextDisabled","itemDisabledColor"],["colorDangerItemText","dangerItemColor"],["colorDangerItemTextHover","dangerItemHoverColor"],["colorDangerItemTextSelected","dangerItemSelectedColor"],["colorDangerItemBgActive","dangerItemActiveBg"],["colorDangerItemBgSelected","dangerItemSelectedBg"],["colorItemBg","itemBg"],["colorItemBgHover","itemHoverBg"],["colorSubItemBg","subMenuItemBg"],["colorItemBgActive","itemActiveBg"],["colorItemBgSelectedHorizontal","horizontalItemSelectedBg"],["colorActiveBarWidth","activeBarWidth"],["colorActiveBarHeight","activeBarHeight"],["colorActiveBarBorderSize","activeBarBorderWidth"],["colorItemBgSelected","itemSelectedBg"]]})(Ke),gt=function(Ke,ye){var ne={};for(var H in Ke)Object.prototype.hasOwnProperty.call(Ke,H)&&ye.indexOf(H)<0&&(ne[H]=Ke[H]);if(Ke!=null&&typeof Object.getOwnPropertySymbols=="function")for(var R=0,H=Object.getOwnPropertySymbols(Ke);R{var ne,H;const R=t.useContext(j.Z),P=R||{},{getPrefixCls:ae,getPopupContainer:Q,direction:ie,menu:me}=t.useContext(d.E_),je=ae(),{prefixCls:Ce,className:Se,style:We,theme:re="light",expandIcon:se,_internalDisableMenuItemTitleTooltip:J,inlineCollapsed:de,siderCollapsed:xe,items:ce,children:Ne,rootClassName:Oe,mode:we,selectable:Re,onClick:st,overflowedIndicatorPopupClassName:tt}=Ke,Ye=gt(Ke,["prefixCls","className","style","theme","expandIcon","_internalDisableMenuItemTitleTooltip","inlineCollapsed","siderCollapsed","items","children","rootClassName","mode","selectable","onClick","overflowedIndicatorPopupClassName"]),ke=(0,M.Z)(Ye,["collapsedWidth"]),Be=te(ce)||Ne;(ne=P.validator)===null||ne===void 0||ne.call(P,{mode:we});const it=(0,D.Z)(function(){var ut;st==null||st.apply(void 0,arguments),(ut=P.onClick)===null||ut===void 0||ut.call(P)}),Ve=P.mode||we,xt=Re!=null?Re:P.selectable,_t=t.useMemo(()=>xe!==void 0?xe:de,[de,xe]),Ot={horizontal:{motionName:`${je}-slide-up`},inline:(0,T.Z)(je),other:{motionName:`${je}-zoom-big`}},wt=ae("menu",Ce||P.prefixCls),[Yt,bt]=Et(wt,!R),ze=n()(`${wt}-${re}`,me==null?void 0:me.className,Se);let nt;if(typeof se=="function")nt=se;else{const ut=se||P.expandIcon;nt=(0,S.Tm)(ut,{className:n()(`${wt}-submenu-expand-icon`,(0,S.l$)(ut)?(H=ut.props)===null||H===void 0?void 0:H.className:"")})}const St=t.useMemo(()=>({prefixCls:wt,inlineCollapsed:_t||!1,direction:ie,firstLevel:!0,theme:re,mode:Ve,disableMenuItemTitleTooltip:J}),[wt,_t,ie,J,re]);return Yt(t.createElement(j.Z.Provider,{value:null},t.createElement(C.Provider,{value:St},t.createElement(a.ZP,Object.assign({getPopupContainer:Q,overflowedIndicator:t.createElement($.Z,null),overflowedIndicatorPopupClassName:n()(wt,`${wt}-${re}`,tt),mode:Ve,selectable:xt,onClick:it},ke,{inlineCollapsed:_t,style:Object.assign(Object.assign({},me==null?void 0:me.style),We),className:ze,prefixCls:wt,direction:ie,defaultMotions:Ot,expandIcon:nt,ref:ye,rootClassName:n()(Oe,bt)}),Be))))});const Xe=(0,t.forwardRef)((Ke,ye)=>{const ne=(0,t.useRef)(null),H=t.useContext(o.D);return(0,t.useImperativeHandle)(ye,()=>({menu:ne.current,focus:R=>{var P;(P=ne.current)===null||P===void 0||P.focus(R)}})),t.createElement($e,Object.assign({ref:ne},Ke,H))});Xe.Item=Z,Xe.SubMenu=L,Xe.Divider=m,Xe.ItemGroup=a.BW;var rt=Xe},80209:function(b,y,e){"use strict";e.d(y,{CW:function(){return w}});var a=e(85678),t=e(79999),o=e(69831),s=e(33064),n=e(25755),d=e(87608),l=e.n(d),c=e(75248),m=e(58757),g=e(61836),M=e(13952),h=function(z,Z){var N={};for(var L in z)Object.prototype.hasOwnProperty.call(z,L)&&Z.indexOf(L)<0&&(N[L]=z[L]);if(z!=null&&typeof Object.getOwnPropertySymbols=="function")for(var $=0,L=Object.getOwnPropertySymbols(z);${let{prefixCls:Z,type:N,icon:L,children:$}=z;return m.createElement("div",{className:l()(`${Z}-custom-content`,`${Z}-${N}`)},L||S[N],m.createElement("span",null,$))},C=z=>{const{prefixCls:Z,className:N,type:L,icon:$,content:D}=z,T=h(z,["prefixCls","className","type","icon","content"]),{getPrefixCls:j}=m.useContext(g.E_),G=Z||j("message"),[,k]=(0,M.Z)(G);return m.createElement(c.q,Object.assign({},T,{prefixCls:G,className:l()(N,k,`${G}-notice-pure-panel`),eventKey:"pure",duration:null,content:m.createElement(w,{prefixCls:G,type:L,icon:$},D)}))};y.ZP=C},84045:function(b,y,e){"use strict";var a=e(29140),t=e(58757),o=e(52323),s=e(42505),n=e(80209),d=e(45054),l=e(86538);let c=null,m=k=>k(),g=[],M={};function h(){const{prefixCls:k,getContainer:te,duration:Y,rtl:q,maxCount:le,top:X}=M,W=k!=null?k:(0,s.w6)().getPrefixCls("message"),x=(te==null?void 0:te())||document.body;return{prefixCls:W,getContainer:()=>x,duration:Y,rtl:q,maxCount:le,top:X}}const S=t.forwardRef((k,te)=>{const[Y,q]=t.useState(h),[le,X]=(0,d.K)(Y),W=(0,s.w6)(),x=W.getRootPrefixCls(),O=W.getIconPrefixCls(),_=W.getTheme(),U=()=>{q(h)};return t.useEffect(U,[]),t.useImperativeHandle(te,()=>{const A=Object.assign({},le);return Object.keys(A).forEach(V=>{A[V]=function(){return U(),le[V].apply(le,arguments)}}),{instance:A,sync:U}}),t.createElement(s.ZP,{prefixCls:x,iconPrefixCls:O,theme:_},X)});function w(){if(!c){const k=document.createDocumentFragment(),te={fragment:k};c=te,m(()=>{(0,o.s)(t.createElement(S,{ref:Y=>{const{instance:q,sync:le}=Y||{};Promise.resolve().then(()=>{!te.instance&&q&&(te.instance=q,te.sync=le,w())})}}),k)});return}c.instance&&(g.forEach(k=>{const{type:te,skipped:Y}=k;if(!Y)switch(te){case"open":{m(()=>{const q=c.instance.open(Object.assign(Object.assign({},M),k.config));q==null||q.then(k.resolve),k.setCloseFn(q)});break}case"destroy":m(()=>{c==null||c.instance.destroy(k.key)});break;default:m(()=>{var q;const le=(q=c.instance)[te].apply(q,(0,a.Z)(k.args));le==null||le.then(k.resolve),k.setCloseFn(le)})}}),g=[])}function C(k){M=Object.assign(Object.assign({},M),k),m(()=>{var te;(te=c==null?void 0:c.sync)===null||te===void 0||te.call(c)})}function z(k){const te=(0,l.J)(Y=>{let q;const le={type:"open",config:k,resolve:Y,setCloseFn:X=>{q=X}};return g.push(le),()=>{q?m(()=>{q()}):le.skipped=!0}});return w(),te}function Z(k,te){const Y=(0,l.J)(q=>{let le;const X={type:k,args:te,resolve:q,setCloseFn:W=>{le=W}};return g.push(X),()=>{le?m(()=>{le()}):X.skipped=!0}});return w(),Y}function N(k){g.push({type:"destroy",key:k}),w()}const L=["success","info","warning","error","loading"],D={open:z,destroy:N,config:C,useMessage:d.Z,_InternalPanelDoNotUseOrYouWillBeFired:n.ZP};L.forEach(k=>{D[k]=function(){for(var te=arguments.length,Y=new Array(te),q=0;q{};let j=null,G=null;y.ZP=D},13952:function(b,y,e){"use strict";var a=e(57793),t=e(78330),o=e(52628),s=e(22151);const n=d=>{const{componentCls:l,iconCls:c,boxShadow:m,colorText:g,colorSuccess:M,colorError:h,colorWarning:S,colorInfo:w,fontSizeLG:C,motionEaseInOutCirc:z,motionDurationSlow:Z,marginXS:N,paddingXS:L,borderRadiusLG:$,zIndexPopup:D,contentPadding:T,contentBg:j}=d,G=`${l}-notice`,k=new a.E4("MessageMoveIn",{"0%":{padding:0,transform:"translateY(-100%)",opacity:0},"100%":{padding:L,transform:"translateY(0)",opacity:1}}),te=new a.E4("MessageMoveOut",{"0%":{maxHeight:d.height,padding:L,opacity:1},"100%":{maxHeight:0,padding:0,opacity:0}}),Y={padding:L,textAlign:"center",[`${l}-custom-content > ${c}`]:{verticalAlign:"text-bottom",marginInlineEnd:N,fontSize:C},[`${G}-content`]:{display:"inline-block",padding:T,background:j,borderRadius:$,boxShadow:m,pointerEvents:"all"},[`${l}-success > ${c}`]:{color:M},[`${l}-error > ${c}`]:{color:h},[`${l}-warning > ${c}`]:{color:S},[`${l}-info > ${c}, + ${l}-loading > ${c}`]:{color:w}};return[{[l]:Object.assign(Object.assign({},(0,t.Wf)(d)),{color:g,position:"fixed",top:N,width:"100%",pointerEvents:"none",zIndex:D,[`${l}-move-up`]:{animationFillMode:"forwards"},[` + ${l}-move-up-appear, + ${l}-move-up-enter + `]:{animationName:k,animationDuration:Z,animationPlayState:"paused",animationTimingFunction:z},[` + ${l}-move-up-appear${l}-move-up-appear-active, + ${l}-move-up-enter${l}-move-up-enter-active + `]:{animationPlayState:"running"},[`${l}-move-up-leave`]:{animationName:te,animationDuration:Z,animationPlayState:"paused",animationTimingFunction:z},[`${l}-move-up-leave${l}-move-up-leave-active`]:{animationPlayState:"running"},"&-rtl":{direction:"rtl",span:{direction:"rtl"}}})},{[l]:{[G]:Object.assign({},Y)}},{[`${l}-notice-pure-panel`]:Object.assign(Object.assign({},Y),{padding:0,textAlign:"start"})}]};y.Z=(0,o.Z)("Message",d=>{const l=(0,s.TS)(d,{height:150});return[n(l)]},d=>({zIndexPopup:d.zIndexPopupBase+10,contentBg:d.colorBgElevated,contentPadding:`${(d.controlHeightLG-d.fontSize*d.lineHeight)/2}px ${d.paddingSM}px`}),{clientOnly:!0})},45054:function(b,y,e){"use strict";e.d(y,{K:function(){return C},Z:function(){return z}});var a=e(52495),t=e(87608),o=e.n(t),s=e(75248),n=e(58757),d=e(61836),l=e(80209),c=e(13952),m=e(86538),g=function(Z,N){var L={};for(var $ in Z)Object.prototype.hasOwnProperty.call(Z,$)&&N.indexOf($)<0&&(L[$]=Z[$]);if(Z!=null&&typeof Object.getOwnPropertySymbols=="function")for(var D=0,$=Object.getOwnPropertySymbols(Z);D<$.length;D++)N.indexOf($[D])<0&&Object.prototype.propertyIsEnumerable.call(Z,$[D])&&(L[$[D]]=Z[$[D]]);return L};const M=8,h=3,S=n.forwardRef((Z,N)=>{const{top:L,prefixCls:$,getContainer:D,maxCount:T,duration:j=h,rtl:G,transitionName:k,onAllRemoved:te}=Z,{getPrefixCls:Y,getPopupContainer:q,message:le}=n.useContext(d.E_),X=$||Y("message"),[,W]=(0,c.Z)(X),x=()=>({left:"50%",transform:"translateX(-50%)",top:L!=null?L:M}),O=()=>o()(W,{[`${X}-rtl`]:G}),_=()=>(0,m.g)(X,k),U=n.createElement("span",{className:`${X}-close-x`},n.createElement(a.Z,{className:`${X}-close-icon`})),[A,V]=(0,s.l)({prefixCls:X,style:x,className:O,motion:_,closable:!1,closeIcon:U,duration:j,getContainer:()=>(D==null?void 0:D())||(q==null?void 0:q())||document.body,maxCount:T,onAllRemoved:te});return n.useImperativeHandle(N,()=>Object.assign(Object.assign({},A),{prefixCls:X,hashId:W,message:le})),V});let w=0;function C(Z){const N=n.useRef(null);return[n.useMemo(()=>{const $=k=>{var te;(te=N.current)===null||te===void 0||te.close(k)},D=k=>{if(!N.current){const ge=()=>{};return ge.then=()=>{},ge}const{open:te,prefixCls:Y,hashId:q,message:le}=N.current,X=`${Y}-notice`,{content:W,icon:x,type:O,key:_,className:U,style:A,onClose:V}=k,fe=g(k,["content","icon","type","key","className","style","onClose"]);let pe=_;return pe==null&&(w+=1,pe=`antd-message-${w}`),(0,m.J)(ge=>(te(Object.assign(Object.assign({},fe),{key:pe,content:n.createElement(l.CW,{prefixCls:Y,type:O,icon:x},W),placement:"top",className:o()(O&&`${X}-${O}`,q,U,le==null?void 0:le.className),style:Object.assign(Object.assign({},le==null?void 0:le.style),A),onClose:()=>{V==null||V(),ge()}})),()=>{$(pe)}))},j={open:D,destroy:k=>{var te;k!==void 0?$(k):(te=N.current)===null||te===void 0||te.destroy()}};return["info","success","warning","error","loading"].forEach(k=>{const te=(Y,q,le)=>{let X;Y&&typeof Y=="object"&&"content"in Y?X=Y:X={content:Y};let W,x;typeof q=="function"?x=q:(W=q,x=le);const O=Object.assign(Object.assign({onClose:x,duration:W},X),{type:k});return D(O)};j[k]=te}),j},[]),n.createElement(S,Object.assign({key:"message-holder"},Z,{ref:N}))]}function z(Z){return C(Z)}},86538:function(b,y,e){"use strict";e.d(y,{J:function(){return t},g:function(){return a}});function a(o,s){return{motionName:s!=null?s:`${o}-move-up`}}function t(o){let s;const n=new Promise(l=>{s=o(()=>{l(!0)})}),d=()=>{s==null||s()};return d.then=(l,c)=>n.then(l,c),d.promise=n,d}},76370:function(b,y,e){"use strict";e.d(y,{O:function(){return S}});var a=e(85678),t=e(79999),o=e(69831),s=e(33064),n=e(87608),d=e.n(n),l=e(58757),c=e(99086),m=e(90881),g=e(42505),M=e(29487),h=e(65401);function S(C){const{icon:z,onCancel:Z,onOk:N,close:L,onConfirm:$,isSilent:D,okText:T,okButtonProps:j,cancelText:G,cancelButtonProps:k,confirmPrefixCls:te,rootPrefixCls:Y,type:q,okCancel:le,footer:X,locale:W}=C;let x=z;if(!z&&z!==null)switch(q){case"info":x=l.createElement(s.Z,null);break;case"success":x=l.createElement(a.Z,null);break;case"error":x=l.createElement(t.Z,null);break;default:x=l.createElement(o.Z,null)}const O=C.okType||"primary",_=le!=null?le:q==="confirm",U=C.autoFocusButton===null?!1:C.autoFocusButton||"ok",[A]=(0,M.Z)("Modal"),V=W||A,fe=_&&l.createElement(c.Z,{isSilent:D,actionFn:Z,close:function(){L==null||L.apply(void 0,arguments),$==null||$(!1)},autoFocus:U==="cancel",buttonProps:k,prefixCls:`${Y}-btn`},G||(V==null?void 0:V.cancelText));return l.createElement("div",{className:`${te}-body-wrapper`},l.createElement("div",{className:`${te}-body`},x,C.title===void 0?null:l.createElement("span",{className:`${te}-title`},C.title),l.createElement("div",{className:`${te}-content`},C.content)),X===void 0?l.createElement("div",{className:`${te}-btns`},fe,l.createElement(c.Z,{isSilent:D,type:O,actionFn:N,close:function(){L==null||L.apply(void 0,arguments),$==null||$(!0)},autoFocus:U==="ok",buttonProps:j,prefixCls:`${Y}-btn`},T||(_?V==null?void 0:V.okText:V==null?void 0:V.justOkText))):X)}const w=C=>{const{close:z,zIndex:Z,afterClose:N,visible:L,open:$,keyboard:D,centered:T,getContainer:j,maskStyle:G,direction:k,prefixCls:te,wrapClassName:Y,rootPrefixCls:q,iconPrefixCls:le,theme:X,bodyStyle:W,closable:x=!1,closeIcon:O,modalRender:_,focusTriggerAfterClose:U}=C,A=`${te}-confirm`,V=C.width||416,fe=C.style||{},pe=C.mask===void 0?!0:C.mask,ge=C.maskClosable===void 0?!1:C.maskClosable,be=d()(A,`${A}-${C.type}`,{[`${A}-rtl`]:k==="rtl"},C.className);return l.createElement(g.ZP,{prefixCls:q,iconPrefixCls:le,direction:k,theme:X},l.createElement(h.Z,{prefixCls:te,className:be,wrapClassName:d()({[`${A}-centered`]:!!C.centered},Y),onCancel:()=>z==null?void 0:z({triggerCancel:!0}),open:$,title:"",footer:null,transitionName:(0,m.m)(q,"zoom",C.transitionName),maskTransitionName:(0,m.m)(q,"fade",C.maskTransitionName),mask:pe,maskClosable:ge,maskStyle:G,style:fe,bodyStyle:W,width:V,zIndex:Z,afterClose:N,keyboard:D,centered:T,getContainer:j,closable:x,closeIcon:O,modalRender:_,focusTriggerAfterClose:U},l.createElement(S,Object.assign({},C,{confirmPrefixCls:A}))))};y.Z=w},65401:function(b,y,e){"use strict";var a=e(52495),t=e(87608),o=e.n(t),s=e(67117),n=e(58757),d=e(88858),l=e(90881),c=e(32792),m=e(61836),g=e(81496),M=e(43528),h=e(78669),S=e(76073),w=function(N,L){var $={};for(var D in N)Object.prototype.hasOwnProperty.call(N,D)&&L.indexOf(D)<0&&($[D]=N[D]);if(N!=null&&typeof Object.getOwnPropertySymbols=="function")for(var T=0,D=Object.getOwnPropertySymbols(N);T{C={x:N.pageX,y:N.pageY},setTimeout(()=>{C=null},100)};(0,c.jD)()&&document.documentElement.addEventListener("click",z,!0);const Z=N=>{var L;const{getPopupContainer:$,getPrefixCls:D,direction:T,modal:j}=n.useContext(m.E_),G=Ht=>{const{onCancel:$e}=N;$e==null||$e(Ht)},k=Ht=>{const{onOk:$e}=N;$e==null||$e(Ht)},{prefixCls:te,className:Y,rootClassName:q,open:le,wrapClassName:X,centered:W,getContainer:x,closeIcon:O,closable:_,focusTriggerAfterClose:U=!0,style:A,visible:V,width:fe=520,footer:pe}=N,ge=w(N,["prefixCls","className","rootClassName","open","wrapClassName","centered","getContainer","closeIcon","closable","focusTriggerAfterClose","style","visible","width","footer"]),be=D("modal",te),Te=D(),[Ge,qe]=(0,S.Z)(be),Qe=o()(X,{[`${be}-centered`]:!!W,[`${be}-wrap-rtl`]:T==="rtl"}),ht=pe===void 0?n.createElement(h.$,Object.assign({},N,{onOk:k,onCancel:G})):pe,[Et,gt]=(0,d.Z)(_,O,Ht=>(0,h.b)(be,Ht),n.createElement(a.Z,{className:`${be}-close-icon`}),!0);return Ge(n.createElement(M.BR,null,n.createElement(g.Ux,{status:!0,override:!0},n.createElement(s.Z,Object.assign({width:fe},ge,{getContainer:x===void 0?$:x,prefixCls:be,rootClassName:o()(qe,q),wrapClassName:Qe,footer:ht,visible:le!=null?le:V,mousePosition:(L=ge.mousePosition)!==null&&L!==void 0?L:C,onClose:G,closable:Et,closeIcon:gt,focusTriggerAfterClose:U,transitionName:(0,l.m)(Te,"zoom",N.transitionName),maskTransitionName:(0,l.m)(Te,"fade",N.maskTransitionName),className:o()(qe,Y,j==null?void 0:j.className),style:Object.assign(Object.assign({},j==null?void 0:j.style),A)})))))};y.Z=Z},49316:function(b,y,e){"use strict";e.d(y,{AQ:function(){return C},Au:function(){return z},ZP:function(){return M},ai:function(){return Z},cw:function(){return S},uW:function(){return h},vq:function(){return w}});var a=e(29140),t=e(52323),o=e(58757),s=e(42505),n=e(76370),d=e(98702),l=e(67228),c=function(N,L){var $={};for(var D in N)Object.prototype.hasOwnProperty.call(N,D)&&L.indexOf(D)<0&&($[D]=N[D]);if(N!=null&&typeof Object.getOwnPropertySymbols=="function")for(var T=0,D=Object.getOwnPropertySymbols(N);TX&&X.triggerCancel);N.onCancel&&le&&N.onCancel.apply(N,[()=>{}].concat((0,a.Z)(Y.slice(1))));for(let X=0;X{const x=(0,l.A)(),{getPrefixCls:O,getIconPrefixCls:_,getTheme:U}=(0,s.w6)(),A=O(void 0,g()),V=le||`${A}-modal`,fe=_(),pe=U();let ge=X;ge===!1&&(ge=void 0),(0,t.s)(o.createElement(n.Z,Object.assign({},W,{getContainer:ge,prefixCls:V,rootPrefixCls:A,iconPrefixCls:fe,okText:Y,locale:x,theme:pe,cancelText:q||x.cancelText})),L)})}function G(){for(var te=arguments.length,Y=new Array(te),q=0;q{typeof N.afterClose=="function"&&N.afterClose(),T.apply(this,Y)}}),$.visible&&delete $.visible,j($)}function k(te){typeof te=="function"?$=te($):$=Object.assign(Object.assign({},$),te),j($)}return j($),d.Z.push(G),{destroy:G,update:k}}function h(N){return Object.assign(Object.assign({},N),{type:"warning"})}function S(N){return Object.assign(Object.assign({},N),{type:"info"})}function w(N){return Object.assign(Object.assign({},N),{type:"success"})}function C(N){return Object.assign(Object.assign({},N),{type:"error"})}function z(N){return Object.assign(Object.assign({},N),{type:"confirm"})}function Z(N){let{rootPrefixCls:L}=N;m=L}},98702:function(b,y){"use strict";const e=[];y.Z=e},62109:function(b,y,e){"use strict";e.d(y,{Z:function(){return L}});var a=e(49316),t=e(98702),o=e(65401),s=e(87608),n=e.n(s),d=e(67117),l=e(58757),c=e(61836),m=e(76370),g=e(78669),M=e(76073),h=e(15018),S=function($,D){var T={};for(var j in $)Object.prototype.hasOwnProperty.call($,j)&&D.indexOf(j)<0&&(T[j]=$[j]);if($!=null&&typeof Object.getOwnPropertySymbols=="function")for(var G=0,j=Object.getOwnPropertySymbols($);G{const{prefixCls:D,className:T,closeIcon:j,closable:G,type:k,title:te,children:Y}=$,q=S($,["prefixCls","className","closeIcon","closable","type","title","children"]),{getPrefixCls:le}=l.useContext(c.E_),X=le(),W=D||le("modal"),[,x]=(0,M.Z)(W),O=`${W}-confirm`;let _={};return k?_={closable:G!=null?G:!1,title:"",footer:"",children:l.createElement(m.O,Object.assign({},$,{confirmPrefixCls:O,rootPrefixCls:X,content:Y}))}:_={closable:G!=null?G:!0,title:te,footer:$.footer===void 0?l.createElement(g.$,Object.assign({},$)):$.footer,children:Y},l.createElement(d.s,Object.assign({prefixCls:W,className:n()(x,`${W}-pure-panel`,k&&O,k&&`${O}-${k}`,T)},q,{closeIcon:(0,g.b)(W,j),closable:G},_))};var C=(0,h.i)(w),z=e(65172);function Z($){return(0,a.ZP)((0,a.uW)($))}const N=o.Z;N.useModal=z.Z,N.info=function(D){return(0,a.ZP)((0,a.cw)(D))},N.success=function(D){return(0,a.ZP)((0,a.vq)(D))},N.error=function(D){return(0,a.ZP)((0,a.AQ)(D))},N.warning=Z,N.warn=Z,N.confirm=function(D){return(0,a.ZP)((0,a.Au)(D))},N.destroyAll=function(){for(;t.Z.length;){const D=t.Z.pop();D&&D()}},N.config=a.ai,N._InternalPanelDoNotUseOrYouWillBeFired=C;var L=N},67228:function(b,y,e){"use strict";e.d(y,{A:function(){return d},f:function(){return n}});var a=e(80076);let t=Object.assign({},a.Z.Modal),o=[];const s=()=>o.reduce((l,c)=>Object.assign(Object.assign({},l),c),a.Z.Modal);function n(l){if(l){const c=Object.assign({},l);return o.push(c),t=s(),()=>{o=o.filter(m=>m!==c),t=s()}}t=Object.assign({},a.Z.Modal)}function d(){return t}},78669:function(b,y,e){"use strict";e.d(y,{$:function(){return m},b:function(){return c}});var a=e(52495),t=e(58757),o=e(12562),s=e(70921),n=e(92428),d=e(29487),l=e(67228);function c(g,M){return t.createElement("span",{className:`${g}-close-x`},M||t.createElement(a.Z,{className:`${g}-close-icon`}))}const m=g=>{const{okText:M,okType:h="primary",cancelText:S,confirmLoading:w,onOk:C,onCancel:z,okButtonProps:Z,cancelButtonProps:N}=g,[L]=(0,d.Z)("Modal",(0,l.A)());return t.createElement(n.n,{disabled:!1},t.createElement(o.ZP,Object.assign({onClick:z},N),S||(L==null?void 0:L.cancelText)),t.createElement(o.ZP,Object.assign({},(0,s.n)(h),{loading:w,onClick:C},Z),M||(L==null?void 0:L.okText)))}},76073:function(b,y,e){"use strict";e.d(y,{Q:function(){return l}});var a=e(78330),t=e(7239),o=e(28107),s=e(52628),n=e(22151);function d(h){return{position:h,inset:0}}const l=h=>{const{componentCls:S,antCls:w}=h;return[{[`${S}-root`]:{[`${S}${w}-zoom-enter, ${S}${w}-zoom-appear`]:{transform:"none",opacity:0,animationDuration:h.motionDurationSlow,userSelect:"none"},[`${S}${w}-zoom-leave ${S}-content`]:{pointerEvents:"none"},[`${S}-mask`]:Object.assign(Object.assign({},d("fixed")),{zIndex:h.zIndexPopupBase,height:"100%",backgroundColor:h.colorBgMask,pointerEvents:"none",[`${S}-hidden`]:{display:"none"}}),[`${S}-wrap`]:Object.assign(Object.assign({},d("fixed")),{zIndex:h.zIndexPopupBase,overflow:"auto",outline:0,WebkitOverflowScrolling:"touch",[`&:has(${S}${w}-zoom-enter), &:has(${S}${w}-zoom-appear)`]:{pointerEvents:"none"}})}},{[`${S}-root`]:(0,t.J$)(h)}]},c=h=>{const{componentCls:S}=h;return[{[`${S}-root`]:{[`${S}-wrap-rtl`]:{direction:"rtl"},[`${S}-centered`]:{textAlign:"center","&::before":{display:"inline-block",width:0,height:"100%",verticalAlign:"middle",content:'""'},[S]:{top:0,display:"inline-block",paddingBottom:0,textAlign:"start",verticalAlign:"middle"}},[`@media (max-width: ${h.screenSMMax})`]:{[S]:{maxWidth:"calc(100vw - 16px)",margin:`${h.marginXS} auto`},[`${S}-centered`]:{[S]:{flex:1}}}}},{[S]:Object.assign(Object.assign({},(0,a.Wf)(h)),{pointerEvents:"none",position:"relative",top:100,width:"auto",maxWidth:`calc(100vw - ${h.margin*2}px)`,margin:"0 auto",paddingBottom:h.paddingLG,[`${S}-title`]:{margin:0,color:h.titleColor,fontWeight:h.fontWeightStrong,fontSize:h.titleFontSize,lineHeight:h.titleLineHeight,wordWrap:"break-word"},[`${S}-content`]:{position:"relative",backgroundColor:h.contentBg,backgroundClip:"padding-box",border:0,borderRadius:h.borderRadiusLG,boxShadow:h.boxShadow,pointerEvents:"auto",padding:`${h.paddingMD}px ${h.paddingContentHorizontalLG}px`},[`${S}-close`]:Object.assign({position:"absolute",top:(h.modalHeaderHeight-h.modalCloseBtnSize)/2,insetInlineEnd:(h.modalHeaderHeight-h.modalCloseBtnSize)/2,zIndex:h.zIndexPopupBase+10,padding:0,color:h.modalCloseIconColor,fontWeight:h.fontWeightStrong,lineHeight:1,textDecoration:"none",background:"transparent",borderRadius:h.borderRadiusSM,width:h.modalCloseBtnSize,height:h.modalCloseBtnSize,border:0,outline:0,cursor:"pointer",transition:`color ${h.motionDurationMid}, background-color ${h.motionDurationMid}`,"&-x":{display:"flex",fontSize:h.fontSizeLG,fontStyle:"normal",lineHeight:`${h.modalCloseBtnSize}px`,justifyContent:"center",textTransform:"none",textRendering:"auto"},"&:hover":{color:h.modalIconHoverColor,backgroundColor:h.wireframe?"transparent":h.colorFillContent,textDecoration:"none"},"&:active":{backgroundColor:h.wireframe?"transparent":h.colorFillContentHover}},(0,a.Qy)(h)),[`${S}-header`]:{color:h.colorText,background:h.headerBg,borderRadius:`${h.borderRadiusLG}px ${h.borderRadiusLG}px 0 0`,marginBottom:h.marginXS},[`${S}-body`]:{fontSize:h.fontSize,lineHeight:h.lineHeight,wordWrap:"break-word"},[`${S}-footer`]:{textAlign:"end",background:h.footerBg,marginTop:h.marginSM,[`${h.antCls}-btn + ${h.antCls}-btn:not(${h.antCls}-dropdown-trigger)`]:{marginBottom:0,marginInlineStart:h.marginXS}},[`${S}-open`]:{overflow:"hidden"}})},{[`${S}-pure-panel`]:{top:"auto",padding:0,display:"flex",flexDirection:"column",[`${S}-content, + ${S}-body, + ${S}-confirm-body-wrapper`]:{display:"flex",flexDirection:"column",flex:"auto"},[`${S}-confirm-body`]:{marginBottom:"auto"}}}]},m=h=>{const{componentCls:S}=h,w=`${S}-confirm`;return{[w]:{"&-rtl":{direction:"rtl"},[`${h.antCls}-modal-header`]:{display:"none"},[`${w}-body-wrapper`]:Object.assign({},(0,a.dF)()),[`${w}-body`]:{display:"flex",flexWrap:"wrap",alignItems:"center",[`${w}-title`]:{flex:"0 0 100%",display:"block",overflow:"hidden",color:h.colorTextHeading,fontWeight:h.fontWeightStrong,fontSize:h.titleFontSize,lineHeight:h.titleLineHeight,[`+ ${w}-content`]:{marginBlockStart:h.marginXS,flexBasis:"100%",maxWidth:`calc(100% - ${h.modalConfirmIconSize+h.marginSM}px)`}},[`${w}-content`]:{color:h.colorText,fontSize:h.fontSize},[`> ${h.iconCls}`]:{flex:"none",marginInlineEnd:h.marginSM,fontSize:h.modalConfirmIconSize,[`+ ${w}-title`]:{flex:1},[`+ ${w}-title + ${w}-content`]:{marginInlineStart:h.modalConfirmIconSize+h.marginSM}}},[`${w}-btns`]:{textAlign:"end",marginTop:h.marginSM,[`${h.antCls}-btn + ${h.antCls}-btn`]:{marginBottom:0,marginInlineStart:h.marginXS}}},[`${w}-error ${w}-body > ${h.iconCls}`]:{color:h.colorError},[`${w}-warning ${w}-body > ${h.iconCls}, + ${w}-confirm ${w}-body > ${h.iconCls}`]:{color:h.colorWarning},[`${w}-info ${w}-body > ${h.iconCls}`]:{color:h.colorInfo},[`${w}-success ${w}-body > ${h.iconCls}`]:{color:h.colorSuccess}}},g=h=>{const{componentCls:S}=h;return{[`${S}-root`]:{[`${S}-wrap-rtl`]:{direction:"rtl",[`${S}-confirm-body`]:{direction:"rtl"}}}}},M=h=>{const{componentCls:S,antCls:w}=h,C=`${S}-confirm`;return{[S]:{[`${S}-content`]:{padding:0},[`${S}-header`]:{padding:h.modalHeaderPadding,borderBottom:`${h.modalHeaderBorderWidth}px ${h.modalHeaderBorderStyle} ${h.modalHeaderBorderColorSplit}`,marginBottom:0},[`${S}-body`]:{padding:h.modalBodyPadding},[`${S}-footer`]:{padding:`${h.modalFooterPaddingVertical}px ${h.modalFooterPaddingHorizontal}px`,borderTop:`${h.modalFooterBorderWidth}px ${h.modalFooterBorderStyle} ${h.modalFooterBorderColorSplit}`,borderRadius:`0 0 ${h.borderRadiusLG}px ${h.borderRadiusLG}px`,marginTop:0}},[C]:{[`${w}-modal-body`]:{padding:`${h.padding*2}px ${h.padding*2}px ${h.paddingLG}px`},[`${C}-body`]:{[`> ${h.iconCls}`]:{marginInlineEnd:h.margin,[`+ ${C}-title + ${C}-content`]:{marginInlineStart:h.modalConfirmIconSize+h.margin}}},[`${C}-btns`]:{marginTop:h.marginLG}}}};y.Z=(0,s.Z)("Modal",h=>{const S=h.padding,w=h.fontSizeHeading5,C=h.lineHeightHeading5,z=(0,n.TS)(h,{modalBodyPadding:h.paddingLG,modalHeaderPadding:`${S}px ${h.paddingLG}px`,modalHeaderBorderWidth:h.lineWidth,modalHeaderBorderStyle:h.lineType,modalHeaderBorderColorSplit:h.colorSplit,modalHeaderHeight:C*w+S*2,modalFooterBorderColorSplit:h.colorSplit,modalFooterBorderStyle:h.lineType,modalFooterPaddingVertical:h.paddingXS,modalFooterPaddingHorizontal:h.padding,modalFooterBorderWidth:h.lineWidth,modalIconHoverColor:h.colorIconHover,modalCloseIconColor:h.colorIcon,modalCloseBtnSize:h.fontSize*h.lineHeight,modalConfirmIconSize:h.fontSize*h.lineHeight});return[c(z),m(z),g(z),l(z),h.wireframe&&M(z),(0,o._y)(z,"zoom")]},h=>({footerBg:"transparent",headerBg:h.colorBgElevated,titleLineHeight:h.lineHeightHeading5,titleFontSize:h.fontSizeHeading5,contentBg:h.colorBgElevated,titleColor:h.colorTextHeading}))},65172:function(b,y,e){"use strict";e.d(y,{Z:function(){return z}});var a=e(29140),t=e(58757);function o(){const[Z,N]=t.useState([]),L=t.useCallback($=>(N(D=>[].concat((0,a.Z)(D),[$])),()=>{N(D=>D.filter(T=>T!==$))}),[]);return[Z,L]}var s=e(49316),n=e(98702),d=e(61836),l=e(80076),c=e(29487),m=e(76370),g=function(Z,N){var L={};for(var $ in Z)Object.prototype.hasOwnProperty.call(Z,$)&&N.indexOf($)<0&&(L[$]=Z[$]);if(Z!=null&&typeof Object.getOwnPropertySymbols=="function")for(var D=0,$=Object.getOwnPropertySymbols(Z);D<$.length;D++)N.indexOf($[D])<0&&Object.prototype.propertyIsEnumerable.call(Z,$[D])&&(L[$[D]]=Z[$[D]]);return L};const M=(Z,N)=>{var L,{afterClose:$,config:D}=Z,T=g(Z,["afterClose","config"]);const[j,G]=t.useState(!0),[k,te]=t.useState(D),{direction:Y,getPrefixCls:q}=t.useContext(d.E_),le=q("modal"),X=q(),W=()=>{var U;$(),(U=k.afterClose)===null||U===void 0||U.call(k)},x=function(){G(!1);for(var U=arguments.length,A=new Array(U),V=0;Vpe&&pe.triggerCancel);k.onCancel&&fe&&k.onCancel.apply(k,[()=>{}].concat((0,a.Z)(A.slice(1))))};t.useImperativeHandle(N,()=>({destroy:x,update:U=>{te(A=>Object.assign(Object.assign({},A),U))}}));const O=(L=k.okCancel)!==null&&L!==void 0?L:k.type==="confirm",[_]=(0,c.Z)("Modal",l.Z.Modal);return t.createElement(m.Z,Object.assign({prefixCls:le,rootPrefixCls:X},k,{close:x,open:j,afterClose:W,okText:k.okText||(O?_==null?void 0:_.okText:_==null?void 0:_.justOkText),direction:k.direction||Y,cancelText:k.cancelText||(_==null?void 0:_.cancelText)},T))};var h=t.forwardRef(M);let S=0;const w=t.memo(t.forwardRef((Z,N)=>{const[L,$]=o();return t.useImperativeHandle(N,()=>({patchElement:$}),[]),t.createElement(t.Fragment,null,L)}));function C(){const Z=t.useRef(null),[N,L]=t.useState([]);t.useEffect(()=>{N.length&&((0,a.Z)(N).forEach(j=>{j()}),L([]))},[N]);const $=t.useCallback(T=>function(G){var k;S+=1;const te=t.createRef();let Y;const q=new Promise(O=>{Y=O});let le=!1,X;const W=t.createElement(h,{key:`modal-${S}`,config:T(G),ref:te,afterClose:()=>{X==null||X()},isSilent:()=>le,onConfirm:O=>{Y(O)}});return X=(k=Z.current)===null||k===void 0?void 0:k.patchElement(W),X&&n.Z.push(X),{destroy:()=>{function O(){var _;(_=te.current)===null||_===void 0||_.destroy()}te.current?O():L(_=>[].concat((0,a.Z)(_),[O]))},update:O=>{function _(){var U;(U=te.current)===null||U===void 0||U.update(O)}te.current?_():L(U=>[].concat((0,a.Z)(U),[_]))},then:O=>(le=!0,q.then(O))}},[]);return[t.useMemo(()=>({info:$(s.cw),success:$(s.vq),error:$(s.AQ),warning:$(s.uW),confirm:$(s.Au)}),[]),t.createElement(w,{key:"modal-holder",ref:Z})]}var z=C},37864:function(b,y,e){"use strict";e.d(y,{CW:function(){return Z},z5:function(){return C}});var a=e(85678),t=e(79999),o=e(52495),s=e(69831),n=e(33064),d=e(25755),l=e(87608),c=e.n(l),m=e(75248),g=e(58757),M=e(61836),h=e(26284),S=function(L,$){var D={};for(var T in L)Object.prototype.hasOwnProperty.call(L,T)&&$.indexOf(T)<0&&(D[T]=L[T]);if(L!=null&&typeof Object.getOwnPropertySymbols=="function")for(var j=0,T=Object.getOwnPropertySymbols(L);j{const{prefixCls:$,icon:D,type:T,message:j,description:G,btn:k,role:te="alert"}=L;let Y=null;return D?Y=g.createElement("span",{className:`${$}-icon`},D):T&&(Y=g.createElement(z[T]||null,{className:c()(`${$}-icon`,`${$}-icon-${T}`)})),g.createElement("div",{className:c()({[`${$}-with-icon`]:Y}),role:te},Y,g.createElement("div",{className:`${$}-message`},j),g.createElement("div",{className:`${$}-description`},G),k&&g.createElement("div",{className:`${$}-btn`},k))},N=L=>{const{prefixCls:$,className:D,icon:T,type:j,message:G,description:k,btn:te,closable:Y=!0,closeIcon:q}=L,le=S(L,["prefixCls","className","icon","type","message","description","btn","closable","closeIcon"]),{getPrefixCls:X}=g.useContext(M.E_),W=$||X("notification"),x=`${W}-notice`,[,O]=(0,h.Z)(W);return g.createElement(m.q,Object.assign({},le,{prefixCls:W,className:c()(D,O,`${x}-pure-panel`),eventKey:"pure",duration:null,closable:Y,closeIcon:C(W,q),content:g.createElement(Z,{prefixCls:x,icon:T,type:j,message:G,description:k,btn:te})}))};y.ZP=N},65388:function(b,y,e){"use strict";var a=e(58757),t=e(52323),o=e(42505),s=e(37864),n=e(75105);let d=null,l=D=>D(),c=[],m={};function g(){const{prefixCls:D,getContainer:T,rtl:j,maxCount:G,top:k,bottom:te}=m,Y=D!=null?D:(0,o.w6)().getPrefixCls("notification"),q=(T==null?void 0:T())||document.body;return{prefixCls:Y,getContainer:()=>q,rtl:j,maxCount:G,top:k,bottom:te}}const M=a.forwardRef((D,T)=>{const[j,G]=a.useState(g),[k,te]=(0,n.k)(j),Y=(0,o.w6)(),q=Y.getRootPrefixCls(),le=Y.getIconPrefixCls(),X=Y.getTheme(),W=()=>{G(g)};return a.useEffect(W,[]),a.useImperativeHandle(T,()=>{const x=Object.assign({},k);return Object.keys(x).forEach(O=>{x[O]=function(){return W(),k[O].apply(k,arguments)}}),{instance:x,sync:W}}),a.createElement(o.ZP,{prefixCls:q,iconPrefixCls:le,theme:X},te)});function h(){if(!d){const D=document.createDocumentFragment(),T={fragment:D};d=T,l(()=>{(0,t.s)(a.createElement(M,{ref:j=>{const{instance:G,sync:k}=j||{};Promise.resolve().then(()=>{!T.instance&&G&&(T.instance=G,T.sync=k,h())})}}),D)});return}d.instance&&(c.forEach(D=>{switch(D.type){case"open":{l(()=>{d.instance.open(Object.assign(Object.assign({},m),D.config))});break}case"destroy":l(()=>{d==null||d.instance.destroy(D.key)});break}}),c=[])}function S(D){m=Object.assign(Object.assign({},m),D),l(()=>{var T;(T=d==null?void 0:d.sync)===null||T===void 0||T.call(d)})}function w(D){c.push({type:"open",config:D}),h()}function C(D){c.push({type:"destroy",key:D}),h()}const z=["success","info","warning","error"],N={open:w,destroy:C,config:S,useNotification:n.Z,_InternalPanelDoNotUseOrYouWillBeFired:s.ZP};z.forEach(D=>{N[D]=T=>w(Object.assign(Object.assign({},T),{type:D}))});const L=()=>{};let $=null;y.Z=N},26284:function(b,y,e){"use strict";e.d(y,{Z:function(){return c}});var a=e(57793),t=e(78330),o=e(52628),s=e(22151),d=m=>{const{componentCls:g,width:M,notificationMarginEdge:h}=m,S=new a.E4("antNotificationTopFadeIn",{"0%":{marginTop:"-100%",opacity:0},"100%":{marginTop:0,opacity:1}}),w=new a.E4("antNotificationBottomFadeIn",{"0%":{marginBottom:"-100%",opacity:0},"100%":{marginBottom:0,opacity:1}}),C=new a.E4("antNotificationLeftFadeIn",{"0%":{right:{_skip_check_:!0,value:M},opacity:0},"100%":{right:{_skip_check_:!0,value:0},opacity:1}});return{[`&${g}-top, &${g}-bottom`]:{marginInline:0},[`&${g}-top`]:{[`${g}-fade-enter${g}-fade-enter-active, ${g}-fade-appear${g}-fade-appear-active`]:{animationName:S}},[`&${g}-bottom`]:{[`${g}-fade-enter${g}-fade-enter-active, ${g}-fade-appear${g}-fade-appear-active`]:{animationName:w}},[`&${g}-topLeft, &${g}-bottomLeft`]:{marginInlineEnd:0,marginInlineStart:h,[`${g}-fade-enter${g}-fade-enter-active, ${g}-fade-appear${g}-fade-appear-active`]:{animationName:C}}}};const l=m=>{const{iconCls:g,componentCls:M,boxShadow:h,fontSizeLG:S,notificationMarginBottom:w,borderRadiusLG:C,colorSuccess:z,colorInfo:Z,colorWarning:N,colorError:L,colorTextHeading:$,notificationBg:D,notificationPadding:T,notificationMarginEdge:j,motionDurationMid:G,motionEaseInOut:k,fontSize:te,lineHeight:Y,width:q,notificationIconSize:le,colorText:X}=m,W=`${M}-notice`,x=new a.E4("antNotificationFadeIn",{"0%":{left:{_skip_check_:!0,value:q},opacity:0},"100%":{left:{_skip_check_:!0,value:0},opacity:1}}),O=new a.E4("antNotificationFadeOut",{"0%":{maxHeight:m.animationMaxHeight,marginBottom:w,opacity:1},"100%":{maxHeight:0,marginBottom:0,paddingTop:0,paddingBottom:0,opacity:0}}),_={position:"relative",width:q,maxWidth:`calc(100vw - ${j*2}px)`,marginBottom:w,marginInlineStart:"auto",padding:T,overflow:"hidden",lineHeight:Y,wordWrap:"break-word",background:D,borderRadius:C,boxShadow:h,[`${M}-close-icon`]:{fontSize:te,cursor:"pointer"},[`${W}-message`]:{marginBottom:m.marginXS,color:$,fontSize:S,lineHeight:m.lineHeightLG},[`${W}-description`]:{fontSize:te,color:X},[`&${W}-closable ${W}-message`]:{paddingInlineEnd:m.paddingLG},[`${W}-with-icon ${W}-message`]:{marginBottom:m.marginXS,marginInlineStart:m.marginSM+le,fontSize:S},[`${W}-with-icon ${W}-description`]:{marginInlineStart:m.marginSM+le,fontSize:te},[`${W}-icon`]:{position:"absolute",fontSize:le,lineHeight:0,[`&-success${g}`]:{color:z},[`&-info${g}`]:{color:Z},[`&-warning${g}`]:{color:N},[`&-error${g}`]:{color:L}},[`${W}-close`]:{position:"absolute",top:m.notificationPaddingVertical,insetInlineEnd:m.notificationPaddingHorizontal,color:m.colorIcon,outline:"none",width:m.notificationCloseButtonSize,height:m.notificationCloseButtonSize,borderRadius:m.borderRadiusSM,transition:`background-color ${m.motionDurationMid}, color ${m.motionDurationMid}`,display:"flex",alignItems:"center",justifyContent:"center","&:hover":{color:m.colorIconHover,backgroundColor:m.wireframe?"transparent":m.colorFillContent}},[`${W}-btn`]:{float:"right",marginTop:m.marginSM}};return[{[M]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,t.Wf)(m)),{position:"fixed",zIndex:m.zIndexPopup,marginInlineEnd:j,[`${M}-hook-holder`]:{position:"relative"},[`&${M}-top, &${M}-bottom`]:{[W]:{marginInline:"auto auto"}},[`&${M}-topLeft, &${M}-bottomLeft`]:{[W]:{marginInlineEnd:"auto",marginInlineStart:0}},[`${M}-fade-enter, ${M}-fade-appear`]:{animationDuration:m.motionDurationMid,animationTimingFunction:k,animationFillMode:"both",opacity:0,animationPlayState:"paused"},[`${M}-fade-leave`]:{animationTimingFunction:k,animationFillMode:"both",animationDuration:G,animationPlayState:"paused"},[`${M}-fade-enter${M}-fade-enter-active, ${M}-fade-appear${M}-fade-appear-active`]:{animationName:x,animationPlayState:"running"},[`${M}-fade-leave${M}-fade-leave-active`]:{animationName:O,animationPlayState:"running"}}),d(m)),{"&-rtl":{direction:"rtl",[`${W}-btn`]:{float:"left"}}})},{[M]:{[W]:Object.assign({},_)}},{[`${W}-pure-panel`]:Object.assign(Object.assign({},_),{margin:0})}]};var c=(0,o.Z)("Notification",m=>{const g=m.paddingMD,M=m.paddingLG,h=(0,s.TS)(m,{notificationBg:m.colorBgElevated,notificationPaddingVertical:g,notificationPaddingHorizontal:M,notificationIconSize:m.fontSizeLG*m.lineHeightLG,notificationCloseButtonSize:m.controlHeightLG*.55,notificationMarginBottom:m.margin,notificationPadding:`${m.paddingMD}px ${m.paddingContentHorizontalLG}px`,notificationMarginEdge:m.marginLG,animationMaxHeight:150});return[l(h)]},m=>({zIndexPopup:m.zIndexPopupBase+50,width:384}),{clientOnly:!0})},75105:function(b,y,e){"use strict";e.d(y,{Z:function(){return z},k:function(){return C}});var a=e(58757),t=e(87608),o=e.n(t),s=e(75248),n=e(61836),d=e(37864),l=e(26284);function c(Z,N,L){let $;switch(Z){case"top":$={left:"50%",transform:"translateX(-50%)",right:"auto",top:N,bottom:"auto"};break;case"topLeft":$={left:0,top:N,bottom:"auto"};break;case"topRight":$={right:0,top:N,bottom:"auto"};break;case"bottom":$={left:"50%",transform:"translateX(-50%)",right:"auto",top:"auto",bottom:L};break;case"bottomLeft":$={left:0,top:"auto",bottom:L};break;default:$={right:0,top:"auto",bottom:L};break}return $}function m(Z){return{motionName:`${Z}-fade`}}var g=function(Z,N){var L={};for(var $ in Z)Object.prototype.hasOwnProperty.call(Z,$)&&N.indexOf($)<0&&(L[$]=Z[$]);if(Z!=null&&typeof Object.getOwnPropertySymbols=="function")for(var D=0,$=Object.getOwnPropertySymbols(Z);D<$.length;D++)N.indexOf($[D])<0&&Object.prototype.propertyIsEnumerable.call(Z,$[D])&&(L[$[D]]=Z[$[D]]);return L};const M=24,h=4.5,S="topRight",w=a.forwardRef((Z,N)=>{const{top:L,bottom:$,prefixCls:D,getContainer:T,maxCount:j,rtl:G,onAllRemoved:k}=Z,{getPrefixCls:te,getPopupContainer:Y,notification:q}=a.useContext(n.E_),le=D||te("notification"),X=A=>c(A,L!=null?L:M,$!=null?$:M),[,W]=(0,l.Z)(le),x=()=>o()(W,{[`${le}-rtl`]:G}),O=()=>m(le),[_,U]=(0,s.l)({prefixCls:le,style:X,className:x,motion:O,closable:!0,closeIcon:(0,d.z5)(le),duration:h,getContainer:()=>(T==null?void 0:T())||(Y==null?void 0:Y())||document.body,maxCount:j,onAllRemoved:k});return a.useImperativeHandle(N,()=>Object.assign(Object.assign({},_),{prefixCls:le,hashId:W,notification:q})),U});function C(Z){const N=a.useRef(null);return[a.useMemo(()=>{const $=G=>{var k;if(!N.current)return;const{open:te,prefixCls:Y,hashId:q,notification:le}=N.current,X=`${Y}-notice`,{message:W,description:x,icon:O,type:_,btn:U,className:A,style:V,role:fe="alert",closeIcon:pe}=G,ge=g(G,["message","description","icon","type","btn","className","style","role","closeIcon"]),be=(0,d.z5)(X,pe);return te(Object.assign(Object.assign({placement:(k=Z==null?void 0:Z.placement)!==null&&k!==void 0?k:S},ge),{content:a.createElement(d.CW,{prefixCls:X,icon:O,type:_,message:W,description:x,btn:U,role:fe}),className:o()(_&&`${X}-${_}`,q,A,le==null?void 0:le.className),style:Object.assign(Object.assign({},le==null?void 0:le.style),V),closeIcon:be,closable:!!be}))},T={open:$,destroy:G=>{var k,te;G!==void 0?(k=N.current)===null||k===void 0||k.close(G):(te=N.current)===null||te===void 0||te.destroy()}};return["success","info","warning","error"].forEach(G=>{T[G]=k=>$(Object.assign(Object.assign({},k),{type:G}))}),T},[]),a.createElement(w,Object.assign({key:"notification-holder"},Z,{ref:N}))]}function z(Z){return C(Z)}},35910:function(b,y,e){"use strict";e.d(y,{Z:function(){return Q}});var a=e(60698),t=e(58757),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z"}}]},name:"double-left",theme:"outlined"},s=o,n=e(17202),d=function(me,je){return t.createElement(n.Z,(0,a.Z)({},me,{ref:je,icon:s}))},l=t.forwardRef(d),c={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z"}}]},name:"double-right",theme:"outlined"},m=c,g=function(me,je){return t.createElement(n.Z,(0,a.Z)({},me,{ref:je,icon:m}))},M=t.forwardRef(g),h=e(99142),S=e(91169),w=e(87608),C=e.n(w),z=e(37734),Z=e(57370),N=e(60412),L=e(14346),$=e(87498),D=e(73726),T=e(33926),j={ZERO:48,NINE:57,NUMPAD_ZERO:96,NUMPAD_NINE:105,BACKSPACE:8,DELETE:46,ENTER:13,ARROW_UP:38,ARROW_DOWN:40},G=j,k=e(23737),te=function(ie){(0,$.Z)(je,ie);var me=(0,D.Z)(je);function je(){var Ce;(0,N.Z)(this,je);for(var Se=arguments.length,We=new Array(Se),re=0;re=0||se.relatedTarget.className.indexOf("".concat(ce,"-item"))>=0))&&xe(Ce.getValidValue()))},Ce.go=function(se){var J=Ce.state.goInputText;J!==""&&(se.keyCode===G.ENTER||se.type==="click")&&(Ce.setState({goInputText:""}),Ce.props.quickGo(Ce.getValidValue()))},Ce}return(0,L.Z)(je,[{key:"getPageSizeOptions",value:function(){var Se=this.props,We=Se.pageSize,re=Se.pageSizeOptions;return re.some(function(se){return se.toString()===We.toString()})?re:re.concat([We.toString()]).sort(function(se,J){var de=Number.isNaN(Number(se))?0:Number(se),xe=Number.isNaN(Number(J))?0:Number(J);return de-xe})}},{key:"render",value:function(){var Se=this,We=this.props,re=We.pageSize,se=We.locale,J=We.rootPrefixCls,de=We.changeSize,xe=We.quickGo,ce=We.goButton,Ne=We.selectComponentClass,Oe=We.buildOptionText,we=We.selectPrefixCls,Re=We.disabled,st=this.state.goInputText,tt="".concat(J,"-options"),Ye=Ne,ke=null,Be=null,it=null;if(!de&&!xe)return null;var Ve=this.getPageSizeOptions();if(de&&Ye){var xt=Ve.map(function(_t,Ot){return t.createElement(Ye.Option,{key:Ot,value:_t.toString()},(Oe||Se.buildOptionText)(_t))});ke=t.createElement(Ye,{disabled:Re,prefixCls:we,showSearch:!1,className:"".concat(tt,"-size-changer"),optionLabelProp:"children",popupMatchSelectWidth:!1,value:(re||Ve[0]).toString(),onChange:this.changeSize,getPopupContainer:function(Ot){return Ot.parentNode},"aria-label":se.page_size,defaultOpen:!1},xt)}return xe&&(ce&&(it=typeof ce=="boolean"?t.createElement("button",{type:"button",onClick:this.go,onKeyUp:this.go,disabled:Re,className:"".concat(tt,"-quick-jumper-button")},se.jump_to_confirm):t.createElement("span",{onClick:this.go,onKeyUp:this.go},ce)),Be=t.createElement("div",{className:"".concat(tt,"-quick-jumper")},se.jump_to,t.createElement("input",{disabled:Re,type:"text",value:st,onChange:this.handleChange,onKeyUp:this.go,onBlur:this.handleBlur,"aria-label":se.page}),se.page,it)),t.createElement("li",{className:"".concat(tt)},ke,Be)}}]),je}(t.Component);te.defaultProps={pageSizeOptions:["10","20","50","100"]};var Y=te,q=function(me){var je,Ce=me.rootPrefixCls,Se=me.page,We=me.active,re=me.className,se=me.showTitle,J=me.onClick,de=me.onKeyPress,xe=me.itemRender,ce="".concat(Ce,"-item"),Ne=C()(ce,"".concat(ce,"-").concat(Se),(je={},(0,z.Z)(je,"".concat(ce,"-active"),We),(0,z.Z)(je,"".concat(ce,"-disabled"),!Se),(0,z.Z)(je,me.className,re),je)),Oe=function(){J(Se)},we=function(tt){de(tt,J,Se)},Re=xe(Se,"page",t.createElement("a",{rel:"nofollow"},Se));return Re?t.createElement("li",{title:se?Se.toString():null,className:Ne,onClick:Oe,onKeyPress:we,tabIndex:0},Re):null},le=q;function X(){}function W(ie){var me=Number(ie);return typeof me=="number"&&!Number.isNaN(me)&&isFinite(me)&&Math.floor(me)===me}var x=function(me,je,Ce){return Ce};function O(ie,me,je){var Ce=typeof ie=="undefined"?me.pageSize:ie;return Math.floor((je.total-1)/Ce)+1}var _=function(ie){(0,$.Z)(je,ie);var me=(0,D.Z)(je);function je(Ce){var Se;(0,N.Z)(this,je),Se=me.call(this,Ce),Se.paginationNode=t.createRef(),Se.getJumpPrevPage=function(){return Math.max(1,Se.state.current-(Se.props.showLessItems?3:5))},Se.getJumpNextPage=function(){return Math.min(O(void 0,Se.state,Se.props),Se.state.current+(Se.props.showLessItems?3:5))},Se.getItemIcon=function(de,xe){var ce=Se.props.prefixCls,Ne=de||t.createElement("button",{type:"button","aria-label":xe,className:"".concat(ce,"-item-link")});return typeof de=="function"&&(Ne=t.createElement(de,(0,Z.Z)({},Se.props))),Ne},Se.isValid=function(de){var xe=Se.props.total;return W(de)&&de!==Se.state.current&&W(xe)&&xe>0},Se.shouldDisplayQuickJumper=function(){var de=Se.props,xe=de.showQuickJumper,ce=de.total,Ne=Se.state.pageSize;return ce<=Ne?!1:xe},Se.handleKeyDown=function(de){(de.keyCode===G.ARROW_UP||de.keyCode===G.ARROW_DOWN)&&de.preventDefault()},Se.handleKeyUp=function(de){var xe=Se.getValidValue(de),ce=Se.state.currentInputValue;xe!==ce&&Se.setState({currentInputValue:xe}),de.keyCode===G.ENTER?Se.handleChange(xe):de.keyCode===G.ARROW_UP?Se.handleChange(xe-1):de.keyCode===G.ARROW_DOWN&&Se.handleChange(xe+1)},Se.handleBlur=function(de){var xe=Se.getValidValue(de);Se.handleChange(xe)},Se.changePageSize=function(de){var xe=Se.state.current,ce=O(de,Se.state,Se.props);xe=xe>ce?ce:xe,ce===0&&(xe=Se.state.current),typeof de=="number"&&("pageSize"in Se.props||Se.setState({pageSize:de}),"current"in Se.props||Se.setState({current:xe,currentInputValue:xe})),Se.props.onShowSizeChange(xe,de),"onChange"in Se.props&&Se.props.onChange&&Se.props.onChange(xe,de)},Se.handleChange=function(de){var xe=Se.props,ce=xe.disabled,Ne=xe.onChange,Oe=Se.state,we=Oe.pageSize,Re=Oe.current,st=Oe.currentInputValue;if(Se.isValid(de)&&!ce){var tt=O(void 0,Se.state,Se.props),Ye=de;return de>tt?Ye=tt:de<1&&(Ye=1),"current"in Se.props||Se.setState({current:Ye}),Ye!==st&&Se.setState({currentInputValue:Ye}),Ne(Ye,we),Ye}return Re},Se.prev=function(){Se.hasPrev()&&Se.handleChange(Se.state.current-1)},Se.next=function(){Se.hasNext()&&Se.handleChange(Se.state.current+1)},Se.jumpPrev=function(){Se.handleChange(Se.getJumpPrevPage())},Se.jumpNext=function(){Se.handleChange(Se.getJumpNextPage())},Se.hasPrev=function(){return Se.state.current>1},Se.hasNext=function(){return Se.state.current2?ce-2:0),Oe=2;Oe=re?J=re:J=Number(We),J}},{key:"getShowSizeChanger",value:function(){var Se=this.props,We=Se.showSizeChanger,re=Se.total,se=Se.totalBoundaryShowSizeChanger;return typeof We!="undefined"?We:re>se}},{key:"render",value:function(){var Se=this.props,We=Se.prefixCls,re=Se.className,se=Se.style,J=Se.disabled,de=Se.hideOnSinglePage,xe=Se.total,ce=Se.locale,Ne=Se.showQuickJumper,Oe=Se.showLessItems,we=Se.showTitle,Re=Se.showTotal,st=Se.simple,tt=Se.itemRender,Ye=Se.showPrevNextJumpers,ke=Se.jumpPrevIcon,Be=Se.jumpNextIcon,it=Se.selectComponentClass,Ve=Se.selectPrefixCls,xt=Se.pageSizeOptions,_t=this.state,Ot=_t.current,wt=_t.pageSize,Yt=_t.currentInputValue;if(de===!0&&xe<=wt)return null;var bt=O(void 0,this.state,this.props),ze=[],nt=null,St=null,ut=null,Vt=null,Nt=null,At=Ne&&Ne.goButton,Ie=Oe?1:2,Ee=Ot-1>0?Ot-1:0,Mt=Ot+1xe?xe:Ot*wt]));if(st){At&&(typeof At=="boolean"?Nt=t.createElement("button",{type:"button",onClick:this.handleGoTO,onKeyUp:this.handleGoTO},ce.jump_to_confirm):Nt=t.createElement("span",{onClick:this.handleGoTO,onKeyUp:this.handleGoTO},At),Nt=t.createElement("li",{title:we?"".concat(ce.jump_to).concat(Ot,"/").concat(bt):null,className:"".concat(We,"-simple-pager")},Nt));var et=this.renderPrev(Ee);return t.createElement("ul",(0,a.Z)({className:C()(We,"".concat(We,"-simple"),(0,z.Z)({},"".concat(We,"-disabled"),J),re),style:se,ref:this.paginationNode},jt),He,et?t.createElement("li",{title:we?ce.prev_page:null,onClick:this.prev,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterPrev,className:C()("".concat(We,"-prev"),(0,z.Z)({},"".concat(We,"-disabled"),!this.hasPrev())),"aria-disabled":!this.hasPrev()},et):null,t.createElement("li",{title:we?"".concat(Ot,"/").concat(bt):null,className:"".concat(We,"-simple-pager")},t.createElement("input",{type:"text",value:Yt,disabled:J,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onChange:this.handleKeyUp,onBlur:this.handleBlur,size:3}),t.createElement("span",{className:"".concat(We,"-slash")},"/"),bt),t.createElement("li",{title:we?ce.next_page:null,onClick:this.next,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterNext,className:C()("".concat(We,"-next"),(0,z.Z)({},"".concat(We,"-disabled"),!this.hasNext())),"aria-disabled":!this.hasNext()},this.renderNext(Mt)),Nt)}if(bt<=3+Ie*2){var Zt={locale:ce,rootPrefixCls:We,onClick:this.handleChange,onKeyPress:this.runIfEnter,showTitle:we,itemRender:tt};bt||ze.push(t.createElement(le,(0,a.Z)({},Zt,{key:"noPager",page:1,className:"".concat(We,"-item-disabled")})));for(var Ut=1;Ut<=bt;Ut+=1){var Jt=Ot===Ut;ze.push(t.createElement(le,(0,a.Z)({},Zt,{key:Ut,page:Ut,active:Jt})))}}else{var ln=Oe?ce.prev_3:ce.prev_5,Mn=Oe?ce.next_3:ce.next_5,gn=tt(this.getJumpPrevPage(),"jump-prev",this.getItemIcon(ke,"prev page")),Yn=tt(this.getJumpNextPage(),"jump-next",this.getItemIcon(Be,"next page"));Ye&&(nt=gn?t.createElement("li",{title:we?ln:null,key:"prev",onClick:this.jumpPrev,tabIndex:0,onKeyPress:this.runIfEnterJumpPrev,className:C()("".concat(We,"-jump-prev"),(0,z.Z)({},"".concat(We,"-jump-prev-custom-icon"),!!ke))},gn):null,St=Yn?t.createElement("li",{title:we?Mn:null,key:"next",tabIndex:0,onClick:this.jumpNext,onKeyPress:this.runIfEnterJumpNext,className:C()("".concat(We,"-jump-next"),(0,z.Z)({},"".concat(We,"-jump-next-custom-icon"),!!Be))},Yn):null),Vt=t.createElement(le,{locale:ce,last:!0,rootPrefixCls:We,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:bt,page:bt,active:!1,showTitle:we,itemRender:tt}),ut=t.createElement(le,{locale:ce,rootPrefixCls:We,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:1,page:1,active:!1,showTitle:we,itemRender:tt});var Gn=Math.max(1,Ot-Ie),ar=Math.min(Ot+Ie,bt);Ot-1<=Ie&&(ar=1+Ie*2),bt-Ot<=Ie&&(Gn=bt-Ie*2);for(var gr=Gn;gr<=ar;gr+=1){var zt=Ot===gr;ze.push(t.createElement(le,{locale:ce,rootPrefixCls:We,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:gr,page:gr,active:zt,showTitle:we,itemRender:tt}))}Ot-1>=Ie*2&&Ot!==1+2&&(ze[0]=(0,t.cloneElement)(ze[0],{className:"".concat(We,"-item-after-jump-prev")}),ze.unshift(nt)),bt-Ot>=Ie*2&&Ot!==bt-2&&(ze[ze.length-1]=(0,t.cloneElement)(ze[ze.length-1],{className:"".concat(We,"-item-before-jump-next")}),ze.push(St)),Gn!==1&&ze.unshift(ut),ar!==bt&&ze.push(Vt)}var qt=!this.hasPrev()||!bt,rn=!this.hasNext()||!bt,dn=this.renderPrev(Ee),Cn=this.renderNext(Mt);return t.createElement("ul",(0,a.Z)({className:C()(We,re,(0,z.Z)({},"".concat(We,"-disabled"),J)),style:se,ref:this.paginationNode},jt),He,dn?t.createElement("li",{title:we?ce.prev_page:null,onClick:this.prev,tabIndex:qt?null:0,onKeyPress:this.runIfEnterPrev,className:C()("".concat(We,"-prev"),(0,z.Z)({},"".concat(We,"-disabled"),qt)),"aria-disabled":qt},dn):null,ze,Cn?t.createElement("li",{title:we?ce.next_page:null,onClick:this.next,tabIndex:rn?null:0,onKeyPress:this.runIfEnterNext,className:C()("".concat(We,"-next"),(0,z.Z)({},"".concat(We,"-disabled"),rn)),"aria-disabled":rn},Cn):null,t.createElement(Y,{disabled:J,locale:ce,rootPrefixCls:We,selectComponentClass:it,selectPrefixCls:Ve,changeSize:this.getShowSizeChanger()?this.changePageSize:null,current:Ot,pageSize:wt,pageSizeOptions:xt,quickGo:this.shouldDisplayQuickJumper()?this.handleChange:null,goButton:At}))}}],[{key:"getDerivedStateFromProps",value:function(Se,We){var re={};if("current"in Se&&(re.current=Se.current,Se.current!==We.current&&(re.currentInputValue=re.current)),"pageSize"in Se&&Se.pageSize!==We.pageSize){var se=We.current,J=O(Se.pageSize,We,Se);se=se>J?J:se,"current"in Se||(re.current=se,re.currentInputValue=se),re.pageSize=Se.pageSize}return re}}]),je}(t.Component);_.defaultProps={defaultCurrent:1,total:0,defaultPageSize:10,onChange:X,className:"",selectPrefixCls:"rc-select",prefixCls:"rc-pagination",selectComponentClass:null,hideOnSinglePage:!1,showPrevNextJumpers:!0,showQuickJumper:!1,showLessItems:!1,showTitle:!0,onShowSizeChange:X,locale:k.Z,style:{},itemRender:x,totalBoundaryShowSizeChanger:50};var U=_,A=e(57522),V=e(61836),fe=e(58785),pe=e(60059),ge=e(29487),be=e(59504);const Te=ie=>t.createElement(be.Z,Object.assign({},ie,{showSearch:!0,size:"small"})),Ge=ie=>t.createElement(be.Z,Object.assign({},ie,{showSearch:!0,size:"middle"}));Te.Option=be.Z.Option,Ge.Option=be.Z.Option;var qe=e(46902),Qe=e(78330),ht=e(52628),Et=e(22151);const gt=ie=>{const{componentCls:me}=ie;return{[`${me}-disabled`]:{"&, &:hover":{cursor:"not-allowed",[`${me}-item-link`]:{color:ie.colorTextDisabled,cursor:"not-allowed"}},"&:focus-visible":{cursor:"not-allowed",[`${me}-item-link`]:{color:ie.colorTextDisabled,cursor:"not-allowed"}}},[`&${me}-disabled`]:{cursor:"not-allowed",[`${me}-item`]:{cursor:"not-allowed","&:hover, &:active":{backgroundColor:"transparent"},a:{color:ie.colorTextDisabled,backgroundColor:"transparent",border:"none",cursor:"not-allowed"},"&-active":{borderColor:ie.colorBorder,backgroundColor:ie.itemActiveBgDisabled,"&:hover, &:active":{backgroundColor:ie.itemActiveBgDisabled},a:{color:ie.itemActiveColorDisabled}}},[`${me}-item-link`]:{color:ie.colorTextDisabled,cursor:"not-allowed","&:hover, &:active":{backgroundColor:"transparent"},[`${me}-simple&`]:{backgroundColor:"transparent","&:hover, &:active":{backgroundColor:"transparent"}}},[`${me}-simple-pager`]:{color:ie.colorTextDisabled},[`${me}-jump-prev, ${me}-jump-next`]:{[`${me}-item-link-icon`]:{opacity:0},[`${me}-item-ellipsis`]:{opacity:1}}},[`&${me}-simple`]:{[`${me}-prev, ${me}-next`]:{[`&${me}-disabled ${me}-item-link`]:{"&:hover, &:active":{backgroundColor:"transparent"}}}}}},Ht=ie=>{const{componentCls:me}=ie;return{[`&${me}-mini ${me}-total-text, &${me}-mini ${me}-simple-pager`]:{height:ie.itemSizeSM,lineHeight:`${ie.itemSizeSM}px`},[`&${me}-mini ${me}-item`]:{minWidth:ie.itemSizeSM,height:ie.itemSizeSM,margin:0,lineHeight:`${ie.itemSizeSM-2}px`},[`&${me}-mini:not(${me}-disabled) ${me}-item:not(${me}-item-active)`]:{backgroundColor:"transparent",borderColor:"transparent","&:hover":{backgroundColor:ie.colorBgTextHover},"&:active":{backgroundColor:ie.colorBgTextActive}},[`&${me}-mini ${me}-prev, &${me}-mini ${me}-next`]:{minWidth:ie.itemSizeSM,height:ie.itemSizeSM,margin:0,lineHeight:`${ie.itemSizeSM}px`},[`&${me}-mini:not(${me}-disabled)`]:{[`${me}-prev, ${me}-next`]:{[`&:hover ${me}-item-link`]:{backgroundColor:ie.colorBgTextHover},[`&:active ${me}-item-link`]:{backgroundColor:ie.colorBgTextActive},[`&${me}-disabled:hover ${me}-item-link`]:{backgroundColor:"transparent"}}},[` + &${me}-mini ${me}-prev ${me}-item-link, + &${me}-mini ${me}-next ${me}-item-link + `]:{backgroundColor:"transparent",borderColor:"transparent","&::after":{height:ie.itemSizeSM,lineHeight:`${ie.itemSizeSM}px`}},[`&${me}-mini ${me}-jump-prev, &${me}-mini ${me}-jump-next`]:{height:ie.itemSizeSM,marginInlineEnd:0,lineHeight:`${ie.itemSizeSM}px`},[`&${me}-mini ${me}-options`]:{marginInlineStart:ie.paginationMiniOptionsMarginInlineStart,["&-size-changer"]:{top:ie.miniOptionsSizeChangerTop},["&-quick-jumper"]:{height:ie.itemSizeSM,lineHeight:`${ie.itemSizeSM}px`,input:Object.assign(Object.assign({},(0,qe.x0)(ie)),{width:ie.paginationMiniQuickJumperInputWidth,height:ie.controlHeightSM})}}}},$e=ie=>{const{componentCls:me}=ie;return{[` + &${me}-simple ${me}-prev, + &${me}-simple ${me}-next + `]:{height:ie.itemSizeSM,lineHeight:`${ie.itemSizeSM}px`,verticalAlign:"top",[`${me}-item-link`]:{height:ie.itemSizeSM,backgroundColor:"transparent",border:0,"&:hover":{backgroundColor:ie.colorBgTextHover},"&:active":{backgroundColor:ie.colorBgTextActive},"&::after":{height:ie.itemSizeSM,lineHeight:`${ie.itemSizeSM}px`}}},[`&${me}-simple ${me}-simple-pager`]:{display:"inline-block",height:ie.itemSizeSM,marginInlineEnd:ie.marginXS,input:{boxSizing:"border-box",height:"100%",marginInlineEnd:ie.marginXS,padding:`0 ${ie.paginationItemPaddingInline}px`,textAlign:"center",backgroundColor:ie.itemInputBg,border:`${ie.lineWidth}px ${ie.lineType} ${ie.colorBorder}`,borderRadius:ie.borderRadius,outline:"none",transition:`border-color ${ie.motionDurationMid}`,color:"inherit","&:hover":{borderColor:ie.colorPrimary},"&:focus":{borderColor:ie.colorPrimaryHover,boxShadow:`${ie.inputOutlineOffset}px 0 ${ie.controlOutlineWidth}px ${ie.controlOutline}`},"&[disabled]":{color:ie.colorTextDisabled,backgroundColor:ie.colorBgContainerDisabled,borderColor:ie.colorBorder,cursor:"not-allowed"}}}}},Xe=ie=>{const{componentCls:me}=ie;return{[`${me}-jump-prev, ${me}-jump-next`]:{outline:0,[`${me}-item-container`]:{position:"relative",[`${me}-item-link-icon`]:{color:ie.colorPrimary,fontSize:ie.fontSizeSM,opacity:0,transition:`all ${ie.motionDurationMid}`,"&-svg":{top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,margin:"auto"}},[`${me}-item-ellipsis`]:{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,display:"block",margin:"auto",color:ie.colorTextDisabled,fontFamily:"Arial, Helvetica, sans-serif",letterSpacing:ie.paginationEllipsisLetterSpacing,textAlign:"center",textIndent:ie.paginationEllipsisTextIndent,opacity:1,transition:`all ${ie.motionDurationMid}`}},"&:hover":{[`${me}-item-link-icon`]:{opacity:1},[`${me}-item-ellipsis`]:{opacity:0}}},[` + ${me}-prev, + ${me}-jump-prev, + ${me}-jump-next + `]:{marginInlineEnd:ie.marginXS},[` + ${me}-prev, + ${me}-next, + ${me}-jump-prev, + ${me}-jump-next + `]:{display:"inline-block",minWidth:ie.itemSize,height:ie.itemSize,color:ie.colorText,fontFamily:ie.fontFamily,lineHeight:`${ie.itemSize}px`,textAlign:"center",verticalAlign:"middle",listStyle:"none",borderRadius:ie.borderRadius,cursor:"pointer",transition:`all ${ie.motionDurationMid}`},[`${me}-prev, ${me}-next`]:{fontFamily:"Arial, Helvetica, sans-serif",outline:0,button:{color:ie.colorText,cursor:"pointer",userSelect:"none"},[`${me}-item-link`]:{display:"block",width:"100%",height:"100%",padding:0,fontSize:ie.fontSizeSM,textAlign:"center",backgroundColor:"transparent",border:`${ie.lineWidth}px ${ie.lineType} transparent`,borderRadius:ie.borderRadius,outline:"none",transition:`all ${ie.motionDurationMid}`},[`&:hover ${me}-item-link`]:{backgroundColor:ie.colorBgTextHover},[`&:active ${me}-item-link`]:{backgroundColor:ie.colorBgTextActive},[`&${me}-disabled:hover`]:{[`${me}-item-link`]:{backgroundColor:"transparent"}}},[`${me}-slash`]:{marginInlineEnd:ie.paginationSlashMarginInlineEnd,marginInlineStart:ie.paginationSlashMarginInlineStart},[`${me}-options`]:{display:"inline-block",marginInlineStart:ie.margin,verticalAlign:"middle","&-size-changer.-select":{display:"inline-block",width:"auto"},"&-quick-jumper":{display:"inline-block",height:ie.controlHeight,marginInlineStart:ie.marginXS,lineHeight:`${ie.controlHeight}px`,verticalAlign:"top",input:Object.assign(Object.assign({},(0,qe.ik)(ie)),{width:ie.controlHeightLG*1.25,height:ie.controlHeight,boxSizing:"border-box",margin:0,marginInlineStart:ie.marginXS,marginInlineEnd:ie.marginXS})}}}},rt=ie=>{const{componentCls:me}=ie;return{[`${me}-item`]:{display:"inline-block",minWidth:ie.itemSize,height:ie.itemSize,marginInlineEnd:ie.marginXS,fontFamily:ie.fontFamily,lineHeight:`${ie.itemSize-2}px`,textAlign:"center",verticalAlign:"middle",listStyle:"none",backgroundColor:"transparent",border:`${ie.lineWidth}px ${ie.lineType} transparent`,borderRadius:ie.borderRadius,outline:0,cursor:"pointer",userSelect:"none",a:{display:"block",padding:`0 ${ie.paginationItemPaddingInline}px`,color:ie.colorText,"&:hover":{textDecoration:"none"}},[`&:not(${me}-item-active)`]:{"&:hover":{transition:`all ${ie.motionDurationMid}`,backgroundColor:ie.colorBgTextHover},"&:active":{backgroundColor:ie.colorBgTextActive}},"&-active":{fontWeight:ie.fontWeightStrong,backgroundColor:ie.itemActiveBg,borderColor:ie.colorPrimary,a:{color:ie.colorPrimary},"&:hover":{borderColor:ie.colorPrimaryHover},"&:hover a":{color:ie.colorPrimaryHover}}}}},Ke=ie=>{const{componentCls:me}=ie;return{[me]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,Qe.Wf)(ie)),{"ul, ol":{margin:0,padding:0,listStyle:"none"},"&::after":{display:"block",clear:"both",height:0,overflow:"hidden",visibility:"hidden",content:'""'},[`${me}-total-text`]:{display:"inline-block",height:ie.itemSize,marginInlineEnd:ie.marginXS,lineHeight:`${ie.itemSize-2}px`,verticalAlign:"middle"}}),rt(ie)),Xe(ie)),$e(ie)),Ht(ie)),gt(ie)),{[`@media only screen and (max-width: ${ie.screenLG}px)`]:{[`${me}-item`]:{"&-after-jump-prev, &-before-jump-next":{display:"none"}}},[`@media only screen and (max-width: ${ie.screenSM}px)`]:{[`${me}-options`]:{display:"none"}}}),[`&${ie.componentCls}-rtl`]:{direction:"rtl"}}},ye=ie=>{const{componentCls:me}=ie;return{[`${me}${me}-disabled:not(${me}-mini)`]:{"&, &:hover":{[`${me}-item-link`]:{borderColor:ie.colorBorder}},"&:focus-visible":{[`${me}-item-link`]:{borderColor:ie.colorBorder}},[`${me}-item, ${me}-item-link`]:{backgroundColor:ie.colorBgContainerDisabled,borderColor:ie.colorBorder,[`&:hover:not(${me}-item-active)`]:{backgroundColor:ie.colorBgContainerDisabled,borderColor:ie.colorBorder,a:{color:ie.colorTextDisabled}},[`&${me}-item-active`]:{backgroundColor:ie.itemActiveBgDisabled}},[`${me}-prev, ${me}-next`]:{"&:hover button":{backgroundColor:ie.colorBgContainerDisabled,borderColor:ie.colorBorder,color:ie.colorTextDisabled},[`${me}-item-link`]:{backgroundColor:ie.colorBgContainerDisabled,borderColor:ie.colorBorder}}},[`${me}:not(${me}-mini)`]:{[`${me}-prev, ${me}-next`]:{"&:hover button":{borderColor:ie.colorPrimaryHover,backgroundColor:ie.itemBg},[`${me}-item-link`]:{backgroundColor:ie.itemLinkBg,borderColor:ie.colorBorder},[`&:hover ${me}-item-link`]:{borderColor:ie.colorPrimary,backgroundColor:ie.itemBg,color:ie.colorPrimary},[`&${me}-disabled`]:{[`${me}-item-link`]:{borderColor:ie.colorBorder,color:ie.colorTextDisabled}}},[`${me}-item`]:{backgroundColor:ie.itemBg,border:`${ie.lineWidth}px ${ie.lineType} ${ie.colorBorder}`,[`&:hover:not(${me}-item-active)`]:{borderColor:ie.colorPrimary,backgroundColor:ie.itemBg,a:{color:ie.colorPrimary}},"&-active":{borderColor:ie.colorPrimary}}}}},ne=ie=>{const{componentCls:me}=ie;return{[`${me}:not(${me}-disabled)`]:{[`${me}-item`]:Object.assign({},(0,Qe.Qy)(ie)),[`${me}-jump-prev, ${me}-jump-next`]:{"&:focus-visible":Object.assign({[`${me}-item-link-icon`]:{opacity:1},[`${me}-item-ellipsis`]:{opacity:0}},(0,Qe.oN)(ie))},[`${me}-prev, ${me}-next`]:{[`&:focus-visible ${me}-item-link`]:Object.assign({},(0,Qe.oN)(ie))}}}};var H=(0,ht.Z)("Pagination",ie=>{const me=(0,Et.TS)(ie,{inputOutlineOffset:0,paginationMiniOptionsMarginInlineStart:ie.marginXXS/2,paginationMiniQuickJumperInputWidth:ie.controlHeightLG*1.1,paginationItemPaddingInline:ie.marginXXS*1.5,paginationEllipsisLetterSpacing:ie.marginXXS/2,paginationSlashMarginInlineStart:ie.marginXXS,paginationSlashMarginInlineEnd:ie.marginSM,paginationEllipsisTextIndent:"0.13em"},(0,qe.e5)(ie));return[Ke(me),ne(me),ie.wireframe&&ye(me)]},ie=>({itemBg:ie.colorBgContainer,itemSize:ie.controlHeight,itemSizeSM:ie.controlHeightSM,itemActiveBg:ie.colorBgContainer,itemLinkBg:ie.colorBgContainer,itemActiveColorDisabled:ie.colorTextDisabled,itemActiveBgDisabled:ie.controlItemBgActiveDisabled,itemInputBg:ie.colorBgContainer,miniOptionsSizeChangerTop:0})),R=function(ie,me){var je={};for(var Ce in ie)Object.prototype.hasOwnProperty.call(ie,Ce)&&me.indexOf(Ce)<0&&(je[Ce]=ie[Ce]);if(ie!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Se=0,Ce=Object.getOwnPropertySymbols(ie);Se{const{prefixCls:me,selectPrefixCls:je,className:Ce,rootClassName:Se,style:We,size:re,locale:se,selectComponentClass:J,responsive:de,showSizeChanger:xe}=ie,ce=R(ie,["prefixCls","selectPrefixCls","className","rootClassName","style","size","locale","selectComponentClass","responsive","showSizeChanger"]),{xs:Ne}=(0,pe.Z)(de),{getPrefixCls:Oe,direction:we,pagination:Re={}}=t.useContext(V.E_),st=Oe("pagination",me),[tt,Ye]=H(st),ke=xe!=null?xe:Re.showSizeChanger,Be=t.useMemo(()=>{const bt=t.createElement("span",{className:`${st}-item-ellipsis`},"\u2022\u2022\u2022"),ze=t.createElement("button",{className:`${st}-item-link`,type:"button",tabIndex:-1},we==="rtl"?t.createElement(S.Z,null):t.createElement(h.Z,null)),nt=t.createElement("button",{className:`${st}-item-link`,type:"button",tabIndex:-1},we==="rtl"?t.createElement(h.Z,null):t.createElement(S.Z,null)),St=t.createElement("a",{className:`${st}-item-link`},t.createElement("div",{className:`${st}-item-container`},we==="rtl"?t.createElement(M,{className:`${st}-item-link-icon`}):t.createElement(l,{className:`${st}-item-link-icon`}),bt)),ut=t.createElement("a",{className:`${st}-item-link`},t.createElement("div",{className:`${st}-item-container`},we==="rtl"?t.createElement(l,{className:`${st}-item-link-icon`}):t.createElement(M,{className:`${st}-item-link-icon`}),bt));return{prevIcon:ze,nextIcon:nt,jumpPrevIcon:St,jumpNextIcon:ut}},[we,st]),[it]=(0,ge.Z)("Pagination",A.Z),Ve=Object.assign(Object.assign({},it),se),xt=(0,fe.Z)(re),_t=xt==="small"||!!(Ne&&!xt&&de),Ot=Oe("select",je),wt=C()({[`${st}-mini`]:_t,[`${st}-rtl`]:we==="rtl"},Re==null?void 0:Re.className,Ce,Se,Ye),Yt=Object.assign(Object.assign({},Re==null?void 0:Re.style),We);return tt(t.createElement(U,Object.assign({},Be,ce,{style:Yt,prefixCls:st,selectPrefixCls:Ot,className:wt,selectComponentClass:J||(_t?Te:Ge),locale:Ve,showSizeChanger:ke})))},Q=ae},21465:function(b,y,e){"use strict";e.d(y,{t5:function(){return g}});var a=e(87608),t=e.n(a),o=e(33664),s=e(58757),n=e(61836),d=e(99836),l=e(86194),c=function(h,S){var w={};for(var C in h)Object.prototype.hasOwnProperty.call(h,C)&&S.indexOf(C)<0&&(w[C]=h[C]);if(h!=null&&typeof Object.getOwnPropertySymbols=="function")for(var z=0,C=Object.getOwnPropertySymbols(h);z{if(!(!S&&!w))return s.createElement(s.Fragment,null,S&&s.createElement("div",{className:`${h}-title`},(0,d.Z)(S)),s.createElement("div",{className:`${h}-inner-content`},(0,d.Z)(w)))},g=h=>{const{hashId:S,prefixCls:w,className:C,style:z,placement:Z="top",title:N,content:L,children:$}=h;return s.createElement("div",{className:t()(S,w,`${w}-pure`,`${w}-placement-${Z}`,C),style:z},s.createElement("div",{className:`${w}-arrow`}),s.createElement(o.G,Object.assign({},h,{className:S,prefixCls:w}),$||m(w,N,L)))},M=h=>{const{prefixCls:S}=h,w=c(h,["prefixCls"]),{getPrefixCls:C}=s.useContext(n.E_),z=C("popover",S),[Z,N]=(0,l.Z)(z);return Z(s.createElement(g,Object.assign({},w,{prefixCls:z,hashId:N})))};y.ZP=M},33181:function(b,y,e){"use strict";var a=e(87608),t=e.n(a),o=e(58757),s=e(99836),n=e(90881),d=e(61836),l=e(74820),c=e(21465),m=e(86194),g=function(S,w){var C={};for(var z in S)Object.prototype.hasOwnProperty.call(S,z)&&w.indexOf(z)<0&&(C[z]=S[z]);if(S!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Z=0,z=Object.getOwnPropertySymbols(S);Z{let{title:w,content:C,prefixCls:z}=S;return o.createElement(o.Fragment,null,w&&o.createElement("div",{className:`${z}-title`},(0,s.Z)(w)),o.createElement("div",{className:`${z}-inner-content`},(0,s.Z)(C)))},h=o.forwardRef((S,w)=>{const{prefixCls:C,title:z,content:Z,overlayClassName:N,placement:L="top",trigger:$="hover",mouseEnterDelay:D=.1,mouseLeaveDelay:T=.1,overlayStyle:j={}}=S,G=g(S,["prefixCls","title","content","overlayClassName","placement","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle"]),{getPrefixCls:k}=o.useContext(d.E_),te=k("popover",C),[Y,q]=(0,m.Z)(te),le=k(),X=t()(N,q);return Y(o.createElement(l.Z,Object.assign({placement:L,trigger:$,mouseEnterDelay:D,mouseLeaveDelay:T,overlayStyle:j},G,{prefixCls:te,overlayClassName:X,ref:w,overlay:z||Z?o.createElement(M,{prefixCls:te,title:z,content:Z}):null,transitionName:(0,n.m)(le,"zoom-big",G.transitionName),"data-popover-inject":!0})))});h._InternalPanelDoNotUseOrYouWillBeFired=c.ZP,y.Z=h},86194:function(b,y,e){"use strict";var a=e(78330),t=e(28107),o=e(24542),s=e(34966),n=e(52628),d=e(22151);const l=g=>{const{componentCls:M,popoverColor:h,minWidth:S,fontWeightStrong:w,popoverPadding:C,boxShadowSecondary:z,colorTextHeading:Z,borderRadiusLG:N,zIndexPopup:L,marginXS:$,colorBgElevated:D,popoverBg:T}=g;return[{[M]:Object.assign(Object.assign({},(0,a.Wf)(g)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:L,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text",transformOrigin:"var(--arrow-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":D,"&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${M}-content`]:{position:"relative"},[`${M}-inner`]:{backgroundColor:T,backgroundClip:"padding-box",borderRadius:N,boxShadow:z,padding:C},[`${M}-title`]:{minWidth:S,marginBottom:$,color:Z,fontWeight:w},[`${M}-inner-content`]:{color:h}})},(0,o.ZP)(g,{colorBg:"var(--antd-arrow-background-color)"}),{[`${M}-pure`]:{position:"relative",maxWidth:"none",margin:g.sizePopupArrow,display:"inline-block",[`${M}-content`]:{display:"inline-block"}}}]},c=g=>{const{componentCls:M}=g;return{[M]:s.i.map(h=>{const S=g[`${h}6`];return{[`&${M}-${h}`]:{"--antd-arrow-background-color":S,[`${M}-inner`]:{backgroundColor:S},[`${M}-arrow`]:{background:"transparent"}}}})}},m=g=>{const{componentCls:M,lineWidth:h,lineType:S,colorSplit:w,paddingSM:C,controlHeight:z,fontSize:Z,lineHeight:N,padding:L}=g,$=z-Math.round(Z*N),D=$/2,T=$/2-h,j=L;return{[M]:{[`${M}-inner`]:{padding:0},[`${M}-title`]:{margin:0,padding:`${D}px ${j}px ${T}px`,borderBottom:`${h}px ${S} ${w}`},[`${M}-inner-content`]:{padding:`${C}px ${j}px`}}}};y.Z=(0,n.Z)("Popover",g=>{const{colorBgElevated:M,colorText:h,wireframe:S}=g,w=(0,d.TS)(g,{popoverPadding:12,popoverBg:M,popoverColor:h});return[l(w),c(w),S&&m(w),(0,t._y)(w,"zoom-big")]},g=>({width:177,minWidth:177,zIndexPopup:g.zIndexPopupBase+30}),{deprecatedTokens:[["width","minWidth"]]})},95664:function(b,y,e){"use strict";e.d(y,{Z:function(){return We}});var a=e(85678),t=e(35725),o=e(79999),s=e(52495),n=e(87608),d=e.n(n),l=e(98186),c=e(58757),m=e(61836),g=e(60698),M=e(57370),h=e(47075),S={percent:0,prefixCls:"rc-progress",strokeColor:"#2db7f5",strokeLinecap:"round",strokeWidth:1,trailColor:"#D9D9D9",trailWidth:1,gapPosition:"bottom"},w=function(){var se=(0,c.useRef)([]),J=(0,c.useRef)(null);return(0,c.useEffect)(function(){var de=Date.now(),xe=!1;se.current.forEach(function(ce){if(ce){xe=!0;var Ne=ce.style;Ne.transitionDuration=".3s, .3s, .3s, .06s",J.current&&de-J.current<100&&(Ne.transitionDuration="0s, 0s")}}),xe&&(J.current=Date.now())}),se.current},C=["className","percent","prefixCls","strokeColor","strokeLinecap","strokeWidth","style","trailColor","trailWidth","transition"],z=function(se){var J=(0,M.Z)((0,M.Z)({},S),se),de=J.className,xe=J.percent,ce=J.prefixCls,Ne=J.strokeColor,Oe=J.strokeLinecap,we=J.strokeWidth,Re=J.style,st=J.trailColor,tt=J.trailWidth,Ye=J.transition,ke=(0,h.Z)(J,C);delete ke.gapPosition;var Be=Array.isArray(xe)?xe:[xe],it=Array.isArray(Ne)?Ne:[Ne],Ve=w(),xt=we/2,_t=100-we/2,Ot="M ".concat(Oe==="round"?xt:0,",").concat(xt,` + L `).concat(Oe==="round"?_t:100,",").concat(xt),wt="0 0 100 ".concat(we),Yt=0;return c.createElement("svg",(0,g.Z)({className:d()("".concat(ce,"-line"),de),viewBox:wt,preserveAspectRatio:"none",style:Re},ke),c.createElement("path",{className:"".concat(ce,"-line-trail"),d:Ot,strokeLinecap:Oe,stroke:st,strokeWidth:tt||we,fillOpacity:"0"}),Be.map(function(bt,ze){var nt=1;switch(Oe){case"round":nt=1-we/100;break;case"square":nt=1-we/2/100;break;default:nt=1;break}var St={strokeDasharray:"".concat(bt*nt,"px, 100px"),strokeDashoffset:"-".concat(Yt,"px"),transition:Ye||"stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear"},ut=it[ze]||it[it.length-1];return Yt+=bt,c.createElement("path",{key:ze,className:"".concat(ce,"-line-path"),d:Ot,strokeLinecap:Oe,stroke:ut,strokeWidth:we,fillOpacity:"0",ref:function(Nt){Ve[ze]=Nt},style:St})}))},Z=z,N=e(38790),L=e(28314),$=e(19075),D=0,T=(0,$.Z)();function j(){var re;return T?(re=D,D+=1):re="TEST_OR_SSR",re}var G=function(re){var se=c.useState(),J=(0,L.Z)(se,2),de=J[0],xe=J[1];return c.useEffect(function(){xe("rc_progress_".concat(j()))},[]),re||de},k=["id","prefixCls","steps","strokeWidth","trailWidth","gapDegree","gapPosition","trailColor","strokeLinecap","style","className","strokeColor","percent"];function te(re){return+re.replace("%","")}function Y(re){var se=re!=null?re:[];return Array.isArray(se)?se:[se]}var q=100,le=function(se,J,de,xe,ce,Ne,Oe,we,Re,st){var tt=arguments.length>10&&arguments[10]!==void 0?arguments[10]:0,Ye=de/100*360*((360-Ne)/360),ke=Ne===0?0:{bottom:0,top:180,left:90,right:-90}[Oe],Be=(100-xe)/100*J;return Re==="round"&&xe!==100&&(Be+=st/2,Be>=J&&(Be=J-.01)),{stroke:typeof we=="string"?we:void 0,strokeDasharray:"".concat(J,"px ").concat(se),strokeDashoffset:Be+tt,transform:"rotate(".concat(ce+Ye+ke,"deg)"),transformOrigin:"0 0",transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s",fillOpacity:0}},X=function(se){var J=(0,M.Z)((0,M.Z)({},S),se),de=J.id,xe=J.prefixCls,ce=J.steps,Ne=J.strokeWidth,Oe=J.trailWidth,we=J.gapDegree,Re=we===void 0?0:we,st=J.gapPosition,tt=J.trailColor,Ye=J.strokeLinecap,ke=J.style,Be=J.className,it=J.strokeColor,Ve=J.percent,xt=(0,h.Z)(J,k),_t=G(de),Ot="".concat(_t,"-gradient"),wt=q/2-Ne/2,Yt=Math.PI*2*wt,bt=Re>0?90+Re/2:-90,ze=Yt*((360-Re)/360),nt=(0,N.Z)(ce)==="object"?ce:{count:ce,space:2},St=nt.count,ut=nt.space,Vt=le(Yt,ze,0,100,bt,Re,st,tt,Ye,Ne),Nt=Y(Ve),At=Y(it),Ie=At.find(function(He){return He&&(0,N.Z)(He)==="object"}),Ee=w(),Mt=function(){var et=0;return Nt.map(function(Zt,Ut){var Jt=At[Ut]||At[At.length-1],ln=Jt&&(0,N.Z)(Jt)==="object"?"url(#".concat(Ot,")"):void 0,Mn=le(Yt,ze,et,Zt,bt,Re,st,Jt,Ye,Ne);return et+=Zt,c.createElement("circle",{key:Ut,className:"".concat(xe,"-circle-path"),r:wt,cx:0,cy:0,stroke:ln,strokeLinecap:Ye,strokeWidth:Ne,opacity:Zt===0?0:1,style:Mn,ref:function(Yn){Ee[Ut]=Yn}})}).reverse()},jt=function(){var et=Math.round(St*(Nt[0]/100)),Zt=100/St,Ut=0;return new Array(St).fill(null).map(function(Jt,ln){var Mn=ln<=et-1?At[0]:tt,gn=Mn&&(0,N.Z)(Mn)==="object"?"url(#".concat(Ot,")"):void 0,Yn=le(Yt,ze,Ut,Zt,bt,Re,st,Mn,"butt",Ne,ut);return Ut+=(ze-Yn.strokeDashoffset+ut)*100/ze,c.createElement("circle",{key:ln,className:"".concat(xe,"-circle-path"),r:wt,cx:0,cy:0,stroke:gn,strokeWidth:Ne,opacity:1,style:Yn,ref:function(ar){Ee[ln]=ar}})})};return c.createElement("svg",(0,g.Z)({className:d()("".concat(xe,"-circle"),Be),viewBox:"".concat(-q/2," ").concat(-q/2," ").concat(q," ").concat(q),style:ke,id:de,role:"presentation"},xt),Ie&&c.createElement("defs",null,c.createElement("linearGradient",{id:Ot,x1:"100%",y1:"0%",x2:"0%",y2:"0%"},Object.keys(Ie).sort(function(He,et){return te(He)-te(et)}).map(function(He,et){return c.createElement("stop",{key:et,offset:He,stopColor:Ie[He]})}))),!St&&c.createElement("circle",{className:"".concat(xe,"-circle-trail"),r:wt,cx:0,cy:0,stroke:tt,strokeLinecap:Ye,strokeWidth:Oe||Ne,style:Vt}),St?jt():Mt())},W=X,x={Line:Z,Circle:W},O=e(74820),_=e(26134);function U(re){return!re||re<0?0:re>100?100:re}function A(re){let{success:se,successPercent:J}=re,de=J;return se&&"progress"in se&&(de=se.progress),se&&"percent"in se&&(de=se.percent),de}const V=re=>{let{percent:se,success:J,successPercent:de}=re;const xe=U(A({success:J,successPercent:de}));return[xe,U(U(se)-xe)]},fe=re=>{let{success:se={},strokeColor:J}=re;const{strokeColor:de}=se;return[de||_.presetPrimaryColors.green,J||null]},pe=(re,se,J)=>{var de,xe,ce,Ne;let Oe=-1,we=-1;if(se==="step"){const Re=J.steps,st=J.strokeWidth;typeof re=="string"||typeof re=="undefined"?(Oe=re==="small"?2:14,we=st!=null?st:8):typeof re=="number"?[Oe,we]=[re,re]:[Oe=14,we=8]=re,Oe*=Re}else if(se==="line"){const Re=J==null?void 0:J.strokeWidth;typeof re=="string"||typeof re=="undefined"?we=Re||(re==="small"?6:8):typeof re=="number"?[Oe,we]=[re,re]:[Oe=-1,we=8]=re}else(se==="circle"||se==="dashboard")&&(typeof re=="string"||typeof re=="undefined"?[Oe,we]=re==="small"?[60,60]:[120,120]:typeof re=="number"?[Oe,we]=[re,re]:(Oe=(xe=(de=re[0])!==null&&de!==void 0?de:re[1])!==null&&xe!==void 0?xe:120,we=(Ne=(ce=re[0])!==null&&ce!==void 0?ce:re[1])!==null&&Ne!==void 0?Ne:120));return[Oe,we]},ge=3,be=re=>ge/re*100;var Ge=re=>{const{prefixCls:se,trailColor:J=null,strokeLinecap:de="round",gapPosition:xe,gapDegree:ce,width:Ne=120,type:Oe,children:we,success:Re,size:st=Ne}=re,[tt,Ye]=pe(st,"circle");let{strokeWidth:ke}=re;ke===void 0&&(ke=Math.max(be(tt),6));const Be={width:tt,height:Ye,fontSize:tt*.15+6},it=c.useMemo(()=>{if(ce||ce===0)return ce;if(Oe==="dashboard")return 75},[ce,Oe]),Ve=xe||Oe==="dashboard"&&"bottom"||void 0,xt=Object.prototype.toString.call(re.strokeColor)==="[object Object]",_t=fe({success:Re,strokeColor:re.strokeColor}),Ot=d()(`${se}-inner`,{[`${se}-circle-gradient`]:xt}),wt=c.createElement(W,{percent:V(re),strokeWidth:ke,trailWidth:ke,strokeColor:_t,strokeLinecap:de,trailColor:J,prefixCls:se,gapDegree:it,gapPosition:Ve});return c.createElement("div",{className:Ot,style:Be},tt<=20?c.createElement(O.Z,{title:we},c.createElement("span",null,wt)):c.createElement(c.Fragment,null,wt,we))},qe=function(re,se){var J={};for(var de in re)Object.prototype.hasOwnProperty.call(re,de)&&se.indexOf(de)<0&&(J[de]=re[de]);if(re!=null&&typeof Object.getOwnPropertySymbols=="function")for(var xe=0,de=Object.getOwnPropertySymbols(re);xe{let se=[];return Object.keys(re).forEach(J=>{const de=parseFloat(J.replace(/%/g,""));isNaN(de)||se.push({key:de,value:re[J]})}),se=se.sort((J,de)=>J.key-de.key),se.map(J=>{let{key:de,value:xe}=J;return`${xe} ${de}%`}).join(", ")},ht=(re,se)=>{const{from:J=_.presetPrimaryColors.blue,to:de=_.presetPrimaryColors.blue,direction:xe=se==="rtl"?"to left":"to right"}=re,ce=qe(re,["from","to","direction"]);if(Object.keys(ce).length!==0){const Ne=Qe(ce);return{backgroundImage:`linear-gradient(${xe}, ${Ne})`}}return{backgroundImage:`linear-gradient(${xe}, ${J}, ${de})`}};var gt=re=>{const{prefixCls:se,direction:J,percent:de,size:xe,strokeWidth:ce,strokeColor:Ne,strokeLinecap:Oe="round",children:we,trailColor:Re=null,success:st}=re,tt=Ne&&typeof Ne!="string"?ht(Ne,J):{backgroundColor:Ne},Ye=Oe==="square"||Oe==="butt"?0:void 0,ke={backgroundColor:Re||void 0,borderRadius:Ye},Be=xe!=null?xe:[-1,ce||(xe==="small"?6:8)],[it,Ve]=pe(Be,"line",{strokeWidth:ce}),xt=Object.assign({width:`${U(de)}%`,height:Ve,borderRadius:Ye},tt),_t=A(re),Ot={width:`${U(_t)}%`,height:Ve,borderRadius:Ye,backgroundColor:st==null?void 0:st.strokeColor},wt={width:it<0?"100%":it,height:Ve};return c.createElement(c.Fragment,null,c.createElement("div",{className:`${se}-outer`,style:wt},c.createElement("div",{className:`${se}-inner`,style:ke},c.createElement("div",{className:`${se}-bg`,style:xt}),_t!==void 0?c.createElement("div",{className:`${se}-success-bg`,style:Ot}):null)),we)},$e=re=>{const{size:se,steps:J,percent:de=0,strokeWidth:xe=8,strokeColor:ce,trailColor:Ne=null,prefixCls:Oe,children:we}=re,Re=Math.round(J*(de/100)),st=se==="small"?2:14,tt=se!=null?se:[st,xe],[Ye,ke]=pe(tt,"step",{steps:J,strokeWidth:xe}),Be=Ye/J,it=new Array(J);for(let Ve=0;Ve{const se=re?"100%":"-100%";return new Xe.E4(`antProgress${re?"RTL":"LTR"}Active`,{"0%":{transform:`translateX(${se}) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(${se}) scaleX(0)`,opacity:.5},to:{transform:"translateX(0) scaleX(1)",opacity:0}})},H=re=>{const{componentCls:se,iconCls:J}=re;return{[se]:Object.assign(Object.assign({},(0,rt.Wf)(re)),{display:"inline-block","&-rtl":{direction:"rtl"},"&-line":{position:"relative",width:"100%",fontSize:re.fontSize,marginInlineEnd:re.marginXS,marginBottom:re.marginXS},[`${se}-outer`]:{display:"inline-block",width:"100%"},[`&${se}-show-info`]:{[`${se}-outer`]:{marginInlineEnd:`calc(-2em - ${re.marginXS}px)`,paddingInlineEnd:`calc(2em + ${re.paddingXS}px)`}},[`${se}-inner`]:{position:"relative",display:"inline-block",width:"100%",overflow:"hidden",verticalAlign:"middle",backgroundColor:re.progressRemainingColor,borderRadius:re.progressLineRadius},[`${se}-inner:not(${se}-circle-gradient)`]:{[`${se}-circle-path`]:{stroke:re.colorInfo}},[`${se}-success-bg, ${se}-bg`]:{position:"relative",backgroundColor:re.colorInfo,borderRadius:re.progressLineRadius,transition:`all ${re.motionDurationSlow} ${re.motionEaseInOutCirc}`},[`${se}-success-bg`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,backgroundColor:re.colorSuccess},[`${se}-text`]:{display:"inline-block",width:"2em",marginInlineStart:re.marginXS,color:re.progressInfoTextColor,lineHeight:1,whiteSpace:"nowrap",textAlign:"start",verticalAlign:"middle",wordBreak:"normal",[J]:{fontSize:re.fontSize}},[`&${se}-status-active`]:{[`${se}-bg::before`]:{position:"absolute",inset:0,backgroundColor:re.colorBgContainer,borderRadius:re.progressLineRadius,opacity:0,animationName:ne(),animationDuration:re.progressActiveMotionDuration,animationTimingFunction:re.motionEaseOutQuint,animationIterationCount:"infinite",content:'""'}},[`&${se}-rtl${se}-status-active`]:{[`${se}-bg::before`]:{animationName:ne(!0)}},[`&${se}-status-exception`]:{[`${se}-bg`]:{backgroundColor:re.colorError},[`${se}-text`]:{color:re.colorError}},[`&${se}-status-exception ${se}-inner:not(${se}-circle-gradient)`]:{[`${se}-circle-path`]:{stroke:re.colorError}},[`&${se}-status-success`]:{[`${se}-bg`]:{backgroundColor:re.colorSuccess},[`${se}-text`]:{color:re.colorSuccess}},[`&${se}-status-success ${se}-inner:not(${se}-circle-gradient)`]:{[`${se}-circle-path`]:{stroke:re.colorSuccess}}})}},R=re=>{const{componentCls:se,iconCls:J}=re;return{[se]:{[`${se}-circle-trail`]:{stroke:re.progressRemainingColor},[`&${se}-circle ${se}-inner`]:{position:"relative",lineHeight:1,backgroundColor:"transparent"},[`&${se}-circle ${se}-text`]:{position:"absolute",insetBlockStart:"50%",insetInlineStart:0,width:"100%",margin:0,padding:0,color:re.colorText,lineHeight:1,whiteSpace:"normal",textAlign:"center",transform:"translateY(-50%)",[J]:{fontSize:`${re.fontSize/re.fontSizeSM}em`}},[`${se}-circle&-status-exception`]:{[`${se}-text`]:{color:re.colorError}},[`${se}-circle&-status-success`]:{[`${se}-text`]:{color:re.colorSuccess}}},[`${se}-inline-circle`]:{lineHeight:1,[`${se}-inner`]:{verticalAlign:"bottom"}}}},P=re=>{const{componentCls:se}=re;return{[se]:{[`${se}-steps`]:{display:"inline-block","&-outer":{display:"flex",flexDirection:"row",alignItems:"center"},"&-item":{flexShrink:0,minWidth:re.progressStepMinWidth,marginInlineEnd:re.progressStepMarginInlineEnd,backgroundColor:re.progressRemainingColor,transition:`all ${re.motionDurationSlow}`,"&-active":{backgroundColor:re.colorInfo}}}}}},ae=re=>{const{componentCls:se,iconCls:J}=re;return{[se]:{[`${se}-small&-line, ${se}-small&-line ${se}-text ${J}`]:{fontSize:re.fontSizeSM}}}};var Q=(0,Ke.Z)("Progress",re=>{const se=re.marginXXS/2,J=(0,ye.TS)(re,{progressLineRadius:100,progressInfoTextColor:re.colorText,progressDefaultColor:re.colorInfo,progressRemainingColor:re.colorFillSecondary,progressStepMarginInlineEnd:se,progressStepMinWidth:se,progressActiveMotionDuration:"2.4s"});return[H(J),R(J),P(J),ae(J)]}),ie=function(re,se){var J={};for(var de in re)Object.prototype.hasOwnProperty.call(re,de)&&se.indexOf(de)<0&&(J[de]=re[de]);if(re!=null&&typeof Object.getOwnPropertySymbols=="function")for(var xe=0,de=Object.getOwnPropertySymbols(re);xe{const{prefixCls:J,className:de,rootClassName:xe,steps:ce,strokeColor:Ne,percent:Oe=0,size:we="default",showInfo:Re=!0,type:st="line",status:tt,format:Ye,style:ke}=re,Be=ie(re,["prefixCls","className","rootClassName","steps","strokeColor","percent","size","showInfo","type","status","format","style"]),it=c.useMemo(()=>{var Nt,At;const Ie=A(re);return parseInt(Ie!==void 0?(Nt=Ie!=null?Ie:0)===null||Nt===void 0?void 0:Nt.toString():(At=Oe!=null?Oe:0)===null||At===void 0?void 0:At.toString(),10)},[Oe,re.success,re.successPercent]),Ve=c.useMemo(()=>!je.includes(tt)&&it>=100?"success":tt||"normal",[tt,it]),{getPrefixCls:xt,direction:_t,progress:Ot}=c.useContext(m.E_),wt=xt("progress",J),[Yt,bt]=Q(wt),ze=c.useMemo(()=>{if(!Re)return null;const Nt=A(re);let At;const Ie=Ye||(Mt=>`${Mt}%`),Ee=st==="line";return Ye||Ve!=="exception"&&Ve!=="success"?At=Ie(U(Oe),U(Nt)):Ve==="exception"?At=Ee?c.createElement(o.Z,null):c.createElement(s.Z,null):Ve==="success"&&(At=Ee?c.createElement(a.Z,null):c.createElement(t.Z,null)),c.createElement("span",{className:`${wt}-text`,title:typeof At=="string"?At:void 0},At)},[Re,Oe,it,Ve,st,wt,Ye]),nt=Array.isArray(Ne)?Ne[0]:Ne,St=typeof Ne=="string"||Array.isArray(Ne)?Ne:void 0;let ut;st==="line"?ut=ce?c.createElement($e,Object.assign({},re,{strokeColor:St,prefixCls:wt,steps:ce}),ze):c.createElement(gt,Object.assign({},re,{strokeColor:nt,prefixCls:wt,direction:_t}),ze):(st==="circle"||st==="dashboard")&&(ut=c.createElement(Ge,Object.assign({},re,{strokeColor:nt,prefixCls:wt,progressStatus:Ve}),ze));const Vt=d()(wt,`${wt}-status-${Ve}`,`${wt}-${st==="dashboard"&&"circle"||ce&&"steps"||st}`,{[`${wt}-inline-circle`]:st==="circle"&&pe(we,"circle")[0]<=20,[`${wt}-show-info`]:Re,[`${wt}-${we}`]:typeof we=="string",[`${wt}-rtl`]:_t==="rtl"},Ot==null?void 0:Ot.className,de,xe,bt);return Yt(c.createElement("div",Object.assign({ref:se,style:Object.assign(Object.assign({},Ot==null?void 0:Ot.style),ke),className:Vt,role:"progressbar","aria-valuenow":it},(0,l.Z)(Be,["trailColor","strokeWidth","width","gapDegree","gapPosition","strokeLinecap","success","successPercent"])),ut))}),We=Se},86035:function(b,y,e){"use strict";e.d(y,{Ag:function(){return s},IH:function(){return n},w:function(){return o}});var a=e(58757);const t=a.createContext(null),o=t.Provider;y.ZP=t;const s=a.createContext(null),n=s.Provider},40256:function(b,y,e){"use strict";var a=e(87608),t=e.n(a),o=e(60409),s=e(33926),n=e(58757),d=e(61836),l=e(58785),c=e(86035),m=e(27538),g=e(44397);const M=n.forwardRef((h,S)=>{const{getPrefixCls:w,direction:C}=n.useContext(d.E_),[z,Z]=(0,o.Z)(h.defaultValue,{value:h.value}),N=ge=>{const be=z,Te=ge.target.value;"value"in h||Z(Te);const{onChange:Ge}=h;Ge&&Te!==be&&Ge(ge)},{prefixCls:L,className:$,rootClassName:D,options:T,buttonStyle:j="outline",disabled:G,children:k,size:te,style:Y,id:q,onMouseEnter:le,onMouseLeave:X,onFocus:W,onBlur:x}=h,O=w("radio",L),_=`${O}-group`,[U,A]=(0,g.Z)(O);let V=k;T&&T.length>0&&(V=T.map(ge=>typeof ge=="string"||typeof ge=="number"?n.createElement(m.Z,{key:ge.toString(),prefixCls:O,disabled:G,value:ge,checked:z===ge},ge):n.createElement(m.Z,{key:`radio-group-value-options-${ge.value}`,prefixCls:O,disabled:ge.disabled||G,value:ge.value,checked:z===ge.value,title:ge.title,style:ge.style},ge.label)));const fe=(0,l.Z)(te),pe=t()(_,`${_}-${j}`,{[`${_}-${fe}`]:fe,[`${_}-rtl`]:C==="rtl"},$,D,A);return U(n.createElement("div",Object.assign({},(0,s.Z)(h,{aria:!0,data:!0}),{className:pe,style:Y,onMouseEnter:le,onMouseLeave:X,onFocus:W,onBlur:x,id:q,ref:S}),n.createElement(c.w,{value:{onChange:N,value:z,disabled:h.disabled,name:h.name,optionType:h.optionType}},V)))});y.Z=n.memo(M)},10852:function(b,y,e){"use strict";var a=e(40256),t=e(27538),o=e(42253);const s=t.Z;s.Button=o.Z,s.Group=a.Z,s.__ANT_RADIO=!0,y.ZP=s},27538:function(b,y,e){"use strict";var a=e(87608),t=e.n(a),o=e(60357),s=e(21319),n=e(58757),d=e(61836),l=e(92428),c=e(81496),m=e(86035),g=e(44397),M=e(37486),h=e(78856),S=function(z,Z){var N={};for(var L in z)Object.prototype.hasOwnProperty.call(z,L)&&Z.indexOf(L)<0&&(N[L]=z[L]);if(z!=null&&typeof Object.getOwnPropertySymbols=="function")for(var $=0,L=Object.getOwnPropertySymbols(z);${var N,L;const $=n.useContext(m.ZP),D=n.useContext(m.Ag),{getPrefixCls:T,direction:j,radio:G}=n.useContext(d.E_),k=n.useRef(null),te=(0,s.sQ)(Z,k),{isFormItemInput:Y}=n.useContext(c.aM),q=Ge=>{var qe,Qe;(qe=z.onChange)===null||qe===void 0||qe.call(z,Ge),(Qe=$==null?void 0:$.onChange)===null||Qe===void 0||Qe.call($,Ge)},{prefixCls:le,className:X,rootClassName:W,children:x,style:O}=z,_=S(z,["prefixCls","className","rootClassName","children","style"]),U=T("radio",le),A=(($==null?void 0:$.optionType)||D)==="button",V=A?`${U}-button`:U,[fe,pe]=(0,g.Z)(U),ge=Object.assign({},_),be=n.useContext(l.Z);$&&(ge.name=$.name,ge.onChange=q,ge.checked=z.value===$.value,ge.disabled=(N=ge.disabled)!==null&&N!==void 0?N:$.disabled),ge.disabled=(L=ge.disabled)!==null&&L!==void 0?L:be;const Te=t()(`${V}-wrapper`,{[`${V}-wrapper-checked`]:ge.checked,[`${V}-wrapper-disabled`]:ge.disabled,[`${V}-wrapper-rtl`]:j==="rtl",[`${V}-wrapper-in-form-item`]:Y},G==null?void 0:G.className,X,W,pe);return fe(n.createElement(M.Z,{component:"Radio",disabled:ge.disabled},n.createElement("label",{className:Te,style:Object.assign(Object.assign({},G==null?void 0:G.style),O),onMouseEnter:z.onMouseEnter,onMouseLeave:z.onMouseLeave},n.createElement(o.Z,Object.assign({},ge,{className:t()(ge.className,!A&&h.A),type:"radio",prefixCls:V,ref:te})),x!==void 0?n.createElement("span",null,x):null)))},C=n.forwardRef(w);y.Z=C},42253:function(b,y,e){"use strict";var a=e(58757),t=e(61836),o=e(86035),s=e(27538),n=function(l,c){var m={};for(var g in l)Object.prototype.hasOwnProperty.call(l,g)&&c.indexOf(g)<0&&(m[g]=l[g]);if(l!=null&&typeof Object.getOwnPropertySymbols=="function")for(var M=0,g=Object.getOwnPropertySymbols(l);M{const{getPrefixCls:m}=a.useContext(t.E_),{prefixCls:g}=l,M=n(l,["prefixCls"]),h=m("radio",g);return a.createElement(o.IH,{value:"button"},a.createElement(s.Z,Object.assign({prefixCls:h},M,{type:"radio",ref:c})))};y.Z=a.forwardRef(d)},44397:function(b,y,e){"use strict";var a=e(78330),t=e(52628),o=e(22151);const s=c=>{const{componentCls:m,antCls:g}=c,M=`${m}-group`;return{[M]:Object.assign(Object.assign({},(0,a.Wf)(c)),{display:"inline-block",fontSize:0,[`&${M}-rtl`]:{direction:"rtl"},[`${g}-badge ${g}-badge-count`]:{zIndex:1},[`> ${g}-badge:not(:first-child) > ${g}-button-wrapper`]:{borderInlineStart:"none"}})}},n=c=>{const{componentCls:m,wrapperMarginInlineEnd:g,colorPrimary:M,radioSize:h,motionDurationSlow:S,motionDurationMid:w,motionEaseInOutCirc:C,colorBgContainer:z,colorBorder:Z,lineWidth:N,dotSize:L,colorBgContainerDisabled:$,colorTextDisabled:D,paddingXS:T,dotColorDisabled:j,lineType:G,radioDotDisabledSize:k,wireframe:te,colorWhite:Y}=c,q=`${m}-inner`;return{[`${m}-wrapper`]:Object.assign(Object.assign({},(0,a.Wf)(c)),{display:"inline-flex",alignItems:"baseline",marginInlineStart:0,marginInlineEnd:g,cursor:"pointer",[`&${m}-wrapper-rtl`]:{direction:"rtl"},"&-disabled":{cursor:"not-allowed",color:c.colorTextDisabled},"&::after":{display:"inline-block",width:0,overflow:"hidden",content:'"\\a0"'},[`${m}-checked::after`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:"100%",height:"100%",border:`${N}px ${G} ${M}`,borderRadius:"50%",visibility:"hidden",content:'""'},[m]:Object.assign(Object.assign({},(0,a.Wf)(c)),{position:"relative",display:"inline-block",outline:"none",cursor:"pointer",alignSelf:"center",borderRadius:"50%"}),[`${m}-wrapper:hover &, + &:hover ${q}`]:{borderColor:M},[`${m}-input:focus-visible + ${q}`]:Object.assign({},(0,a.oN)(c)),[`${m}:hover::after, ${m}-wrapper:hover &::after`]:{visibility:"visible"},[`${m}-inner`]:{"&::after":{boxSizing:"border-box",position:"absolute",insetBlockStart:"50%",insetInlineStart:"50%",display:"block",width:h,height:h,marginBlockStart:h/-2,marginInlineStart:h/-2,backgroundColor:te?M:Y,borderBlockStart:0,borderInlineStart:0,borderRadius:h,transform:"scale(0)",opacity:0,transition:`all ${S} ${C}`,content:'""'},boxSizing:"border-box",position:"relative",insetBlockStart:0,insetInlineStart:0,display:"block",width:h,height:h,backgroundColor:z,borderColor:Z,borderStyle:"solid",borderWidth:N,borderRadius:"50%",transition:`all ${w}`},[`${m}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0},[`${m}-checked`]:{[q]:{borderColor:M,backgroundColor:te?z:M,"&::after":{transform:`scale(${L/h})`,opacity:1,transition:`all ${S} ${C}`}}},[`${m}-disabled`]:{cursor:"not-allowed",[q]:{backgroundColor:$,borderColor:Z,cursor:"not-allowed","&::after":{backgroundColor:j}},[`${m}-input`]:{cursor:"not-allowed"},[`${m}-disabled + span`]:{color:D,cursor:"not-allowed"},[`&${m}-checked`]:{[q]:{"&::after":{transform:`scale(${k/h})`}}}},[`span${m} + *`]:{paddingInlineStart:T,paddingInlineEnd:T}})}},d=c=>{const{buttonColor:m,controlHeight:g,componentCls:M,lineWidth:h,lineType:S,colorBorder:w,motionDurationSlow:C,motionDurationMid:z,buttonPaddingInline:Z,fontSize:N,buttonBg:L,fontSizeLG:$,controlHeightLG:D,controlHeightSM:T,paddingXS:j,borderRadius:G,borderRadiusSM:k,borderRadiusLG:te,buttonCheckedBg:Y,buttonSolidCheckedColor:q,colorTextDisabled:le,colorBgContainerDisabled:X,buttonCheckedBgDisabled:W,buttonCheckedColorDisabled:x,colorPrimary:O,colorPrimaryHover:_,colorPrimaryActive:U}=c;return{[`${M}-button-wrapper`]:{position:"relative",display:"inline-block",height:g,margin:0,paddingInline:Z,paddingBlock:0,color:m,fontSize:N,lineHeight:`${g-h*2}px`,background:L,border:`${h}px ${S} ${w}`,borderBlockStartWidth:h+.02,borderInlineStartWidth:0,borderInlineEndWidth:h,cursor:"pointer",transition:[`color ${z}`,`background ${z}`,`box-shadow ${z}`].join(","),a:{color:m},[`> ${M}-button`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,zIndex:-1,width:"100%",height:"100%"},"&:not(:first-child)":{"&::before":{position:"absolute",insetBlockStart:-h,insetInlineStart:-h,display:"block",boxSizing:"content-box",width:1,height:"100%",paddingBlock:h,paddingInline:0,backgroundColor:w,transition:`background-color ${C}`,content:'""'}},"&:first-child":{borderInlineStart:`${h}px ${S} ${w}`,borderStartStartRadius:G,borderEndStartRadius:G},"&:last-child":{borderStartEndRadius:G,borderEndEndRadius:G},"&:first-child:last-child":{borderRadius:G},[`${M}-group-large &`]:{height:D,fontSize:$,lineHeight:`${D-h*2}px`,"&:first-child":{borderStartStartRadius:te,borderEndStartRadius:te},"&:last-child":{borderStartEndRadius:te,borderEndEndRadius:te}},[`${M}-group-small &`]:{height:T,paddingInline:j-h,paddingBlock:0,lineHeight:`${T-h*2}px`,"&:first-child":{borderStartStartRadius:k,borderEndStartRadius:k},"&:last-child":{borderStartEndRadius:k,borderEndEndRadius:k}},"&:hover":{position:"relative",color:O},"&:has(:focus-visible)":Object.assign({},(0,a.oN)(c)),[`${M}-inner, input[type='checkbox'], input[type='radio']`]:{width:0,height:0,opacity:0,pointerEvents:"none"},[`&-checked:not(${M}-button-wrapper-disabled)`]:{zIndex:1,color:O,background:Y,borderColor:O,"&::before":{backgroundColor:O},"&:first-child":{borderColor:O},"&:hover":{color:_,borderColor:_,"&::before":{backgroundColor:_}},"&:active":{color:U,borderColor:U,"&::before":{backgroundColor:U}}},[`${M}-group-solid &-checked:not(${M}-button-wrapper-disabled)`]:{color:q,background:O,borderColor:O,"&:hover":{color:q,background:_,borderColor:_},"&:active":{color:q,background:U,borderColor:U}},"&-disabled":{color:le,backgroundColor:X,borderColor:w,cursor:"not-allowed","&:first-child, &:hover":{color:le,backgroundColor:X,borderColor:w}},[`&-disabled${M}-button-wrapper-checked`]:{color:x,backgroundColor:W,borderColor:w,boxShadow:"none"}}}},l=c=>c-4*2;y.Z=(0,t.Z)("Radio",c=>{const{controlOutline:m,controlOutlineWidth:g,radioSize:M}=c,h=`0 0 0 ${g}px ${m}`,S=h,w=l(M),C=(0,o.TS)(c,{radioDotDisabledSize:w,radioFocusShadow:h,radioButtonFocusShadow:S});return[s(C),n(C),d(C)]},c=>{const{wireframe:m,padding:g,marginXS:M,lineWidth:h,fontSizeLG:S,colorText:w,colorBgContainer:C,colorTextDisabled:z,controlItemBgActiveDisabled:Z,colorTextLightSolid:N}=c,L=4,$=S,D=m?l($):$-(L+h)*2;return{radioSize:$,dotSize:D,dotColorDisabled:z,buttonSolidCheckedColor:N,buttonBg:C,buttonCheckedBg:C,buttonColor:w,buttonCheckedBgDisabled:Z,buttonCheckedColorDisabled:z,buttonPaddingInline:g-h,wrapperMarginInlineEnd:M}})},12632:function(b,y,e){"use strict";e.d(y,{ZP:function(){return O}});var a=e(85678),t=e(79999),o=e(69831),s=e(60698),n=e(58757),d={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"warning",theme:"filled"},l=d,c=e(17202),m=function(U,A){return n.createElement(c.Z,(0,s.Z)({},U,{ref:A,icon:l}))},g=n.forwardRef(m),M=e(87608),h=e.n(M),S=e(61836),C=()=>n.createElement("svg",{width:"252",height:"294"},n.createElement("defs",null,n.createElement("path",{d:"M0 .387h251.772v251.772H0z"})),n.createElement("g",{fill:"none",fillRule:"evenodd"},n.createElement("g",{transform:"translate(0 .012)"},n.createElement("mask",{fill:"#fff"}),n.createElement("path",{d:"M0 127.32v-2.095C0 56.279 55.892.387 124.838.387h2.096c68.946 0 124.838 55.892 124.838 124.838v2.096c0 68.946-55.892 124.838-124.838 124.838h-2.096C55.892 252.16 0 196.267 0 127.321",fill:"#E4EBF7",mask:"url(#b)"})),n.createElement("path",{d:"M39.755 130.84a8.276 8.276 0 1 1-16.468-1.66 8.276 8.276 0 0 1 16.468 1.66",fill:"#FFF"}),n.createElement("path",{d:"M36.975 134.297l10.482 5.943M48.373 146.508l-12.648 10.788",stroke:"#FFF",strokeWidth:"2"}),n.createElement("path",{d:"M39.875 159.352a5.667 5.667 0 1 1-11.277-1.136 5.667 5.667 0 0 1 11.277 1.136M57.588 143.247a5.708 5.708 0 1 1-11.358-1.145 5.708 5.708 0 0 1 11.358 1.145M99.018 26.875l29.82-.014a4.587 4.587 0 1 0-.003-9.175l-29.82.013a4.587 4.587 0 1 0 .003 9.176M110.424 45.211l29.82-.013a4.588 4.588 0 0 0-.004-9.175l-29.82.013a4.587 4.587 0 1 0 .004 9.175",fill:"#FFF"}),n.createElement("path",{d:"M112.798 26.861v-.002l15.784-.006a4.588 4.588 0 1 0 .003 9.175l-15.783.007v-.002a4.586 4.586 0 0 0-.004-9.172M184.523 135.668c-.553 5.485-5.447 9.483-10.931 8.93-5.485-.553-9.483-5.448-8.93-10.932.552-5.485 5.447-9.483 10.932-8.93 5.485.553 9.483 5.447 8.93 10.932",fill:"#FFF"}),n.createElement("path",{d:"M179.26 141.75l12.64 7.167M193.006 156.477l-15.255 13.011",stroke:"#FFF",strokeWidth:"2"}),n.createElement("path",{d:"M184.668 170.057a6.835 6.835 0 1 1-13.6-1.372 6.835 6.835 0 0 1 13.6 1.372M203.34 153.325a6.885 6.885 0 1 1-13.7-1.382 6.885 6.885 0 0 1 13.7 1.382",fill:"#FFF"}),n.createElement("path",{d:"M151.931 192.324a2.222 2.222 0 1 1-4.444 0 2.222 2.222 0 0 1 4.444 0zM225.27 116.056a2.222 2.222 0 1 1-4.445 0 2.222 2.222 0 0 1 4.444 0zM216.38 151.08a2.223 2.223 0 1 1-4.446-.001 2.223 2.223 0 0 1 4.446 0zM176.917 107.636a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM195.291 92.165a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM202.058 180.711a2.223 2.223 0 1 1-4.446 0 2.223 2.223 0 0 1 4.446 0z",stroke:"#FFF",strokeWidth:"2"}),n.createElement("path",{stroke:"#FFF",strokeWidth:"2",d:"M214.404 153.302l-1.912 20.184-10.928 5.99M173.661 174.792l-6.356 9.814h-11.36l-4.508 6.484M174.941 125.168v-15.804M220.824 117.25l-12.84 7.901-15.31-7.902V94.39"}),n.createElement("path",{d:"M166.588 65.936h-3.951a4.756 4.756 0 0 1-4.743-4.742 4.756 4.756 0 0 1 4.743-4.743h3.951a4.756 4.756 0 0 1 4.743 4.743 4.756 4.756 0 0 1-4.743 4.742",fill:"#FFF"}),n.createElement("path",{d:"M174.823 30.03c0-16.281 13.198-29.48 29.48-29.48 16.28 0 29.48 13.199 29.48 29.48 0 16.28-13.2 29.48-29.48 29.48-16.282 0-29.48-13.2-29.48-29.48",fill:"#1677ff"}),n.createElement("path",{d:"M205.952 38.387c.5.5.785 1.142.785 1.928s-.286 1.465-.785 1.964c-.572.5-1.214.75-2 .75-.785 0-1.429-.285-1.929-.785-.572-.5-.82-1.143-.82-1.929s.248-1.428.82-1.928c.5-.5 1.144-.75 1.93-.75.785 0 1.462.25 1.999.75m4.285-19.463c1.428 1.249 2.143 2.963 2.143 5.142 0 1.712-.427 3.13-1.219 4.25-.067.096-.137.18-.218.265-.416.429-1.41 1.346-2.956 2.699a5.07 5.07 0 0 0-1.428 1.75 5.207 5.207 0 0 0-.536 2.357v.5h-4.107v-.5c0-1.357.215-2.536.714-3.5.464-.964 1.857-2.464 4.178-4.536l.43-.5c.643-.785.964-1.643.964-2.535 0-1.18-.358-2.108-1-2.785-.678-.68-1.643-1.001-2.858-1.001-1.536 0-2.642.464-3.357 1.43-.37.5-.621 1.135-.76 1.904a1.999 1.999 0 0 1-1.971 1.63h-.004c-1.277 0-2.257-1.183-1.98-2.43.337-1.518 1.02-2.78 2.073-3.784 1.536-1.5 3.607-2.25 6.25-2.25 2.32 0 4.214.607 5.642 1.894",fill:"#FFF"}),n.createElement("path",{d:"M52.04 76.131s21.81 5.36 27.307 15.945c5.575 10.74-6.352 9.26-15.73 4.935-10.86-5.008-24.7-11.822-11.577-20.88",fill:"#FFB594"}),n.createElement("path",{d:"M90.483 67.504l-.449 2.893c-.753.49-4.748-2.663-4.748-2.663l-1.645.748-1.346-5.684s6.815-4.589 8.917-5.018c2.452-.501 9.884.94 10.7 2.278 0 0 1.32.486-2.227.69-3.548.203-5.043.447-6.79 3.132-1.747 2.686-2.412 3.624-2.412 3.624",fill:"#FFC6A0"}),n.createElement("path",{d:"M128.055 111.367c-2.627-7.724-6.15-13.18-8.917-15.478-3.5-2.906-9.34-2.225-11.366-4.187-1.27-1.231-3.215-1.197-3.215-1.197s-14.98-3.158-16.828-3.479c-2.37-.41-2.124-.714-6.054-1.405-1.57-1.907-2.917-1.122-2.917-1.122l-7.11-1.383c-.853-1.472-2.423-1.023-2.423-1.023l-2.468-.897c-1.645 9.976-7.74 13.796-7.74 13.796 1.795 1.122 15.703 8.3 15.703 8.3l5.107 37.11s-3.321 5.694 1.346 9.109c0 0 19.883-3.743 34.921-.329 0 0 3.047-2.546.972-8.806.523-3.01 1.394-8.263 1.736-11.622.385.772 2.019 1.918 3.14 3.477 0 0 9.407-7.365 11.052-14.012-.832-.723-1.598-1.585-2.267-2.453-.567-.736-.358-2.056-.765-2.717-.669-1.084-1.804-1.378-1.907-1.682",fill:"#FFF"}),n.createElement("path",{d:"M101.09 289.998s4.295 2.041 7.354 1.021c2.821-.94 4.53.668 7.08 1.178 2.55.51 6.874 1.1 11.686-1.26-.103-5.51-6.889-3.98-11.96-6.713-2.563-1.38-3.784-4.722-3.598-8.799h-9.402s-1.392 10.52-1.16 14.573",fill:"#CBD1D1"}),n.createElement("path",{d:"M101.067 289.826s2.428 1.271 6.759.653c3.058-.437 3.712.481 7.423 1.031 3.712.55 10.724-.069 11.823-.894.413 1.1-.343 2.063-.343 2.063s-1.512.603-4.812.824c-2.03.136-5.8.291-7.607-.503-1.787-1.375-5.247-1.903-5.728-.241-3.918.95-7.355-.286-7.355-.286l-.16-2.647z",fill:"#2B0849"}),n.createElement("path",{d:"M108.341 276.044h3.094s-.103 6.702 4.536 8.558c-4.64.618-8.558-2.303-7.63-8.558",fill:"#A4AABA"}),n.createElement("path",{d:"M57.542 272.401s-2.107 7.416-4.485 12.306c-1.798 3.695-4.225 7.492 5.465 7.492 6.648 0 8.953-.48 7.423-6.599-1.53-6.12.266-13.199.266-13.199h-8.669z",fill:"#CBD1D1"}),n.createElement("path",{d:"M51.476 289.793s2.097 1.169 6.633 1.169c6.083 0 8.249-1.65 8.249-1.65s.602 1.114-.619 2.165c-.993.855-3.597 1.591-7.39 1.546-4.145-.048-5.832-.566-6.736-1.168-.825-.55-.687-1.58-.137-2.062",fill:"#2B0849"}),n.createElement("path",{d:"M58.419 274.304s.033 1.519-.314 2.93c-.349 1.42-1.078 3.104-1.13 4.139-.058 1.151 4.537 1.58 5.155.034.62-1.547 1.294-6.427 1.913-7.252.619-.825-4.903-2.119-5.624.15",fill:"#A4AABA"}),n.createElement("path",{d:"M99.66 278.514l13.378.092s1.298-54.52 1.853-64.403c.554-9.882 3.776-43.364 1.002-63.128l-12.547-.644-22.849.78s-.434 3.966-1.195 9.976c-.063.496-.682.843-.749 1.365-.075.585.423 1.354.32 1.966-2.364 14.08-6.377 33.104-8.744 46.677-.116.666-1.234 1.009-1.458 2.691-.04.302.211 1.525.112 1.795-6.873 18.744-10.949 47.842-14.277 61.885l14.607-.014s2.197-8.57 4.03-16.97c2.811-12.886 23.111-85.01 23.111-85.01l3.016-.521 1.043 46.35s-.224 1.234.337 2.02c.56.785-.56 1.123-.392 2.244l.392 1.794s-.449 7.178-.898 11.89c-.448 4.71-.092 39.165-.092 39.165",fill:"#7BB2F9"}),n.createElement("path",{d:"M76.085 221.626c1.153.094 4.038-2.019 6.955-4.935M106.36 225.142s2.774-1.11 6.103-3.883",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M107.275 222.1s2.773-1.11 6.102-3.884",stroke:"#648BD8",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M74.74 224.767s2.622-.591 6.505-3.365M86.03 151.634c-.27 3.106.3 8.525-4.336 9.123M103.625 149.88s.11 14.012-1.293 15.065c-2.219 1.664-2.99 1.944-2.99 1.944M99.79 150.438s.035 12.88-1.196 24.377M93.673 175.911s7.212-1.664 9.431-1.664M74.31 205.861a212.013 212.013 0 0 1-.979 4.56s-1.458 1.832-1.009 3.776c.449 1.944-.947 2.045-4.985 15.355-1.696 5.59-4.49 18.591-6.348 27.597l-.231 1.12M75.689 197.807a320.934 320.934 0 0 1-.882 4.754M82.591 152.233L81.395 162.7s-1.097.15-.5 2.244c.113 1.346-2.674 15.775-5.18 30.43M56.12 274.418h13.31",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M116.241 148.22s-17.047-3.104-35.893.2c.158 2.514-.003 4.15-.003 4.15s14.687-2.818 35.67-.312c.252-2.355.226-4.038.226-4.038",fill:"#192064"}),n.createElement("path",{d:"M106.322 151.165l.003-4.911a.81.81 0 0 0-.778-.815c-2.44-.091-5.066-.108-7.836-.014a.818.818 0 0 0-.789.815l-.003 4.906a.81.81 0 0 0 .831.813c2.385-.06 4.973-.064 7.73.017a.815.815 0 0 0 .842-.81",fill:"#FFF"}),n.createElement("path",{d:"M105.207 150.233l.002-3.076a.642.642 0 0 0-.619-.646 94.321 94.321 0 0 0-5.866-.01.65.65 0 0 0-.63.647v3.072a.64.64 0 0 0 .654.644 121.12 121.12 0 0 1 5.794.011c.362.01.665-.28.665-.642",fill:"#192064"}),n.createElement("path",{d:"M100.263 275.415h12.338M101.436 270.53c.006 3.387.042 5.79.111 6.506M101.451 264.548a915.75 915.75 0 0 0-.015 4.337M100.986 174.965l.898 44.642s.673 1.57-.225 2.692c-.897 1.122 2.468.673.898 2.243-1.57 1.57.897 1.122 0 3.365-.596 1.489-.994 21.1-1.096 35.146",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M46.876 83.427s-.516 6.045 7.223 5.552c11.2-.712 9.218-9.345 31.54-21.655-.786-2.708-2.447-4.744-2.447-4.744s-11.068 3.11-22.584 8.046c-6.766 2.9-13.395 6.352-13.732 12.801M104.46 91.057l.941-5.372-8.884-11.43-5.037 5.372-1.74 7.834a.321.321 0 0 0 .108.32c.965.8 6.5 5.013 14.347 3.544a.332.332 0 0 0 .264-.268",fill:"#FFC6A0"}),n.createElement("path",{d:"M93.942 79.387s-4.533-2.853-2.432-6.855c1.623-3.09 4.513 1.133 4.513 1.133s.52-3.642 3.121-3.642c.52-1.04 1.561-4.162 1.561-4.162s11.445 2.601 13.526 3.121c0 5.203-2.304 19.424-7.84 19.861-8.892.703-12.449-9.456-12.449-9.456",fill:"#FFC6A0"}),n.createElement("path",{d:"M113.874 73.446c2.601-2.081 3.47-9.722 3.47-9.722s-2.479-.49-6.64-2.05c-4.683-2.081-12.798-4.747-17.48.976-9.668 3.223-2.05 19.823-2.05 19.823l2.713-3.021s-3.935-3.287-2.08-6.243c2.17-3.462 3.92 1.073 3.92 1.073s.637-2.387 3.581-3.342c.355-.71 1.036-2.674 1.432-3.85a1.073 1.073 0 0 1 1.263-.704c2.4.558 8.677 2.019 11.356 2.662.522.125.871.615.82 1.15l-.305 3.248z",fill:"#520038"}),n.createElement("path",{d:"M104.977 76.064c-.103.61-.582 1.038-1.07.956-.489-.083-.801-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.644.698 1.254M112.132 77.694c-.103.61-.582 1.038-1.07.956-.488-.083-.8-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.643.698 1.254",fill:"#552950"}),n.createElement("path",{stroke:"#DB836E",strokeWidth:"1.118",strokeLinecap:"round",strokeLinejoin:"round",d:"M110.13 74.84l-.896 1.61-.298 4.357h-2.228"}),n.createElement("path",{d:"M110.846 74.481s1.79-.716 2.506.537",stroke:"#5C2552",strokeWidth:"1.118",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M92.386 74.282s.477-1.114 1.113-.716c.637.398 1.274 1.433.558 1.99-.717.556.159 1.67.159 1.67",stroke:"#DB836E",strokeWidth:"1.118",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M103.287 72.93s1.83 1.113 4.137.954",stroke:"#5C2552",strokeWidth:"1.118",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M103.685 81.762s2.227 1.193 4.376 1.193M104.64 84.308s.954.398 1.511.318M94.693 81.205s2.308 7.4 10.424 7.639",stroke:"#DB836E",strokeWidth:"1.118",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M81.45 89.384s.45 5.647-4.935 12.787M69 82.654s-.726 9.282-8.204 14.206",stroke:"#E4EBF7",strokeWidth:"1.101",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M129.405 122.865s-5.272 7.403-9.422 10.768",stroke:"#E4EBF7",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M119.306 107.329s.452 4.366-2.127 32.062",stroke:"#E4EBF7",strokeWidth:"1.101",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M150.028 151.232h-49.837a1.01 1.01 0 0 1-1.01-1.01v-31.688c0-.557.452-1.01 1.01-1.01h49.837c.558 0 1.01.453 1.01 1.01v31.688a1.01 1.01 0 0 1-1.01 1.01",fill:"#F2D7AD"}),n.createElement("path",{d:"M150.29 151.232h-19.863v-33.707h20.784v32.786a.92.92 0 0 1-.92.92",fill:"#F4D19D"}),n.createElement("path",{d:"M123.554 127.896H92.917a.518.518 0 0 1-.425-.816l6.38-9.113c.193-.277.51-.442.85-.442h31.092l-7.26 10.371z",fill:"#F2D7AD"}),n.createElement("path",{fill:"#CC9B6E",d:"M123.689 128.447H99.25v-.519h24.169l7.183-10.26.424.298z"}),n.createElement("path",{d:"M158.298 127.896h-18.669a2.073 2.073 0 0 1-1.659-.83l-7.156-9.541h19.965c.49 0 .95.23 1.244.622l6.69 8.92a.519.519 0 0 1-.415.83",fill:"#F4D19D"}),n.createElement("path",{fill:"#CC9B6E",d:"M157.847 128.479h-19.384l-7.857-10.475.415-.31 7.7 10.266h19.126zM130.554 150.685l-.032-8.177.519-.002.032 8.177z"}),n.createElement("path",{fill:"#CC9B6E",d:"M130.511 139.783l-.08-21.414.519-.002.08 21.414zM111.876 140.932l-.498-.143 1.479-5.167.498.143zM108.437 141.06l-2.679-2.935 2.665-3.434.41.318-2.397 3.089 2.384 2.612zM116.607 141.06l-.383-.35 2.383-2.612-2.397-3.089.41-.318 2.665 3.434z"}),n.createElement("path",{d:"M154.316 131.892l-3.114-1.96.038 3.514-1.043.092c-1.682.115-3.634.23-4.789.23-1.902 0-2.693 2.258 2.23 2.648l-2.645-.596s-2.168 1.317.504 2.3c0 0-1.58 1.217.561 2.58-.584 3.504 5.247 4.058 7.122 3.59 1.876-.47 4.233-2.359 4.487-5.16.28-3.085-.89-5.432-3.35-7.238",fill:"#FFC6A0"}),n.createElement("path",{d:"M153.686 133.577s-6.522.47-8.36.372c-1.836-.098-1.904 2.19 2.359 2.264 3.739.15 5.451-.044 5.451-.044",stroke:"#DB836E",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M145.16 135.877c-1.85 1.346.561 2.355.561 2.355s3.478.898 6.73.617",stroke:"#DB836E",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M151.89 141.71s-6.28.111-6.73-2.132c-.223-1.346.45-1.402.45-1.402M146.114 140.868s-1.103 3.16 5.44 3.533M151.202 129.932v3.477M52.838 89.286c3.533-.337 8.423-1.248 13.582-7.754",stroke:"#DB836E",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M168.567 248.318a6.647 6.647 0 0 1-6.647-6.647v-66.466a6.647 6.647 0 1 1 13.294 0v66.466a6.647 6.647 0 0 1-6.647 6.647",fill:"#5BA02E"}),n.createElement("path",{d:"M176.543 247.653a6.647 6.647 0 0 1-6.646-6.647v-33.232a6.647 6.647 0 1 1 13.293 0v33.232a6.647 6.647 0 0 1-6.647 6.647",fill:"#92C110"}),n.createElement("path",{d:"M186.443 293.613H158.92a3.187 3.187 0 0 1-3.187-3.187v-46.134a3.187 3.187 0 0 1 3.187-3.187h27.524a3.187 3.187 0 0 1 3.187 3.187v46.134a3.187 3.187 0 0 1-3.187 3.187",fill:"#F2D7AD"}),n.createElement("path",{d:"M88.979 89.48s7.776 5.384 16.6 2.842",stroke:"#E4EBF7",strokeWidth:"1.101",strokeLinecap:"round",strokeLinejoin:"round"}))),Z=()=>n.createElement("svg",{width:"254",height:"294"},n.createElement("defs",null,n.createElement("path",{d:"M0 .335h253.49v253.49H0z"}),n.createElement("path",{d:"M0 293.665h253.49V.401H0z"})),n.createElement("g",{fill:"none",fillRule:"evenodd"},n.createElement("g",{transform:"translate(0 .067)"},n.createElement("mask",{fill:"#fff"}),n.createElement("path",{d:"M0 128.134v-2.11C0 56.608 56.273.334 125.69.334h2.11c69.416 0 125.69 56.274 125.69 125.69v2.11c0 69.417-56.274 125.69-125.69 125.69h-2.11C56.273 253.824 0 197.551 0 128.134",fill:"#E4EBF7",mask:"url(#b)"})),n.createElement("path",{d:"M39.989 132.108a8.332 8.332 0 1 1-16.581-1.671 8.332 8.332 0 0 1 16.58 1.671",fill:"#FFF"}),n.createElement("path",{d:"M37.19 135.59l10.553 5.983M48.665 147.884l-12.734 10.861",stroke:"#FFF",strokeWidth:"2"}),n.createElement("path",{d:"M40.11 160.816a5.706 5.706 0 1 1-11.354-1.145 5.706 5.706 0 0 1 11.354 1.145M57.943 144.6a5.747 5.747 0 1 1-11.436-1.152 5.747 5.747 0 0 1 11.436 1.153M99.656 27.434l30.024-.013a4.619 4.619 0 1 0-.004-9.238l-30.024.013a4.62 4.62 0 0 0 .004 9.238M111.14 45.896l30.023-.013a4.62 4.62 0 1 0-.004-9.238l-30.024.013a4.619 4.619 0 1 0 .004 9.238",fill:"#FFF"}),n.createElement("path",{d:"M113.53 27.421v-.002l15.89-.007a4.619 4.619 0 1 0 .005 9.238l-15.892.007v-.002a4.618 4.618 0 0 0-.004-9.234M150.167 70.091h-3.979a4.789 4.789 0 0 1-4.774-4.775 4.788 4.788 0 0 1 4.774-4.774h3.979a4.789 4.789 0 0 1 4.775 4.774 4.789 4.789 0 0 1-4.775 4.775",fill:"#FFF"}),n.createElement("path",{d:"M171.687 30.234c0-16.392 13.289-29.68 29.681-29.68 16.392 0 29.68 13.288 29.68 29.68 0 16.393-13.288 29.681-29.68 29.681s-29.68-13.288-29.68-29.68",fill:"#FF603B"}),n.createElement("path",{d:"M203.557 19.435l-.676 15.035a1.514 1.514 0 0 1-3.026 0l-.675-15.035a2.19 2.19 0 1 1 4.377 0m-.264 19.378c.513.477.77 1.1.77 1.87s-.257 1.393-.77 1.907c-.55.476-1.21.733-1.943.733a2.545 2.545 0 0 1-1.87-.77c-.55-.514-.806-1.136-.806-1.87 0-.77.256-1.393.806-1.87.513-.513 1.137-.733 1.87-.733.77 0 1.43.22 1.943.733",fill:"#FFF"}),n.createElement("path",{d:"M119.3 133.275c4.426-.598 3.612-1.204 4.079-4.778.675-5.18-3.108-16.935-8.262-25.118-1.088-10.72-12.598-11.24-12.598-11.24s4.312 4.895 4.196 16.199c1.398 5.243.804 14.45.804 14.45s5.255 11.369 11.78 10.487",fill:"#FFB594"}),n.createElement("path",{d:"M100.944 91.61s1.463-.583 3.211.582c8.08 1.398 10.368 6.706 11.3 11.368 1.864 1.282 1.864 2.33 1.864 3.496.365.777 1.515 3.03 1.515 3.03s-7.225 1.748-10.954 6.758c-1.399-6.41-6.936-25.235-6.936-25.235",fill:"#FFF"}),n.createElement("path",{d:"M94.008 90.5l1.019-5.815-9.23-11.874-5.233 5.581-2.593 9.863s8.39 5.128 16.037 2.246",fill:"#FFB594"}),n.createElement("path",{d:"M82.931 78.216s-4.557-2.868-2.445-6.892c1.632-3.107 4.537 1.139 4.537 1.139s.524-3.662 3.139-3.662c.523-1.046 1.569-4.184 1.569-4.184s11.507 2.615 13.6 3.138c-.001 5.23-2.317 19.529-7.884 19.969-8.94.706-12.516-9.508-12.516-9.508",fill:"#FFC6A0"}),n.createElement("path",{d:"M102.971 72.243c2.616-2.093 3.489-9.775 3.489-9.775s-2.492-.492-6.676-2.062c-4.708-2.092-12.867-4.771-17.575.982-9.54 4.41-2.062 19.93-2.062 19.93l2.729-3.037s-3.956-3.304-2.092-6.277c2.183-3.48 3.943 1.08 3.943 1.08s.64-2.4 3.6-3.36c.356-.714 1.04-2.69 1.44-3.872a1.08 1.08 0 0 1 1.27-.707c2.41.56 8.723 2.03 11.417 2.676.524.126.876.619.825 1.156l-.308 3.266z",fill:"#520038"}),n.createElement("path",{d:"M101.22 76.514c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.961.491.083.805.647.702 1.26M94.26 75.074c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.96.491.082.805.646.702 1.26",fill:"#552950"}),n.createElement("path",{stroke:"#DB836E",strokeWidth:"1.063",strokeLinecap:"round",strokeLinejoin:"round",d:"M99.206 73.644l-.9 1.62-.3 4.38h-2.24"}),n.createElement("path",{d:"M99.926 73.284s1.8-.72 2.52.54",stroke:"#5C2552",strokeWidth:"1.117",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M81.367 73.084s.48-1.12 1.12-.72c.64.4 1.28 1.44.56 2s.16 1.68.16 1.68",stroke:"#DB836E",strokeWidth:"1.117",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M92.326 71.724s1.84 1.12 4.16.96",stroke:"#5C2552",strokeWidth:"1.117",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M92.726 80.604s2.24 1.2 4.4 1.2M93.686 83.164s.96.4 1.52.32M83.687 80.044s1.786 6.547 9.262 7.954",stroke:"#DB836E",strokeWidth:"1.063",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M95.548 91.663s-1.068 2.821-8.298 2.105c-7.23-.717-10.29-5.044-10.29-5.044",stroke:"#E4EBF7",strokeWidth:"1.136",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M78.126 87.478s6.526 4.972 16.47 2.486c0 0 9.577 1.02 11.536 5.322 5.36 11.77.543 36.835 0 39.962 3.496 4.055-.466 8.483-.466 8.483-15.624-3.548-35.81-.6-35.81-.6-4.849-3.546-1.223-9.044-1.223-9.044L62.38 110.32c-2.485-15.227.833-19.803 3.549-20.743 3.03-1.049 8.04-1.282 8.04-1.282.496-.058 1.08-.076 1.37-.233 2.36-1.282 2.787-.583 2.787-.583",fill:"#FFF"}),n.createElement("path",{d:"M65.828 89.81s-6.875.465-7.59 8.156c-.466 8.857 3.03 10.954 3.03 10.954s6.075 22.102 16.796 22.957c8.39-2.176 4.758-6.702 4.661-11.42-.233-11.304-7.108-16.897-7.108-16.897s-4.212-13.75-9.789-13.75",fill:"#FFC6A0"}),n.createElement("path",{d:"M71.716 124.225s.855 11.264 9.828 6.486c4.765-2.536 7.581-13.828 9.789-22.568 1.456-5.768 2.58-12.197 2.58-12.197l-4.973-1.709s-2.408 5.516-7.769 12.275c-4.335 5.467-9.144 11.11-9.455 17.713",fill:"#FFC6A0"}),n.createElement("path",{d:"M108.463 105.191s1.747 2.724-2.331 30.535c2.376 2.216 1.053 6.012-.233 7.51",stroke:"#E4EBF7",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M123.262 131.527s-.427 2.732-11.77 1.981c-15.187-1.006-25.326-3.25-25.326-3.25l.933-5.8s.723.215 9.71-.068c11.887-.373 18.714-6.07 24.964-1.022 4.039 3.263 1.489 8.16 1.489 8.16",fill:"#FFC6A0"}),n.createElement("path",{d:"M70.24 90.974s-5.593-4.739-11.054 2.68c-3.318 7.223.517 15.284 2.664 19.578-.31 3.729 2.33 4.311 2.33 4.311s.108.895 1.516 2.68c4.078-7.03 6.72-9.166 13.711-12.546-.328-.656-1.877-3.265-1.825-3.767.175-1.69-1.282-2.623-1.282-2.623s-.286-.156-1.165-2.738c-.788-2.313-2.036-5.177-4.895-7.575",fill:"#FFF"}),n.createElement("path",{d:"M90.232 288.027s4.855 2.308 8.313 1.155c3.188-1.063 5.12.755 8.002 1.331 2.881.577 7.769 1.243 13.207-1.424-.117-6.228-7.786-4.499-13.518-7.588-2.895-1.56-4.276-5.336-4.066-9.944H91.544s-1.573 11.89-1.312 16.47",fill:"#CBD1D1"}),n.createElement("path",{d:"M90.207 287.833s2.745 1.437 7.639.738c3.456-.494 3.223.66 7.418 1.282 4.195.621 13.092-.194 14.334-1.126.466 1.242-.388 2.33-.388 2.33s-1.709.682-5.438.932c-2.295.154-8.098.276-10.14-.621-2.02-1.554-4.894-1.515-6.06-.234-4.427 1.075-7.184-.31-7.184-.31l-.181-2.991z",fill:"#2B0849"}),n.createElement("path",{d:"M98.429 272.257h3.496s-.117 7.574 5.127 9.671c-5.244.7-9.672-2.602-8.623-9.671",fill:"#A4AABA"}),n.createElement("path",{d:"M44.425 272.046s-2.208 7.774-4.702 12.899c-1.884 3.874-4.428 7.854 5.729 7.854 6.97 0 9.385-.503 7.782-6.917-1.604-6.415.279-13.836.279-13.836h-9.088z",fill:"#CBD1D1"}),n.createElement("path",{d:"M38.066 290.277s2.198 1.225 6.954 1.225c6.376 0 8.646-1.73 8.646-1.73s.63 1.168-.649 2.27c-1.04.897-3.77 1.668-7.745 1.621-4.347-.05-6.115-.593-7.062-1.224-.864-.577-.72-1.657-.144-2.162",fill:"#2B0849"}),n.createElement("path",{d:"M45.344 274.041s.035 1.592-.329 3.07c-.365 1.49-1.13 3.255-1.184 4.34-.061 1.206 4.755 1.657 5.403.036.65-1.622 1.357-6.737 2.006-7.602.648-.865-5.14-2.222-5.896.156",fill:"#A4AABA"}),n.createElement("path",{d:"M89.476 277.57l13.899.095s1.349-56.643 1.925-66.909c.576-10.267 3.923-45.052 1.042-65.585l-13.037-.669-23.737.81s-.452 4.12-1.243 10.365c-.065.515-.708.874-.777 1.417-.078.608.439 1.407.332 2.044-2.455 14.627-5.797 32.736-8.256 46.837-.121.693-1.282 1.048-1.515 2.796-.042.314.22 1.584.116 1.865-7.14 19.473-12.202 52.601-15.66 67.19l15.176-.015s2.282-10.145 4.185-18.871c2.922-13.389 24.012-88.32 24.012-88.32l3.133-.954-.158 48.568s-.233 1.282.35 2.098c.583.815-.581 1.167-.408 2.331l.408 1.864s-.466 7.458-.932 12.352c-.467 4.895 1.145 40.69 1.145 40.69",fill:"#7BB2F9"}),n.createElement("path",{d:"M64.57 218.881c1.197.099 4.195-2.097 7.225-5.127M96.024 222.534s2.881-1.152 6.34-4.034",stroke:"#648BD8",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M96.973 219.373s2.882-1.153 6.34-4.034",stroke:"#648BD8",strokeWidth:"1.032",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M63.172 222.144s2.724-.614 6.759-3.496M74.903 146.166c-.281 3.226.31 8.856-4.506 9.478M93.182 144.344s.115 14.557-1.344 15.65c-2.305 1.73-3.107 2.02-3.107 2.02M89.197 144.923s.269 13.144-1.01 25.088M83.525 170.71s6.81-1.051 9.116-1.051M46.026 270.045l-.892 4.538M46.937 263.289l-.815 4.157M62.725 202.503c-.33 1.618-.102 1.904-.449 3.438 0 0-2.756 1.903-2.29 3.923.466 2.02-.31 3.424-4.505 17.252-1.762 5.807-4.233 18.922-6.165 28.278-.03.144-.521 2.646-1.14 5.8M64.158 194.136c-.295 1.658-.6 3.31-.917 4.938M71.33 146.787l-1.244 10.877s-1.14.155-.519 2.33c.117 1.399-2.778 16.39-5.382 31.615M44.242 273.727H58.07",stroke:"#648BD8",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M106.18 142.117c-3.028-.489-18.825-2.744-36.219.2a.625.625 0 0 0-.518.644c.063 1.307.044 2.343.015 2.995a.617.617 0 0 0 .716.636c3.303-.534 17.037-2.412 35.664-.266.347.04.66-.214.692-.56.124-1.347.16-2.425.17-3.029a.616.616 0 0 0-.52-.62",fill:"#192064"}),n.createElement("path",{d:"M96.398 145.264l.003-5.102a.843.843 0 0 0-.809-.847 114.104 114.104 0 0 0-8.141-.014.85.85 0 0 0-.82.847l-.003 5.097c0 .476.388.857.864.845 2.478-.064 5.166-.067 8.03.017a.848.848 0 0 0 .876-.843",fill:"#FFF"}),n.createElement("path",{d:"M95.239 144.296l.002-3.195a.667.667 0 0 0-.643-.672c-1.9-.061-3.941-.073-6.094-.01a.675.675 0 0 0-.654.672l-.002 3.192c0 .376.305.677.68.669 1.859-.042 3.874-.043 6.02.012.376.01.69-.291.691-.668",fill:"#192064"}),n.createElement("path",{d:"M90.102 273.522h12.819M91.216 269.761c.006 3.519-.072 5.55 0 6.292M90.923 263.474c-.009 1.599-.016 2.558-.016 4.505M90.44 170.404l.932 46.38s.7 1.631-.233 2.796c-.932 1.166 2.564.7.932 2.33-1.63 1.633.933 1.166 0 3.497-.618 1.546-1.031 21.921-1.138 36.513",stroke:"#648BD8",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M73.736 98.665l2.214 4.312s2.098.816 1.865 2.68l.816 2.214M64.297 116.611c.233-.932 2.176-7.147 12.585-10.488M77.598 90.042s7.691 6.137 16.547 2.72",stroke:"#E4EBF7",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M91.974 86.954s5.476-.816 7.574-4.545c1.297-.345.72 2.212-.33 3.671-.7.971-1.01 1.554-1.01 1.554s.194.31.155.816c-.053.697-.175.653-.272 1.048-.081.335.108.657 0 1.049-.046.17-.198.5-.382.878-.12.249-.072.687-.2.948-.231.469-1.562 1.87-2.622 2.855-3.826 3.554-5.018 1.644-6.001-.408-.894-1.865-.661-5.127-.874-6.875-.35-2.914-2.622-3.03-1.923-4.429.343-.685 2.87.69 3.263 1.748.757 2.04 2.952 1.807 2.622 1.69",fill:"#FFC6A0"}),n.createElement("path",{d:"M99.8 82.429c-.465.077-.35.272-.97 1.243-.622.971-4.817 2.932-6.39 3.224-2.589.48-2.278-1.56-4.254-2.855-1.69-1.107-3.562-.638-1.398 1.398.99.932.932 1.107 1.398 3.205.335 1.506-.64 3.67.7 5.593",stroke:"#DB836E",strokeWidth:".774",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M79.543 108.673c-2.1 2.926-4.266 6.175-5.557 8.762",stroke:"#E59788",strokeWidth:".774",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M87.72 124.768s-2.098-1.942-5.127-2.719c-3.03-.777-3.574-.155-5.516.078-1.942.233-3.885-.932-3.652.7.233 1.63 5.05 1.01 5.206 2.097.155 1.087-6.37 2.796-8.313 2.175-.777.777.466 1.864 2.02 2.175.233 1.554 2.253 1.554 2.253 1.554s.699 1.01 2.641 1.088c2.486 1.32 8.934-.7 10.954-1.554 2.02-.855-.466-5.594-.466-5.594",fill:"#FFC6A0"}),n.createElement("path",{d:"M73.425 122.826s.66 1.127 3.167 1.418c2.315.27 2.563.583 2.563.583s-2.545 2.894-9.07 2.272M72.416 129.274s3.826.097 4.933-.718M74.98 130.75s1.961.136 3.36-.505M77.232 131.916s1.748.019 2.914-.505M73.328 122.321s-.595-1.032 1.262-.427c1.671.544 2.833.055 5.128.155 1.389.061 3.067-.297 3.982.15 1.606.784 3.632 2.181 3.632 2.181s10.526 1.204 19.033-1.127M78.864 108.104s-8.39 2.758-13.168 12.12",stroke:"#E59788",strokeWidth:".774",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M109.278 112.533s3.38-3.613 7.575-4.662",stroke:"#E4EBF7",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M107.375 123.006s9.697-2.745 11.445-.88",stroke:"#E59788",strokeWidth:".774",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M194.605 83.656l3.971-3.886M187.166 90.933l3.736-3.655M191.752 84.207l-4.462-4.56M198.453 91.057l-4.133-4.225M129.256 163.074l3.718-3.718M122.291 170.039l3.498-3.498M126.561 163.626l-4.27-4.27M132.975 170.039l-3.955-3.955",stroke:"#BFCDDD",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M190.156 211.779h-1.604a4.023 4.023 0 0 1-4.011-4.011V175.68a4.023 4.023 0 0 1 4.01-4.01h1.605a4.023 4.023 0 0 1 4.011 4.01v32.088a4.023 4.023 0 0 1-4.01 4.01",fill:"#A3B4C6"}),n.createElement("path",{d:"M237.824 212.977a4.813 4.813 0 0 1-4.813 4.813h-86.636a4.813 4.813 0 0 1 0-9.626h86.636a4.813 4.813 0 0 1 4.813 4.813",fill:"#A3B4C6"}),n.createElement("mask",{fill:"#fff"}),n.createElement("path",{fill:"#A3B4C6",mask:"url(#d)",d:"M154.098 190.096h70.513v-84.617h-70.513z"}),n.createElement("path",{d:"M224.928 190.096H153.78a3.219 3.219 0 0 1-3.208-3.209V167.92a3.219 3.219 0 0 1 3.208-3.21h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.219 3.219 0 0 1-3.21 3.209M224.928 130.832H153.78a3.218 3.218 0 0 1-3.208-3.208v-18.968a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.218 3.218 0 0 1-3.21 3.208",fill:"#BFCDDD",mask:"url(#d)"}),n.createElement("path",{d:"M159.563 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 120.546h-22.461a.802.802 0 0 1-.802-.802v-3.208c0-.443.359-.803.802-.803h22.46c.444 0 .803.36.803.803v3.208c0 .443-.36.802-.802.802",fill:"#FFF",mask:"url(#d)"}),n.createElement("path",{d:"M224.928 160.464H153.78a3.218 3.218 0 0 1-3.208-3.209v-18.967a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.209v18.967a3.218 3.218 0 0 1-3.21 3.209",fill:"#BFCDDD",mask:"url(#d)"}),n.createElement("path",{d:"M173.455 130.832h49.301M164.984 130.832h6.089M155.952 130.832h6.75M173.837 160.613h49.3M165.365 160.613h6.089M155.57 160.613h6.751",stroke:"#7C90A5",strokeWidth:"1.124",strokeLinecap:"round",strokeLinejoin:"round",mask:"url(#d)"}),n.createElement("path",{d:"M159.563 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M166.98 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M174.397 151.038a2.407 2.407 0 1 1 .001-4.814 2.407 2.407 0 0 1 0 4.814M222.539 151.038h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802M159.563 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 179.987h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802",fill:"#FFF",mask:"url(#d)"}),n.createElement("path",{d:"M203.04 221.108h-27.372a2.413 2.413 0 0 1-2.406-2.407v-11.448a2.414 2.414 0 0 1 2.406-2.407h27.372a2.414 2.414 0 0 1 2.407 2.407V218.7a2.413 2.413 0 0 1-2.407 2.407",fill:"#BFCDDD",mask:"url(#d)"}),n.createElement("path",{d:"M177.259 207.217v11.52M201.05 207.217v11.52",stroke:"#A3B4C6",strokeWidth:"1.124",strokeLinecap:"round",strokeLinejoin:"round",mask:"url(#d)"}),n.createElement("path",{d:"M162.873 267.894a9.422 9.422 0 0 1-9.422-9.422v-14.82a9.423 9.423 0 0 1 18.845 0v14.82a9.423 9.423 0 0 1-9.423 9.422",fill:"#5BA02E",mask:"url(#d)"}),n.createElement("path",{d:"M171.22 267.83a9.422 9.422 0 0 1-9.422-9.423v-3.438a9.423 9.423 0 0 1 18.845 0v3.438a9.423 9.423 0 0 1-9.422 9.423",fill:"#92C110",mask:"url(#d)"}),n.createElement("path",{d:"M181.31 293.666h-27.712a3.209 3.209 0 0 1-3.209-3.21V269.79a3.209 3.209 0 0 1 3.209-3.21h27.711a3.209 3.209 0 0 1 3.209 3.21v20.668a3.209 3.209 0 0 1-3.209 3.209",fill:"#F2D7AD",mask:"url(#d)"}))),L=()=>n.createElement("svg",{width:"251",height:"294"},n.createElement("g",{fill:"none",fillRule:"evenodd"},n.createElement("path",{d:"M0 129.023v-2.084C0 58.364 55.591 2.774 124.165 2.774h2.085c68.574 0 124.165 55.59 124.165 124.165v2.084c0 68.575-55.59 124.166-124.165 124.166h-2.085C55.591 253.189 0 197.598 0 129.023",fill:"#E4EBF7"}),n.createElement("path",{d:"M41.417 132.92a8.231 8.231 0 1 1-16.38-1.65 8.231 8.231 0 0 1 16.38 1.65",fill:"#FFF"}),n.createElement("path",{d:"M38.652 136.36l10.425 5.91M49.989 148.505l-12.58 10.73",stroke:"#FFF",strokeWidth:"2"}),n.createElement("path",{d:"M41.536 161.28a5.636 5.636 0 1 1-11.216-1.13 5.636 5.636 0 0 1 11.216 1.13M59.154 145.261a5.677 5.677 0 1 1-11.297-1.138 5.677 5.677 0 0 1 11.297 1.138M100.36 29.516l29.66-.013a4.562 4.562 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 0 0 .005 9.126M111.705 47.754l29.659-.013a4.563 4.563 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 1 0 .005 9.126",fill:"#FFF"}),n.createElement("path",{d:"M114.066 29.503V29.5l15.698-.007a4.563 4.563 0 1 0 .004 9.126l-15.698.007v-.002a4.562 4.562 0 0 0-.004-9.122M185.405 137.723c-.55 5.455-5.418 9.432-10.873 8.882-5.456-.55-9.432-5.418-8.882-10.873.55-5.455 5.418-9.432 10.873-8.882 5.455.55 9.432 5.418 8.882 10.873",fill:"#FFF"}),n.createElement("path",{d:"M180.17 143.772l12.572 7.129M193.841 158.42L178.67 171.36",stroke:"#FFF",strokeWidth:"2"}),n.createElement("path",{d:"M185.55 171.926a6.798 6.798 0 1 1-13.528-1.363 6.798 6.798 0 0 1 13.527 1.363M204.12 155.285a6.848 6.848 0 1 1-13.627-1.375 6.848 6.848 0 0 1 13.626 1.375",fill:"#FFF"}),n.createElement("path",{d:"M152.988 194.074a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0zM225.931 118.217a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM217.09 153.051a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.42 0zM177.84 109.842a2.21 2.21 0 1 1-4.422 0 2.21 2.21 0 0 1 4.421 0zM196.114 94.454a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM202.844 182.523a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0z",stroke:"#FFF",strokeWidth:"2"}),n.createElement("path",{stroke:"#FFF",strokeWidth:"2",d:"M215.125 155.262l-1.902 20.075-10.87 5.958M174.601 176.636l-6.322 9.761H156.98l-4.484 6.449M175.874 127.28V111.56M221.51 119.404l-12.77 7.859-15.228-7.86V96.668"}),n.createElement("path",{d:"M180.68 29.32C180.68 13.128 193.806 0 210 0c16.193 0 29.32 13.127 29.32 29.32 0 16.194-13.127 29.322-29.32 29.322-16.193 0-29.32-13.128-29.32-29.321",fill:"#A26EF4"}),n.createElement("path",{d:"M221.45 41.706l-21.563-.125a1.744 1.744 0 0 1-1.734-1.754l.071-12.23a1.744 1.744 0 0 1 1.754-1.734l21.562.125c.964.006 1.74.791 1.735 1.755l-.071 12.229a1.744 1.744 0 0 1-1.754 1.734",fill:"#FFF"}),n.createElement("path",{d:"M215.106 29.192c-.015 2.577-2.049 4.654-4.543 4.64-2.494-.014-4.504-2.115-4.489-4.693l.04-6.925c.016-2.577 2.05-4.654 4.543-4.64 2.494.015 4.504 2.116 4.49 4.693l-.04 6.925zm-4.53-14.074a6.877 6.877 0 0 0-6.916 6.837l-.043 7.368a6.877 6.877 0 0 0 13.754.08l.042-7.368a6.878 6.878 0 0 0-6.837-6.917zM167.566 68.367h-3.93a4.73 4.73 0 0 1-4.717-4.717 4.73 4.73 0 0 1 4.717-4.717h3.93a4.73 4.73 0 0 1 4.717 4.717 4.73 4.73 0 0 1-4.717 4.717",fill:"#FFF"}),n.createElement("path",{d:"M168.214 248.838a6.611 6.611 0 0 1-6.61-6.611v-66.108a6.611 6.611 0 0 1 13.221 0v66.108a6.611 6.611 0 0 1-6.61 6.61",fill:"#5BA02E"}),n.createElement("path",{d:"M176.147 248.176a6.611 6.611 0 0 1-6.61-6.61v-33.054a6.611 6.611 0 1 1 13.221 0v33.053a6.611 6.611 0 0 1-6.61 6.611",fill:"#92C110"}),n.createElement("path",{d:"M185.994 293.89h-27.376a3.17 3.17 0 0 1-3.17-3.17v-45.887a3.17 3.17 0 0 1 3.17-3.17h27.376a3.17 3.17 0 0 1 3.17 3.17v45.886a3.17 3.17 0 0 1-3.17 3.17",fill:"#F2D7AD"}),n.createElement("path",{d:"M81.972 147.673s6.377-.927 17.566-1.28c11.729-.371 17.57 1.086 17.57 1.086s3.697-3.855.968-8.424c1.278-12.077 5.982-32.827.335-48.273-1.116-1.339-3.743-1.512-7.536-.62-1.337.315-7.147-.149-7.983-.1l-15.311-.347s-3.487-.17-8.035-.508c-1.512-.113-4.227-1.683-5.458-.338-.406.443-2.425 5.669-1.97 16.077l8.635 35.642s-3.141 3.61 1.219 7.085",fill:"#FFF"}),n.createElement("path",{d:"M75.768 73.325l-.9-6.397 11.982-6.52s7.302-.118 8.038 1.205c.737 1.324-5.616.993-5.616.993s-1.836 1.388-2.615 2.5c-1.654 2.363-.986 6.471-8.318 5.986-1.708.284-2.57 2.233-2.57 2.233",fill:"#FFC6A0"}),n.createElement("path",{d:"M52.44 77.672s14.217 9.406 24.973 14.444c1.061.497-2.094 16.183-11.892 11.811-7.436-3.318-20.162-8.44-21.482-14.496-.71-3.258 2.543-7.643 8.401-11.76M141.862 80.113s-6.693 2.999-13.844 6.876c-3.894 2.11-10.137 4.704-12.33 7.988-6.224 9.314 3.536 11.22 12.947 7.503 6.71-2.651 28.999-12.127 13.227-22.367",fill:"#FFB594"}),n.createElement("path",{d:"M76.166 66.36l3.06 3.881s-2.783 2.67-6.31 5.747c-7.103 6.195-12.803 14.296-15.995 16.44-3.966 2.662-9.754 3.314-12.177-.118-3.553-5.032.464-14.628 31.422-25.95",fill:"#FFC6A0"}),n.createElement("path",{d:"M64.674 85.116s-2.34 8.413-8.912 14.447c.652.548 18.586 10.51 22.144 10.056 5.238-.669 6.417-18.968 1.145-20.531-.702-.208-5.901-1.286-8.853-2.167-.87-.26-1.611-1.71-3.545-.936l-1.98-.869zM128.362 85.826s5.318 1.956 7.325 13.734c-.546.274-17.55 12.35-21.829 7.805-6.534-6.94-.766-17.393 4.275-18.61 4.646-1.121 5.03-1.37 10.23-2.929",fill:"#FFF"}),n.createElement("path",{d:"M78.18 94.656s.911 7.41-4.914 13.078",stroke:"#E4EBF7",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M87.397 94.68s3.124 2.572 10.263 2.572c7.14 0 9.074-3.437 9.074-3.437",stroke:"#E4EBF7",strokeWidth:".932",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M117.184 68.639l-6.781-6.177s-5.355-4.314-9.223-.893c-3.867 3.422 4.463 2.083 5.653 4.165 1.19 2.082.848 1.143-2.083.446-5.603-1.331-2.082.893 2.975 5.355 2.091 1.845 6.992.955 6.992.955l2.467-3.851z",fill:"#FFC6A0"}),n.createElement("path",{d:"M105.282 91.315l-.297-10.937-15.918-.027-.53 10.45c-.026.403.17.788.515.999 2.049 1.251 9.387 5.093 15.799.424.287-.21.443-.554.431-.91",fill:"#FFB594"}),n.createElement("path",{d:"M107.573 74.24c.817-1.147.982-9.118 1.015-11.928a1.046 1.046 0 0 0-.965-1.055l-4.62-.365c-7.71-1.044-17.071.624-18.253 6.346-5.482 5.813-.421 13.244-.421 13.244s1.963 3.566 4.305 6.791c.756 1.041.398-3.731 3.04-5.929 5.524-4.594 15.899-7.103 15.899-7.103",fill:"#5C2552"}),n.createElement("path",{d:"M88.426 83.206s2.685 6.202 11.602 6.522c7.82.28 8.973-7.008 7.434-17.505l-.909-5.483c-6.118-2.897-15.478.54-15.478.54s-.576 2.044-.19 5.504c-2.276 2.066-1.824 5.618-1.824 5.618s-.905-1.922-1.98-2.321c-.86-.32-1.897.089-2.322 1.98-1.04 4.632 3.667 5.145 3.667 5.145",fill:"#FFC6A0"}),n.createElement("path",{stroke:"#DB836E",strokeWidth:"1.145",strokeLinecap:"round",strokeLinejoin:"round",d:"M100.843 77.099l1.701-.928-1.015-4.324.674-1.406"}),n.createElement("path",{d:"M105.546 74.092c-.022.713-.452 1.279-.96 1.263-.51-.016-.904-.607-.882-1.32.021-.713.452-1.278.96-1.263.51.016.904.607.882 1.32M97.592 74.349c-.022.713-.452 1.278-.961 1.263-.509-.016-.904-.607-.882-1.32.022-.713.452-1.279.961-1.263.51.016.904.606.882 1.32",fill:"#552950"}),n.createElement("path",{d:"M91.132 86.786s5.269 4.957 12.679 2.327",stroke:"#DB836E",strokeWidth:"1.145",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M99.776 81.903s-3.592.232-1.44-2.79c1.59-1.496 4.897-.46 4.897-.46s1.156 3.906-3.457 3.25",fill:"#DB836E"}),n.createElement("path",{d:"M102.88 70.6s2.483.84 3.402.715M93.883 71.975s2.492-1.144 4.778-1.073",stroke:"#5C2552",strokeWidth:"1.526",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M86.32 77.374s.961.879 1.458 2.106c-.377.48-1.033 1.152-.236 1.809M99.337 83.719s1.911.151 2.509-.254",stroke:"#DB836E",strokeWidth:"1.145",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M87.782 115.821l15.73-3.012M100.165 115.821l10.04-2.008",stroke:"#E4EBF7",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M66.508 86.763s-1.598 8.83-6.697 14.078",stroke:"#E4EBF7",strokeWidth:"1.114",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M128.31 87.934s3.013 4.121 4.06 11.785",stroke:"#E4EBF7",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M64.09 84.816s-6.03 9.912-13.607 9.903",stroke:"#DB836E",strokeWidth:".795",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M112.366 65.909l-.142 5.32s5.993 4.472 11.945 9.202c4.482 3.562 8.888 7.455 10.985 8.662 4.804 2.766 8.9 3.355 11.076 1.808 4.071-2.894 4.373-9.878-8.136-15.263-4.271-1.838-16.144-6.36-25.728-9.73",fill:"#FFC6A0"}),n.createElement("path",{d:"M130.532 85.488s4.588 5.757 11.619 6.214",stroke:"#DB836E",strokeWidth:".75",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M121.708 105.73s-.393 8.564-1.34 13.612",stroke:"#E4EBF7",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M115.784 161.512s-3.57-1.488-2.678-7.14",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M101.52 290.246s4.326 2.057 7.408 1.03c2.842-.948 4.564.673 7.132 1.186 2.57.514 6.925 1.108 11.772-1.269-.104-5.551-6.939-4.01-12.048-6.763-2.582-1.39-3.812-4.757-3.625-8.863h-9.471s-1.402 10.596-1.169 14.68",fill:"#CBD1D1"}),n.createElement("path",{d:"M101.496 290.073s2.447 1.281 6.809.658c3.081-.44 3.74.485 7.479 1.039 3.739.554 10.802-.07 11.91-.9.415 1.108-.347 2.077-.347 2.077s-1.523.608-4.847.831c-2.045.137-5.843.293-7.663-.507-1.8-1.385-5.286-1.917-5.77-.243-3.947.958-7.41-.288-7.41-.288l-.16-2.667z",fill:"#2B0849"}),n.createElement("path",{d:"M108.824 276.19h3.116s-.103 6.751 4.57 8.62c-4.673.624-8.62-2.32-7.686-8.62",fill:"#A4AABA"}),n.createElement("path",{d:"M57.65 272.52s-2.122 7.47-4.518 12.396c-1.811 3.724-4.255 7.548 5.505 7.548 6.698 0 9.02-.483 7.479-6.648-1.541-6.164.268-13.296.268-13.296H57.65z",fill:"#CBD1D1"}),n.createElement("path",{d:"M51.54 290.04s2.111 1.178 6.682 1.178c6.128 0 8.31-1.662 8.31-1.662s.605 1.122-.624 2.18c-1 .862-3.624 1.603-7.444 1.559-4.177-.049-5.876-.57-6.786-1.177-.831-.554-.692-1.593-.138-2.078",fill:"#2B0849"}),n.createElement("path",{d:"M58.533 274.438s.034 1.529-.315 2.95c-.352 1.431-1.087 3.127-1.139 4.17-.058 1.16 4.57 1.592 5.194.035.623-1.559 1.303-6.475 1.927-7.306.622-.831-4.94-2.135-5.667.15",fill:"#A4AABA"}),n.createElement("path",{d:"M100.885 277.015l13.306.092s1.291-54.228 1.843-64.056c.552-9.828 3.756-43.13.997-62.788l-12.48-.64-22.725.776s-.433 3.944-1.19 9.921c-.062.493-.677.838-.744 1.358-.075.582.42 1.347.318 1.956-2.35 14.003-6.343 32.926-8.697 46.425-.116.663-1.227 1.004-1.45 2.677-.04.3.21 1.516.112 1.785-6.836 18.643-10.89 47.584-14.2 61.551l14.528-.014s2.185-8.524 4.008-16.878c2.796-12.817 22.987-84.553 22.987-84.553l3-.517 1.037 46.1s-.223 1.228.334 2.008c.558.782-.556 1.117-.39 2.233l.39 1.784s-.446 7.14-.892 11.826c-.446 4.685-.092 38.954-.092 38.954",fill:"#7BB2F9"}),n.createElement("path",{d:"M77.438 220.434c1.146.094 4.016-2.008 6.916-4.91M107.55 223.931s2.758-1.103 6.069-3.862",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M108.459 220.905s2.759-1.104 6.07-3.863",stroke:"#648BD8",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M76.099 223.557s2.608-.587 6.47-3.346M87.33 150.82c-.27 3.088.297 8.478-4.315 9.073M104.829 149.075s.11 13.936-1.286 14.983c-2.207 1.655-2.975 1.934-2.975 1.934M101.014 149.63s.035 12.81-1.19 24.245M94.93 174.965s7.174-1.655 9.38-1.655M75.671 204.754c-.316 1.55-.64 3.067-.973 4.535 0 0-1.45 1.822-1.003 3.756.446 1.934-.943 2.034-4.96 15.273-1.686 5.559-4.464 18.49-6.313 27.447-.078.38-4.018 18.06-4.093 18.423M77.043 196.743a313.269 313.269 0 0 1-.877 4.729M83.908 151.414l-1.19 10.413s-1.091.148-.496 2.23c.111 1.34-2.66 15.692-5.153 30.267M57.58 272.94h13.238",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M117.377 147.423s-16.955-3.087-35.7.199c.157 2.501-.002 4.128-.002 4.128s14.607-2.802 35.476-.31c.251-2.342.226-4.017.226-4.017",fill:"#192064"}),n.createElement("path",{d:"M107.511 150.353l.004-4.885a.807.807 0 0 0-.774-.81c-2.428-.092-5.04-.108-7.795-.014a.814.814 0 0 0-.784.81l-.003 4.88c0 .456.371.82.827.808a140.76 140.76 0 0 1 7.688.017.81.81 0 0 0 .837-.806",fill:"#FFF"}),n.createElement("path",{d:"M106.402 149.426l.002-3.06a.64.64 0 0 0-.616-.643 94.135 94.135 0 0 0-5.834-.009.647.647 0 0 0-.626.643l-.001 3.056c0 .36.291.648.651.64 1.78-.04 3.708-.041 5.762.012.36.009.662-.279.662-.64",fill:"#192064"}),n.createElement("path",{d:"M101.485 273.933h12.272M102.652 269.075c.006 3.368.04 5.759.11 6.47M102.667 263.125c-.009 1.53-.015 2.98-.016 4.313M102.204 174.024l.893 44.402s.669 1.561-.224 2.677c-.892 1.116 2.455.67.893 2.231-1.562 1.562.893 1.116 0 3.347-.592 1.48-.988 20.987-1.09 34.956",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}))),$=e(52628),D=e(22151);const T=_=>{const{componentCls:U,lineHeightHeading3:A,iconCls:V,padding:fe,paddingXL:pe,paddingXS:ge,paddingLG:be,marginXS:Te,lineHeight:Ge}=_;return{[U]:{padding:`${be*2}px ${pe}px`,"&-rtl":{direction:"rtl"}},[`${U} ${U}-image`]:{width:_.imageWidth,height:_.imageHeight,margin:"auto"},[`${U} ${U}-icon`]:{marginBottom:be,textAlign:"center",[`& > ${V}`]:{fontSize:_.iconFontSize}},[`${U} ${U}-title`]:{color:_.colorTextHeading,fontSize:_.titleFontSize,lineHeight:A,marginBlock:Te,textAlign:"center"},[`${U} ${U}-subtitle`]:{color:_.colorTextDescription,fontSize:_.subtitleFontSize,lineHeight:Ge,textAlign:"center"},[`${U} ${U}-content`]:{marginTop:be,padding:`${be}px ${fe*2.5}px`,backgroundColor:_.colorFillAlter},[`${U} ${U}-extra`]:{margin:_.extraMargin,textAlign:"center","& > *":{marginInlineEnd:ge,"&:last-child":{marginInlineEnd:0}}}}},j=_=>{const{componentCls:U,iconCls:A}=_;return{[`${U}-success ${U}-icon > ${A}`]:{color:_.resultSuccessIconColor},[`${U}-error ${U}-icon > ${A}`]:{color:_.resultErrorIconColor},[`${U}-info ${U}-icon > ${A}`]:{color:_.resultInfoIconColor},[`${U}-warning ${U}-icon > ${A}`]:{color:_.resultWarningIconColor}}},G=_=>[T(_),j(_)],k=_=>G(_);var te=(0,$.Z)("Result",_=>{const U=_.colorInfo,A=_.colorError,V=_.colorSuccess,fe=_.colorWarning,pe=(0,D.TS)(_,{resultInfoIconColor:U,resultErrorIconColor:A,resultSuccessIconColor:V,resultWarningIconColor:fe,imageWidth:250,imageHeight:295});return[k(pe)]},_=>({titleFontSize:_.fontSizeHeading3,subtitleFontSize:_.fontSize,iconFontSize:_.fontSizeHeading3*3,extraMargin:`${_.paddingLG}px 0 0 0`}));const Y={success:a.Z,error:t.Z,info:o.Z,warning:g},q={404:C,500:Z,403:L},le=Object.keys(q),X=_=>{let{prefixCls:U,icon:A,status:V}=_;const fe=h()(`${U}-icon`);if(le.includes(`${V}`)){const ge=q[V];return n.createElement("div",{className:`${fe} ${U}-image`},n.createElement(ge,null))}const pe=n.createElement(Y[V]);return A===null||A===!1?null:n.createElement("div",{className:fe},A||pe)},W=_=>{let{prefixCls:U,extra:A}=_;return A?n.createElement("div",{className:`${U}-extra`},A):null},x=_=>{let{prefixCls:U,className:A,rootClassName:V,subTitle:fe,title:pe,style:ge,children:be,status:Te="info",icon:Ge,extra:qe}=_;const{getPrefixCls:Qe,direction:ht,result:Et}=n.useContext(S.E_),gt=Qe("result",U),[Ht,$e]=te(gt),Xe=h()(gt,`${gt}-${Te}`,A,Et==null?void 0:Et.className,V,{[`${gt}-rtl`]:ht==="rtl"},$e),rt=Object.assign(Object.assign({},Et==null?void 0:Et.style),ge);return Ht(n.createElement("div",{className:Xe,style:rt},n.createElement(X,{prefixCls:gt,status:Te,icon:Ge}),n.createElement("div",{className:`${gt}-title`},pe),fe&&n.createElement("div",{className:`${gt}-subtitle`},fe),n.createElement(W,{prefixCls:gt,extra:qe}),be&&n.createElement("div",{className:`${gt}-content`},be)))};x.PRESENTED_IMAGE_403=q[403],x.PRESENTED_IMAGE_404=q[404],x.PRESENTED_IMAGE_500=q[500];var O=x},59504:function(b,y,e){"use strict";var a=e(87608),t=e.n(a),o=e(18510),s=e(98186),n=e(58757),d=e(15018),l=e(90881),c=e(41496),m=e(61836),g=e(92428),M=e(10401),h=e(58785),S=e(81496),w=e(43528),C=e(92493),z=e(25639),Z=e(61698),N=e(29701),L=function(G,k){var te={};for(var Y in G)Object.prototype.hasOwnProperty.call(G,Y)&&k.indexOf(Y)<0&&(te[Y]=G[Y]);if(G!=null&&typeof Object.getOwnPropertySymbols=="function")for(var q=0,Y=Object.getOwnPropertySymbols(G);q{var te,{prefixCls:Y,bordered:q=!0,className:le,rootClassName:X,getPopupContainer:W,popupClassName:x,dropdownClassName:O,listHeight:_=256,placement:U,listItemHeight:A=24,size:V,disabled:fe,notFoundContent:pe,status:ge,builtinPlacements:be,dropdownMatchSelectWidth:Te,popupMatchSelectWidth:Ge,direction:qe,style:Qe,allowClear:ht}=G,Et=L(G,["prefixCls","bordered","className","rootClassName","getPopupContainer","popupClassName","dropdownClassName","listHeight","placement","listItemHeight","size","disabled","notFoundContent","status","builtinPlacements","dropdownMatchSelectWidth","popupMatchSelectWidth","direction","style","allowClear"]);const{getPopupContainer:gt,getPrefixCls:Ht,renderEmpty:$e,direction:Xe,virtual:rt,popupMatchSelectWidth:Ke,popupOverflow:ye,select:ne}=n.useContext(m.E_),H=Ht("select",Y),R=Ht(),P=qe!=null?qe:Xe,{compactSize:ae,compactItemClassnames:Q}=(0,w.ri)(H,P),[ie,me]=(0,C.Z)(H),je=n.useMemo(()=>{const{mode:Ot}=Et;if(Ot!=="combobox")return Ot===$?"combobox":Ot},[Et.mode]),Ce=je==="multiple"||je==="tags",Se=(0,Z.Z)(Et.suffixIcon,Et.showArrow),We=(te=Ge!=null?Ge:Te)!==null&&te!==void 0?te:Ke,{status:re,hasFeedback:se,isFormItemInput:J,feedbackIcon:de}=n.useContext(S.aM),xe=(0,c.F)(re,ge);let ce;pe!==void 0?ce=pe:je==="combobox"?ce=null:ce=($e==null?void 0:$e("Select"))||n.createElement(M.Z,{componentName:"Select"});const{suffixIcon:Ne,itemIcon:Oe,removeIcon:we,clearIcon:Re}=(0,N.Z)(Object.assign(Object.assign({},Et),{multiple:Ce,hasFeedback:se,feedbackIcon:de,showSuffixIcon:Se,prefixCls:H,showArrow:Et.showArrow,componentName:"Select"})),st=ht===!0?{clearIcon:Re}:ht,tt=(0,s.Z)(Et,["suffixIcon","itemIcon"]),Ye=t()(x||O,{[`${H}-dropdown-${P}`]:P==="rtl"},X,me),ke=(0,h.Z)(Ot=>{var wt;return(wt=V!=null?V:ae)!==null&&wt!==void 0?wt:Ot}),Be=n.useContext(g.Z),it=fe!=null?fe:Be,Ve=t()({[`${H}-lg`]:ke==="large",[`${H}-sm`]:ke==="small",[`${H}-rtl`]:P==="rtl",[`${H}-borderless`]:!q,[`${H}-in-form-item`]:J},(0,c.Z)(H,xe,se),Q,ne==null?void 0:ne.className,le,X,me),xt=n.useMemo(()=>U!==void 0?U:P==="rtl"?"bottomRight":"bottomLeft",[U,P]),_t=(0,z.Z)(be,ye);return ie(n.createElement(o.ZP,Object.assign({ref:k,virtual:rt,showSearch:ne==null?void 0:ne.showSearch},tt,{style:Object.assign(Object.assign({},ne==null?void 0:ne.style),Qe),dropdownMatchSelectWidth:We,builtinPlacements:_t,transitionName:(0,l.m)(R,"slide-up",Et.transitionName),listHeight:_,listItemHeight:A,mode:je,prefixCls:H,placement:xt,direction:P,suffixIcon:Ne,menuItemSelectedIcon:Oe,removeIcon:we,allowClear:st,notFoundContent:ce,className:Ve,getPopupContainer:W||gt,dropdownClassName:Ye,disabled:it})))},T=n.forwardRef(D),j=(0,d.Z)(T);T.SECRET_COMBOBOX_MODE_DO_NOT_USE=$,T.Option=o.Wx,T.OptGroup=o.Xo,T._InternalPanelDoNotUseOrYouWillBeFired=j,y.Z=T},92493:function(b,y,e){"use strict";e.d(y,{Z:function(){return T}});var a=e(78330),t=e(64493),o=e(22151),s=e(52628),n=e(1016),d=e(1546);const l=j=>{const{controlPaddingHorizontal:G,controlHeight:k,fontSize:te,lineHeight:Y}=j;return{position:"relative",display:"block",minHeight:k,padding:`${(k-te*Y)/2}px ${G}px`,color:j.colorText,fontWeight:"normal",fontSize:te,lineHeight:Y,boxSizing:"border-box"}};var m=j=>{const{antCls:G,componentCls:k}=j,te=`${k}-item`,Y=`&${G}-slide-up-enter${G}-slide-up-enter-active`,q=`&${G}-slide-up-appear${G}-slide-up-appear-active`,le=`&${G}-slide-up-leave${G}-slide-up-leave-active`,X=`${k}-dropdown-placement-`;return[{[`${k}-dropdown`]:Object.assign(Object.assign({},(0,a.Wf)(j)),{position:"absolute",top:-9999,zIndex:j.zIndexPopup,boxSizing:"border-box",padding:j.paddingXXS,overflow:"hidden",fontSize:j.fontSize,fontVariant:"initial",backgroundColor:j.colorBgElevated,borderRadius:j.borderRadiusLG,outline:"none",boxShadow:j.boxShadowSecondary,[` + ${Y}${X}bottomLeft, + ${q}${X}bottomLeft + `]:{animationName:n.fJ},[` + ${Y}${X}topLeft, + ${q}${X}topLeft, + ${Y}${X}topRight, + ${q}${X}topRight + `]:{animationName:n.Qt},[`${le}${X}bottomLeft`]:{animationName:n.Uw},[` + ${le}${X}topLeft, + ${le}${X}topRight + `]:{animationName:n.ly},"&-hidden":{display:"none"},[`${te}`]:Object.assign(Object.assign({},l(j)),{cursor:"pointer",transition:`background ${j.motionDurationSlow} ease`,borderRadius:j.borderRadiusSM,"&-group":{color:j.colorTextDescription,fontSize:j.fontSizeSM,cursor:"default"},"&-option":{display:"flex","&-content":Object.assign({flex:"auto"},a.vS),"&-state":{flex:"none",display:"flex",alignItems:"center"},[`&-active:not(${te}-option-disabled)`]:{backgroundColor:j.controlItemBgHover},[`&-selected:not(${te}-option-disabled)`]:{color:j.colorText,fontWeight:j.fontWeightStrong,backgroundColor:j.controlItemBgActive,[`${te}-option-state`]:{color:j.colorPrimary}},"&-disabled":{[`&${te}-option-selected`]:{backgroundColor:j.colorBgContainerDisabled},color:j.colorTextDisabled,cursor:"not-allowed"},"&-grouped":{paddingInlineStart:j.controlPaddingHorizontal*2}}}),"&-rtl":{direction:"rtl"}})},(0,n.oN)(j,"slide-up"),(0,n.oN)(j,"slide-down"),(0,d.Fm)(j,"move-up"),(0,d.Fm)(j,"move-down")]};const g=2,M=j=>{let{controlHeightSM:G,controlHeight:k,lineWidth:te}=j;const Y=(k-G)/2-te,q=Math.ceil(Y/2);return[Y,q]};function h(j,G){const{componentCls:k,iconCls:te}=j,Y=`${k}-selection-overflow`,q=j.controlHeightSM,[le]=M(j),X=G?`${k}-${G}`:"";return{[`${k}-multiple${X}`]:{fontSize:j.fontSize,[Y]:{position:"relative",display:"flex",flex:"auto",flexWrap:"wrap",maxWidth:"100%","&-item":{flex:"none",alignSelf:"center",maxWidth:"100%",display:"inline-flex"}},[`${k}-selector`]:{display:"flex",flexWrap:"wrap",alignItems:"center",padding:`${le-g}px ${g*2}px`,borderRadius:j.borderRadius,[`${k}-show-search&`]:{cursor:"text"},[`${k}-disabled&`]:{background:j.colorBgContainerDisabled,cursor:"not-allowed"},"&:after":{display:"inline-block",width:0,margin:`${g}px 0`,lineHeight:`${q}px`,visibility:"hidden",content:'"\\a0"'}},[` + &${k}-show-arrow ${k}-selector, + &${k}-allow-clear ${k}-selector + `]:{paddingInlineEnd:j.fontSizeIcon+j.controlPaddingHorizontal},[`${k}-selection-item`]:{position:"relative",display:"flex",flex:"none",boxSizing:"border-box",maxWidth:"100%",height:q,marginTop:g,marginBottom:g,lineHeight:`${q-j.lineWidth*2}px`,background:j.colorFillSecondary,borderRadius:j.borderRadiusSM,cursor:"default",transition:`font-size ${j.motionDurationSlow}, line-height ${j.motionDurationSlow}, height ${j.motionDurationSlow}`,userSelect:"none",marginInlineEnd:g*2,paddingInlineStart:j.paddingXS,paddingInlineEnd:j.paddingXS/2,[`${k}-disabled&`]:{color:j.colorTextDisabled,cursor:"not-allowed"},"&-content":{display:"inline-block",marginInlineEnd:j.paddingXS/2,overflow:"hidden",whiteSpace:"pre",textOverflow:"ellipsis"},"&-remove":Object.assign(Object.assign({},(0,a.Ro)()),{display:"inline-flex",alignItems:"center",color:j.colorIcon,fontWeight:"bold",fontSize:10,lineHeight:"inherit",cursor:"pointer",[`> ${te}`]:{verticalAlign:"-0.2em"},"&:hover":{color:j.colorIconHover}})},[`${Y}-item + ${Y}-item`]:{[`${k}-selection-search`]:{marginInlineStart:0}},[`${k}-selection-search`]:{display:"inline-flex",position:"relative",maxWidth:"100%",marginInlineStart:j.inputPaddingHorizontalBase-le,[` + &-input, + &-mirror + `]:{height:q,fontFamily:j.fontFamily,lineHeight:`${q}px`,transition:`all ${j.motionDurationSlow}`},"&-input":{width:"100%",minWidth:4.1},"&-mirror":{position:"absolute",top:0,insetInlineStart:0,insetInlineEnd:"auto",zIndex:999,whiteSpace:"pre",visibility:"hidden"}},[`${k}-selection-placeholder `]:{position:"absolute",top:"50%",insetInlineStart:j.inputPaddingHorizontalBase,insetInlineEnd:j.inputPaddingHorizontalBase,transform:"translateY(-50%)",transition:`all ${j.motionDurationSlow}`}}}}var w=j=>{const{componentCls:G}=j,k=(0,o.TS)(j,{controlHeight:j.controlHeightSM,controlHeightSM:j.controlHeightXS,borderRadius:j.borderRadiusSM,borderRadiusSM:j.borderRadiusXS}),te=(0,o.TS)(j,{fontSize:j.fontSizeLG,controlHeight:j.controlHeightLG,controlHeightSM:j.controlHeight,borderRadius:j.borderRadiusLG,borderRadiusSM:j.borderRadius}),[,Y]=M(j);return[h(j),h(k,"sm"),{[`${G}-multiple${G}-sm`]:{[`${G}-selection-placeholder`]:{insetInline:j.controlPaddingHorizontalSM-j.lineWidth},[`${G}-selection-search`]:{marginInlineStart:Y}}},h(te,"lg")]};function C(j,G){const{componentCls:k,inputPaddingHorizontalBase:te,borderRadius:Y}=j,q=j.controlHeight-j.lineWidth*2,le=Math.ceil(j.fontSize*1.25),X=G?`${k}-${G}`:"";return{[`${k}-single${X}`]:{fontSize:j.fontSize,[`${k}-selector`]:Object.assign(Object.assign({},(0,a.Wf)(j)),{display:"flex",borderRadius:Y,[`${k}-selection-search`]:{position:"absolute",top:0,insetInlineStart:te,insetInlineEnd:te,bottom:0,"&-input":{width:"100%"}},[` + ${k}-selection-item, + ${k}-selection-placeholder + `]:{padding:0,lineHeight:`${q}px`,transition:`all ${j.motionDurationSlow}, visibility 0s`,"@supports (-moz-appearance: meterbar)":{lineHeight:`${q}px`}},[`${k}-selection-item`]:{position:"relative",userSelect:"none"},[`${k}-selection-placeholder`]:{transition:"none",pointerEvents:"none"},[["&:after",`${k}-selection-item:after`,`${k}-selection-placeholder:after`].join(",")]:{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'}}),[` + &${k}-show-arrow ${k}-selection-item, + &${k}-show-arrow ${k}-selection-placeholder + `]:{paddingInlineEnd:le},[`&${k}-open ${k}-selection-item`]:{color:j.colorTextPlaceholder},[`&:not(${k}-customize-input)`]:{[`${k}-selector`]:{width:"100%",height:j.controlHeight,padding:`0 ${te}px`,[`${k}-selection-search-input`]:{height:q},"&:after":{lineHeight:`${q}px`}}},[`&${k}-customize-input`]:{[`${k}-selector`]:{"&:after":{display:"none"},[`${k}-selection-search`]:{position:"static",width:"100%"},[`${k}-selection-placeholder`]:{position:"absolute",insetInlineStart:0,insetInlineEnd:0,padding:`0 ${te}px`,"&:after":{display:"none"}}}}}}}function z(j){const{componentCls:G}=j,k=j.controlPaddingHorizontalSM-j.lineWidth;return[C(j),C((0,o.TS)(j,{controlHeight:j.controlHeightSM,borderRadius:j.borderRadiusSM}),"sm"),{[`${G}-single${G}-sm`]:{[`&:not(${G}-customize-input)`]:{[`${G}-selection-search`]:{insetInlineStart:k,insetInlineEnd:k},[`${G}-selector`]:{padding:`0 ${k}px`},[`&${G}-show-arrow ${G}-selection-search`]:{insetInlineEnd:k+j.fontSize*1.5},[` + &${G}-show-arrow ${G}-selection-item, + &${G}-show-arrow ${G}-selection-placeholder + `]:{paddingInlineEnd:j.fontSize*1.5}}}},C((0,o.TS)(j,{controlHeight:j.controlHeightLG,fontSize:j.fontSizeLG,borderRadius:j.borderRadiusLG}),"lg")]}const Z=j=>{const{componentCls:G}=j;return{position:"relative",backgroundColor:j.colorBgContainer,border:`${j.lineWidth}px ${j.lineType} ${j.colorBorder}`,transition:`all ${j.motionDurationMid} ${j.motionEaseInOut}`,input:{cursor:"pointer"},[`${G}-show-search&`]:{cursor:"text",input:{cursor:"auto",color:"inherit"}},[`${G}-disabled&`]:{color:j.colorTextDisabled,background:j.colorBgContainerDisabled,cursor:"not-allowed",[`${G}-multiple&`]:{background:j.colorBgContainerDisabled},input:{cursor:"not-allowed"}}}},N=function(j,G){let k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const{componentCls:te,borderHoverColor:Y,outlineColor:q,antCls:le}=G,X=k?{[`${te}-selector`]:{borderColor:Y}}:{};return{[j]:{[`&:not(${te}-disabled):not(${te}-customize-input):not(${le}-pagination-size-changer)`]:Object.assign(Object.assign({},X),{[`${te}-focused& ${te}-selector`]:{borderColor:Y,boxShadow:`0 0 0 ${G.controlOutlineWidth}px ${q}`,outline:0},[`&:hover ${te}-selector`]:{borderColor:Y}})}}},L=j=>{const{componentCls:G}=j;return{[`${G}-selection-search-input`]:{margin:0,padding:0,background:"transparent",border:"none",outline:"none",appearance:"none","&::-webkit-search-cancel-button":{display:"none","-webkit-appearance":"none"}}}},$=j=>{const{componentCls:G,inputPaddingHorizontalBase:k,iconCls:te}=j;return{[G]:Object.assign(Object.assign({},(0,a.Wf)(j)),{position:"relative",display:"inline-block",cursor:"pointer",[`&:not(${G}-customize-input) ${G}-selector`]:Object.assign(Object.assign({},Z(j)),L(j)),[`${G}-selection-item`]:Object.assign({flex:1,fontWeight:"normal"},a.vS),[`${G}-selection-placeholder`]:Object.assign(Object.assign({},a.vS),{flex:1,color:j.colorTextPlaceholder,pointerEvents:"none"}),[`${G}-arrow`]:Object.assign(Object.assign({},(0,a.Ro)()),{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:k,height:j.fontSizeIcon,marginTop:-j.fontSizeIcon/2,color:j.colorTextQuaternary,fontSize:j.fontSizeIcon,lineHeight:1,textAlign:"center",pointerEvents:"none",display:"flex",alignItems:"center",[te]:{verticalAlign:"top",transition:`transform ${j.motionDurationSlow}`,"> svg":{verticalAlign:"top"},[`&:not(${G}-suffix)`]:{pointerEvents:"auto"}},[`${G}-disabled &`]:{cursor:"not-allowed"},"> *:not(:last-child)":{marginInlineEnd:8}}),[`${G}-clear`]:{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:k,zIndex:1,display:"inline-block",width:j.fontSizeIcon,height:j.fontSizeIcon,marginTop:-j.fontSizeIcon/2,color:j.colorTextQuaternary,fontSize:j.fontSizeIcon,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",background:j.colorBgContainer,cursor:"pointer",opacity:0,transition:`color ${j.motionDurationMid} ease, opacity ${j.motionDurationSlow} ease`,textRendering:"auto","&:before":{display:"block"},"&:hover":{color:j.colorTextTertiary}},"&:hover":{[`${G}-clear`]:{opacity:1}}}),[`${G}-has-feedback`]:{[`${G}-clear`]:{insetInlineEnd:k+j.fontSize+j.paddingXS}}}},D=j=>{const{componentCls:G}=j;return[{[G]:{[`&-borderless ${G}-selector`]:{backgroundColor:"transparent !important",borderColor:"transparent !important",boxShadow:"none !important"},[`&${G}-in-form-item`]:{width:"100%"}}},$(j),z(j),w(j),m(j),{[`${G}-rtl`]:{direction:"rtl"}},N(G,(0,o.TS)(j,{borderHoverColor:j.colorPrimaryHover,outlineColor:j.controlOutline})),N(`${G}-status-error`,(0,o.TS)(j,{borderHoverColor:j.colorErrorHover,outlineColor:j.colorErrorOutline}),!0),N(`${G}-status-warning`,(0,o.TS)(j,{borderHoverColor:j.colorWarningHover,outlineColor:j.colorWarningOutline}),!0),(0,t.c)(j,{borderElCls:`${G}-selector`,focusElCls:`${G}-focused`})]};var T=(0,s.Z)("Select",(j,G)=>{let{rootPrefixCls:k}=G;const te=(0,o.TS)(j,{rootPrefixCls:k,inputPaddingHorizontalBase:j.paddingSM-1});return[D(te)]},j=>({zIndexPopup:j.zIndexPopupBase+50}))},25639:function(b,y,e){"use strict";e.d(y,{Z:function(){return t}});const a=o=>{const n={overflow:{adjustX:!0,adjustY:!0,shiftY:!0},htmlRegion:o==="scroll"?"scroll":"visible",_experimental:{dynamicInset:!0}};return{bottomLeft:Object.assign(Object.assign({},n),{points:["tl","bl"],offset:[0,4]}),bottomRight:Object.assign(Object.assign({},n),{points:["tr","br"],offset:[0,4]}),topLeft:Object.assign(Object.assign({},n),{points:["bl","tl"],offset:[0,-4]}),topRight:Object.assign(Object.assign({},n),{points:["br","tr"],offset:[0,-4]})}};function t(o,s){return o||a(s)}},61698:function(b,y,e){"use strict";e.d(y,{Z:function(){return a}});function a(t,o){return o!==void 0?o:t!==null}},29701:function(b,y,e){"use strict";e.d(y,{Z:function(){return c}});var a=e(35725),t=e(79999),o=e(52495),s=e(10130),n=e(25755),d=e(99534),l=e(58757);function c(m){let{suffixIcon:g,clearIcon:M,menuItemSelectedIcon:h,removeIcon:S,loading:w,multiple:C,hasFeedback:z,prefixCls:Z,showSuffixIcon:N,feedbackIcon:L,showArrow:$,componentName:D}=m;const T=M!=null?M:l.createElement(t.Z,null),j=Y=>g===null&&!z&&!$?null:l.createElement(l.Fragment,null,N!==!1&&Y,z&&L);let G=null;if(g!==void 0)G=j(g);else if(w)G=j(l.createElement(n.Z,{spin:!0}));else{const Y=`${Z}-suffix`;G=q=>{let{open:le,showSearch:X}=q;return j(le&&X?l.createElement(d.Z,{className:Y}):l.createElement(s.Z,{className:Y}))}}let k=null;h!==void 0?k=h:C?k=l.createElement(a.Z,null):k=null;let te=null;return S!==void 0?te=S:te=l.createElement(o.Z,null),{clearIcon:T,suffixIcon:G,itemIcon:k,removeIcon:te}}},57214:function(b,y,e){"use strict";e.d(y,{Z:function(){return Ke}});var a=e(87608),t=e.n(a),o=e(58757),s=e(61836),n=e(98186),l=ye=>{const{prefixCls:ne,className:H,style:R,size:P,shape:ae}=ye,Q=t()({[`${ne}-lg`]:P==="large",[`${ne}-sm`]:P==="small"}),ie=t()({[`${ne}-circle`]:ae==="circle",[`${ne}-square`]:ae==="square",[`${ne}-round`]:ae==="round"}),me=o.useMemo(()=>typeof P=="number"?{width:P,height:P,lineHeight:`${P}px`}:{},[P]);return o.createElement("span",{className:t()(ne,Q,ie,H),style:Object.assign(Object.assign({},me),R)})},c=e(57793),m=e(52628),g=e(22151);const M=new c.E4("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),h=ye=>({height:ye,lineHeight:`${ye}px`}),S=ye=>Object.assign({width:ye},h(ye)),w=ye=>({background:ye.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:M,animationDuration:ye.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"}),C=ye=>Object.assign({width:ye*5,minWidth:ye*5},h(ye)),z=ye=>{const{skeletonAvatarCls:ne,gradientFromColor:H,controlHeight:R,controlHeightLG:P,controlHeightSM:ae}=ye;return{[`${ne}`]:Object.assign({display:"inline-block",verticalAlign:"top",background:H},S(R)),[`${ne}${ne}-circle`]:{borderRadius:"50%"},[`${ne}${ne}-lg`]:Object.assign({},S(P)),[`${ne}${ne}-sm`]:Object.assign({},S(ae))}},Z=ye=>{const{controlHeight:ne,borderRadiusSM:H,skeletonInputCls:R,controlHeightLG:P,controlHeightSM:ae,gradientFromColor:Q}=ye;return{[`${R}`]:Object.assign({display:"inline-block",verticalAlign:"top",background:Q,borderRadius:H},C(ne)),[`${R}-lg`]:Object.assign({},C(P)),[`${R}-sm`]:Object.assign({},C(ae))}},N=ye=>Object.assign({width:ye},h(ye)),L=ye=>{const{skeletonImageCls:ne,imageSizeBase:H,gradientFromColor:R,borderRadiusSM:P}=ye;return{[`${ne}`]:Object.assign(Object.assign({display:"flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",background:R,borderRadius:P},N(H*2)),{[`${ne}-path`]:{fill:"#bfbfbf"},[`${ne}-svg`]:Object.assign(Object.assign({},N(H)),{maxWidth:H*4,maxHeight:H*4}),[`${ne}-svg${ne}-svg-circle`]:{borderRadius:"50%"}}),[`${ne}${ne}-circle`]:{borderRadius:"50%"}}},$=(ye,ne,H)=>{const{skeletonButtonCls:R}=ye;return{[`${H}${R}-circle`]:{width:ne,minWidth:ne,borderRadius:"50%"},[`${H}${R}-round`]:{borderRadius:ne}}},D=ye=>Object.assign({width:ye*2,minWidth:ye*2},h(ye)),T=ye=>{const{borderRadiusSM:ne,skeletonButtonCls:H,controlHeight:R,controlHeightLG:P,controlHeightSM:ae,gradientFromColor:Q}=ye;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[`${H}`]:Object.assign({display:"inline-block",verticalAlign:"top",background:Q,borderRadius:ne,width:R*2,minWidth:R*2},D(R))},$(ye,R,H)),{[`${H}-lg`]:Object.assign({},D(P))}),$(ye,P,`${H}-lg`)),{[`${H}-sm`]:Object.assign({},D(ae))}),$(ye,ae,`${H}-sm`))},j=ye=>{const{componentCls:ne,skeletonAvatarCls:H,skeletonTitleCls:R,skeletonParagraphCls:P,skeletonButtonCls:ae,skeletonInputCls:Q,skeletonImageCls:ie,controlHeight:me,controlHeightLG:je,controlHeightSM:Ce,gradientFromColor:Se,padding:We,marginSM:re,borderRadius:se,titleHeight:J,blockRadius:de,paragraphLiHeight:xe,controlHeightXS:ce,paragraphMarginTop:Ne}=ye;return{[`${ne}`]:{display:"table",width:"100%",[`${ne}-header`]:{display:"table-cell",paddingInlineEnd:We,verticalAlign:"top",[`${H}`]:Object.assign({display:"inline-block",verticalAlign:"top",background:Se},S(me)),[`${H}-circle`]:{borderRadius:"50%"},[`${H}-lg`]:Object.assign({},S(je)),[`${H}-sm`]:Object.assign({},S(Ce))},[`${ne}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[`${R}`]:{width:"100%",height:J,background:Se,borderRadius:de,[`+ ${P}`]:{marginBlockStart:Ce}},[`${P}`]:{padding:0,"> li":{width:"100%",height:xe,listStyle:"none",background:Se,borderRadius:de,"+ li":{marginBlockStart:ce}}},[`${P}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${ne}-content`]:{[`${R}, ${P} > li`]:{borderRadius:se}}},[`${ne}-with-avatar ${ne}-content`]:{[`${R}`]:{marginBlockStart:re,[`+ ${P}`]:{marginBlockStart:Ne}}},[`${ne}${ne}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},T(ye)),z(ye)),Z(ye)),L(ye)),[`${ne}${ne}-block`]:{width:"100%",[`${ae}`]:{width:"100%"},[`${Q}`]:{width:"100%"}},[`${ne}${ne}-active`]:{[` + ${R}, + ${P} > li, + ${H}, + ${ae}, + ${Q}, + ${ie} + `]:Object.assign({},w(ye))}}};var G=(0,m.Z)("Skeleton",ye=>{const{componentCls:ne}=ye,H=(0,g.TS)(ye,{skeletonAvatarCls:`${ne}-avatar`,skeletonTitleCls:`${ne}-title`,skeletonParagraphCls:`${ne}-paragraph`,skeletonButtonCls:`${ne}-button`,skeletonInputCls:`${ne}-input`,skeletonImageCls:`${ne}-image`,imageSizeBase:ye.controlHeight*1.5,borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${ye.gradientFromColor} 25%, ${ye.gradientToColor} 37%, ${ye.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"});return[j(H)]},ye=>{const{colorFillContent:ne,colorFill:H}=ye,R=ne,P=H;return{color:R,colorGradientEnd:P,gradientFromColor:R,gradientToColor:P,titleHeight:ye.controlHeight/2,blockRadius:ye.borderRadiusSM,paragraphMarginTop:ye.marginLG+ye.marginXXS,paragraphLiHeight:ye.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),te=ye=>{const{prefixCls:ne,className:H,rootClassName:R,active:P,shape:ae="circle",size:Q="default"}=ye,{getPrefixCls:ie}=o.useContext(s.E_),me=ie("skeleton",ne),[je,Ce]=G(me),Se=(0,n.Z)(ye,["prefixCls","className"]),We=t()(me,`${me}-element`,{[`${me}-active`]:P},H,R,Ce);return je(o.createElement("div",{className:We},o.createElement(l,Object.assign({prefixCls:`${me}-avatar`,shape:ae,size:Q},Se))))},q=ye=>{const{prefixCls:ne,className:H,rootClassName:R,active:P,block:ae=!1,size:Q="default"}=ye,{getPrefixCls:ie}=o.useContext(s.E_),me=ie("skeleton",ne),[je,Ce]=G(me),Se=(0,n.Z)(ye,["prefixCls"]),We=t()(me,`${me}-element`,{[`${me}-active`]:P,[`${me}-block`]:ae},H,R,Ce);return je(o.createElement("div",{className:We},o.createElement(l,Object.assign({prefixCls:`${me}-button`,size:Q},Se))))};const le="M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z";var W=ye=>{const{prefixCls:ne,className:H,rootClassName:R,style:P,active:ae}=ye,{getPrefixCls:Q}=o.useContext(s.E_),ie=Q("skeleton",ne),[me,je]=G(ie),Ce=t()(ie,`${ie}-element`,{[`${ie}-active`]:ae},H,R,je);return me(o.createElement("div",{className:Ce},o.createElement("div",{className:t()(`${ie}-image`,H),style:P},o.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${ie}-image-svg`},o.createElement("path",{d:le,className:`${ie}-image-path`})))))},O=ye=>{const{prefixCls:ne,className:H,rootClassName:R,active:P,block:ae,size:Q="default"}=ye,{getPrefixCls:ie}=o.useContext(s.E_),me=ie("skeleton",ne),[je,Ce]=G(me),Se=(0,n.Z)(ye,["prefixCls"]),We=t()(me,`${me}-element`,{[`${me}-active`]:P,[`${me}-block`]:ae},H,R,Ce);return je(o.createElement("div",{className:We},o.createElement(l,Object.assign({prefixCls:`${me}-input`,size:Q},Se))))},_=e(60698),U={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=U,V=e(17202),fe=function(ne,H){return o.createElement(V.Z,(0,_.Z)({},ne,{ref:H,icon:A}))},pe=o.forwardRef(fe),be=ye=>{const{prefixCls:ne,className:H,rootClassName:R,style:P,active:ae,children:Q}=ye,{getPrefixCls:ie}=o.useContext(s.E_),me=ie("skeleton",ne),[je,Ce]=G(me),Se=t()(me,`${me}-element`,{[`${me}-active`]:ae},Ce,H,R),We=Q!=null?Q:o.createElement(pe,null);return je(o.createElement("div",{className:Se},o.createElement("div",{className:t()(`${me}-image`,H),style:P},We)))},Te=e(29140),qe=ye=>{const ne=ie=>{const{width:me,rows:je=2}=ye;if(Array.isArray(me))return me[ie];if(je-1===ie)return me},{prefixCls:H,className:R,style:P,rows:ae}=ye,Q=(0,Te.Z)(Array(ae)).map((ie,me)=>o.createElement("li",{key:me,style:{width:ne(me)}}));return o.createElement("ul",{className:t()(H,R),style:P},Q)},ht=ye=>{let{prefixCls:ne,className:H,width:R,style:P}=ye;return o.createElement("h3",{className:t()(ne,H),style:Object.assign({width:R},P)})};function Et(ye){return ye&&typeof ye=="object"?ye:{}}function gt(ye,ne){return ye&&!ne?{size:"large",shape:"square"}:{size:"large",shape:"circle"}}function Ht(ye,ne){return!ye&&ne?{width:"38%"}:ye&&ne?{width:"50%"}:{}}function $e(ye,ne){const H={};return(!ye||!ne)&&(H.width="61%"),!ye&&ne?H.rows=3:H.rows=2,H}const Xe=ye=>{const{prefixCls:ne,loading:H,className:R,rootClassName:P,style:ae,children:Q,avatar:ie=!1,title:me=!0,paragraph:je=!0,active:Ce,round:Se}=ye,{getPrefixCls:We,direction:re,skeleton:se}=o.useContext(s.E_),J=We("skeleton",ne),[de,xe]=G(J);if(H||!("loading"in ye)){const ce=!!ie,Ne=!!me,Oe=!!je;let we;if(ce){const tt=Object.assign(Object.assign({prefixCls:`${J}-avatar`},gt(Ne,Oe)),Et(ie));we=o.createElement("div",{className:`${J}-header`},o.createElement(l,Object.assign({},tt)))}let Re;if(Ne||Oe){let tt;if(Ne){const ke=Object.assign(Object.assign({prefixCls:`${J}-title`},Ht(ce,Oe)),Et(me));tt=o.createElement(ht,Object.assign({},ke))}let Ye;if(Oe){const ke=Object.assign(Object.assign({prefixCls:`${J}-paragraph`},$e(ce,Ne)),Et(je));Ye=o.createElement(qe,Object.assign({},ke))}Re=o.createElement("div",{className:`${J}-content`},tt,Ye)}const st=t()(J,{[`${J}-with-avatar`]:ce,[`${J}-active`]:Ce,[`${J}-rtl`]:re==="rtl",[`${J}-round`]:Se},se==null?void 0:se.className,R,P,xe);return de(o.createElement("div",{className:st,style:Object.assign(Object.assign({},se==null?void 0:se.style),ae)},we,Re))}return typeof Q!="undefined"?Q:null};Xe.Button=q,Xe.Avatar=te,Xe.Input=O,Xe.Image=W,Xe.Node=be;var rt=Xe,Ke=rt},94706:function(b,y,e){"use strict";e.d(y,{Z:function(){return R}});var a=e(87608),t=e.n(a),o=e(37734),s=e(29140),n=e(28314),d=e(38790),l=e(58757),c=e(7637),m=e(60409),g=e(60698),M=e(47075),h=e(57370),S=e(29639),w=l.createContext({min:0,max:0,direction:"ltr",step:1,includedStart:0,includedEnd:0,tabIndex:0,keyboard:!0}),C=w;function z(P,ae,Q){return(P-ae)/(Q-ae)}function Z(P,ae,Q,ie){var me=z(ae,Q,ie),je={};switch(P){case"rtl":je.right="".concat(me*100,"%"),je.transform="translateX(50%)";break;case"btt":je.bottom="".concat(me*100,"%"),je.transform="translateY(50%)";break;case"ttb":je.top="".concat(me*100,"%"),je.transform="translateY(-50%)";break;default:je.left="".concat(me*100,"%"),je.transform="translateX(-50%)";break}return je}function N(P,ae){return Array.isArray(P)?P[ae]:P}var L=["prefixCls","value","valueIndex","onStartMove","style","render","dragging","onOffsetChange"],$=l.forwardRef(function(P,ae){var Q,ie,me=P.prefixCls,je=P.value,Ce=P.valueIndex,Se=P.onStartMove,We=P.style,re=P.render,se=P.dragging,J=P.onOffsetChange,de=(0,M.Z)(P,L),xe=l.useContext(C),ce=xe.min,Ne=xe.max,Oe=xe.direction,we=xe.disabled,Re=xe.keyboard,st=xe.range,tt=xe.tabIndex,Ye=xe.ariaLabelForHandle,ke=xe.ariaLabelledByForHandle,Be=xe.ariaValueTextFormatterForHandle,it="".concat(me,"-handle"),Ve=function(Yt){we||Se(Yt,Ce)},xt=function(Yt){if(!we&&Re){var bt=null;switch(Yt.which||Yt.keyCode){case S.Z.LEFT:bt=Oe==="ltr"||Oe==="btt"?-1:1;break;case S.Z.RIGHT:bt=Oe==="ltr"||Oe==="btt"?1:-1;break;case S.Z.UP:bt=Oe!=="ttb"?1:-1;break;case S.Z.DOWN:bt=Oe!=="ttb"?-1:1;break;case S.Z.HOME:bt="min";break;case S.Z.END:bt="max";break;case S.Z.PAGE_UP:bt=2;break;case S.Z.PAGE_DOWN:bt=-2;break}bt!==null&&(Yt.preventDefault(),J(bt,Ce))}},_t=Z(Oe,je,ce,Ne),Ot=l.createElement("div",(0,g.Z)({ref:ae,className:t()(it,(Q={},(0,o.Z)(Q,"".concat(it,"-").concat(Ce+1),st),(0,o.Z)(Q,"".concat(it,"-dragging"),se),Q)),style:(0,h.Z)((0,h.Z)({},_t),We),onMouseDown:Ve,onTouchStart:Ve,onKeyDown:xt,tabIndex:we?null:N(tt,Ce),role:"slider","aria-valuemin":ce,"aria-valuemax":Ne,"aria-valuenow":je,"aria-disabled":we,"aria-label":N(Ye,Ce),"aria-labelledby":N(ke,Ce),"aria-valuetext":(ie=N(Be,Ce))===null||ie===void 0?void 0:ie(je)},de));return re&&(Ot=re(Ot,{index:Ce,prefixCls:me,value:je,dragging:se})),Ot}),D=$,T=["prefixCls","style","onStartMove","onOffsetChange","values","handleRender","draggingIndex"],j=l.forwardRef(function(P,ae){var Q=P.prefixCls,ie=P.style,me=P.onStartMove,je=P.onOffsetChange,Ce=P.values,Se=P.handleRender,We=P.draggingIndex,re=(0,M.Z)(P,T),se=l.useRef({});return l.useImperativeHandle(ae,function(){return{focus:function(de){var xe;(xe=se.current[de])===null||xe===void 0||xe.focus()}}}),l.createElement(l.Fragment,null,Ce.map(function(J,de){return l.createElement(D,(0,g.Z)({ref:function(ce){ce?se.current[de]=ce:delete se.current[de]},dragging:We===de,prefixCls:Q,style:N(ie,de),key:de,value:J,valueIndex:de,onStartMove:me,onOffsetChange:je,render:Se},re))}))}),G=j;function k(P){var ae="touches"in P?P.touches[0]:P;return{pageX:ae.pageX,pageY:ae.pageY}}function te(P,ae,Q,ie,me,je,Ce,Se,We){var re=l.useState(null),se=(0,n.Z)(re,2),J=se[0],de=se[1],xe=l.useState(-1),ce=(0,n.Z)(xe,2),Ne=ce[0],Oe=ce[1],we=l.useState(Q),Re=(0,n.Z)(we,2),st=Re[0],tt=Re[1],Ye=l.useState(Q),ke=(0,n.Z)(Ye,2),Be=ke[0],it=ke[1],Ve=l.useRef(null),xt=l.useRef(null);l.useEffect(function(){Ne===-1&&tt(Q)},[Q,Ne]),l.useEffect(function(){return function(){document.removeEventListener("mousemove",Ve.current),document.removeEventListener("mouseup",xt.current),document.removeEventListener("touchmove",Ve.current),document.removeEventListener("touchend",xt.current)}},[]);var _t=function(nt,St){st.some(function(ut,Vt){return ut!==nt[Vt]})&&(St!==void 0&&de(St),tt(nt),Ce(nt))},Ot=function(nt,St){if(nt===-1){var ut=Be[0],Vt=Be[Be.length-1],Nt=ie-ut,At=me-Vt,Ie=St*(me-ie);Ie=Math.max(Ie,Nt),Ie=Math.min(Ie,At);var Ee=je(ut+Ie);Ie=Ee-ut;var Mt=Be.map(function(Zt){return Zt+Ie});_t(Mt)}else{var jt=(me-ie)*St,He=(0,s.Z)(st);He[nt]=Be[nt];var et=We(He,jt,nt,"dist");_t(et.values,et.value)}},wt=l.useRef(Ot);wt.current=Ot;var Yt=function(nt,St){nt.stopPropagation();var ut=Q[St];Oe(St),de(ut),it(Q);var Vt=k(nt),Nt=Vt.pageX,At=Vt.pageY,Ie=function(jt){jt.preventDefault();var He=k(jt),et=He.pageX,Zt=He.pageY,Ut=et-Nt,Jt=Zt-At,ln=P.current.getBoundingClientRect(),Mn=ln.width,gn=ln.height,Yn;switch(ae){case"btt":Yn=-Jt/gn;break;case"ttb":Yn=Jt/gn;break;case"rtl":Yn=-Ut/Mn;break;default:Yn=Ut/Mn}wt.current(St,Yn)},Ee=function Mt(jt){jt.preventDefault(),document.removeEventListener("mouseup",Mt),document.removeEventListener("mousemove",Ie),document.removeEventListener("touchend",Mt),document.removeEventListener("touchmove",Ie),Ve.current=null,xt.current=null,Oe(-1),Se()};document.addEventListener("mouseup",Ee),document.addEventListener("mousemove",Ie),document.addEventListener("touchend",Ee),document.addEventListener("touchmove",Ie),Ve.current=Ie,xt.current=Ee},bt=l.useMemo(function(){var ze=(0,s.Z)(Q).sort(function(St,ut){return St-ut}),nt=(0,s.Z)(st).sort(function(St,ut){return St-ut});return ze.every(function(St,ut){return St===nt[ut]})?st:Q},[Q,st]);return[Ne,J,bt,Yt]}function Y(P){var ae=P.prefixCls,Q=P.style,ie=P.start,me=P.end,je=P.index,Ce=P.onStartMove,Se=l.useContext(C),We=Se.direction,re=Se.min,se=Se.max,J=Se.disabled,de=Se.range,xe="".concat(ae,"-track"),ce=z(ie,re,se),Ne=z(me,re,se),Oe=function(st){!J&&Ce&&Ce(st,-1)},we={};switch(We){case"rtl":we.right="".concat(ce*100,"%"),we.width="".concat(Ne*100-ce*100,"%");break;case"btt":we.bottom="".concat(ce*100,"%"),we.height="".concat(Ne*100-ce*100,"%");break;case"ttb":we.top="".concat(ce*100,"%"),we.height="".concat(Ne*100-ce*100,"%");break;default:we.left="".concat(ce*100,"%"),we.width="".concat(Ne*100-ce*100,"%")}return l.createElement("div",{className:t()(xe,de&&"".concat(xe,"-").concat(je+1)),style:(0,h.Z)((0,h.Z)({},we),Q),onMouseDown:Oe,onTouchStart:Oe})}function q(P){var ae=P.prefixCls,Q=P.style,ie=P.values,me=P.startPoint,je=P.onStartMove,Ce=l.useContext(C),Se=Ce.included,We=Ce.range,re=Ce.min,se=l.useMemo(function(){if(!We){if(ie.length===0)return[];var J=me!=null?me:re,de=ie[0];return[{start:Math.min(J,de),end:Math.max(J,de)}]}for(var xe=[],ce=0;ce3&&arguments[3]!==void 0?arguments[3]:"unit";if(typeof Ne=="number"){var Re,st=ce[Oe],tt=st+Ne,Ye=[];ie.forEach(function(xt){Ye.push(xt.value)}),Ye.push(P,ae),Ye.push(Se(st));var ke=Ne>0?1:-1;we==="unit"?Ye.push(Se(st+ke*Q)):Ye.push(Se(tt)),Ye=Ye.filter(function(xt){return xt!==null}).filter(function(xt){return Ne<0?xt<=st:xt>=st}),we==="unit"&&(Ye=Ye.filter(function(xt){return xt!==st}));var Be=we==="unit"?st:tt;Re=Ye[0];var it=Math.abs(Re-Be);if(Ye.forEach(function(xt){var _t=Math.abs(xt-Be);_t1){var Ve=(0,s.Z)(ce);return Ve[Oe]=Re,xe(Ve,Ne-ke,Oe,we)}return Re}else{if(Ne==="min")return P;if(Ne==="max")return ae}},se=function(ce,Ne,Oe){var we=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"unit",Re=ce[Oe],st=re(ce,Ne,Oe,we);return{value:st,changed:st!==Re}},J=function(ce){return je===null&&ce===0||typeof je=="number"&&ce3&&arguments[3]!==void 0?arguments[3]:"unit",Re=ce.map(We),st=Re[Oe],tt=re(Re,Ne,Oe,we);if(Re[Oe]=tt,me===!1){var Ye=je||0;Oe>0&&Re[Oe-1]!==st&&(Re[Oe]=Math.max(Re[Oe],Re[Oe-1]+Ye)),Oe0;Ve-=1)for(var xt=!0;J(Re[Ve]-Re[Ve-1])&&xt;){var _t=se(Re,-1,Ve-1);Re[Ve-1]=_t.value,xt=_t.changed}for(var Ot=Re.length-1;Ot>0;Ot-=1)for(var wt=!0;J(Re[Ot]-Re[Ot-1])&&wt;){var Yt=se(Re,-1,Ot-1);Re[Ot-1]=Yt.value,wt=Yt.changed}for(var bt=0;bt=0?Yt:!1},[Yt,zt]),rn=l.useMemo(function(){var pa=Object.keys(jt||{});return pa.map(function(cr){var Zr=jt[cr],Ea={value:Number(cr)};return Zr&&(0,d.Z)(Zr)==="object"&&!l.isValidElement(Zr)&&("label"in Zr||"style"in Zr)?(Ea.style=Zr.style,Ea.label=Zr.label):Ea.label=Zr,Ea}).filter(function(cr){var Zr=cr.label;return Zr||typeof Zr=="number"}).sort(function(cr,Zr){return cr.value-Zr.value})},[jt]),dn=O(ar,gr,zt,rn,Ot,qt),Cn=(0,n.Z)(dn,2),on=Cn[0],pt=Cn[1],mt=(0,m.Z)(Ye,{value:tt}),sn=(0,n.Z)(mt,2),Kt=sn[0],tn=sn[1],mn=l.useMemo(function(){var pa=Kt==null?[]:Array.isArray(Kt)?Kt:[Kt],cr=(0,n.Z)(pa,1),Zr=cr[0],Ea=Zr===void 0?ar:Zr,ha=Kt===null?[]:[Ea];if(ke){if(ha=(0,s.Z)(pa),Be||Kt===void 0){var Wn=Be>=0?Be+1:2;for(ha=ha.slice(0,Wn);ha.length=0&&gn.current.focus(pa)}un(null)},[kt]);var xn=l.useMemo(function(){return bt&&zt===null?!1:bt},[bt,zt]),Rn=function(){xt==null||xt(kn(fn.current))},Mr=te(Yn,Gn,mn,ar,gr,on,qn,Rn,pt),er=(0,n.Z)(Mr,4),zn=er[0],Ur=er[1],pr=er[2],sa=er[3],Nr=function(cr,Zr){sa(cr,Zr),Ve==null||Ve(kn(fn.current))},Zn=zn!==-1;l.useEffect(function(){if(!Zn){var pa=mn.lastIndexOf(Ur);gn.current.focus(pa)}},[Zn]);var In=l.useMemo(function(){return(0,s.Z)(pr).sort(function(pa,cr){return pa-cr})},[pr]),Pn=l.useMemo(function(){return ke?[In[0],In[In.length-1]]:[ar,In[0]]},[In,ke,ar]),rr=(0,n.Z)(Pn,2),br=rr[0],Gr=rr[1];l.useImperativeHandle(ae,function(){return{focus:function(){gn.current.focus(0)},blur:function(){var cr=document,Zr=cr.activeElement;Yn.current.contains(Zr)&&(Zr==null||Zr.blur())}}}),l.useEffect(function(){J&&gn.current.focus(0)},[]);var na=l.useMemo(function(){return{min:ar,max:gr,direction:Gn,disabled:We,keyboard:se,step:zt,included:ut,includedStart:br,includedEnd:Gr,range:ke,tabIndex:Ut,ariaLabelForHandle:Jt,ariaLabelledByForHandle:ln,ariaValueTextFormatterForHandle:Mn}},[ar,gr,Gn,We,se,zt,ut,br,Gr,ke,Ut,Jt,ln,Mn]);return l.createElement(C.Provider,{value:na},l.createElement("div",{ref:Yn,className:t()(me,je,(Q={},(0,o.Z)(Q,"".concat(me,"-disabled"),We),(0,o.Z)(Q,"".concat(me,"-vertical"),nt),(0,o.Z)(Q,"".concat(me,"-horizontal"),!nt),(0,o.Z)(Q,"".concat(me,"-with-marks"),rn.length),Q)),style:Ce,onMouseDown:dt},l.createElement("div",{className:"".concat(me,"-rail"),style:Ie}),l.createElement(q,{prefixCls:me,style:Nt,values:In,startPoint:Vt,onStartMove:xn?Nr:null}),l.createElement(x,{prefixCls:me,marks:rn,dots:He,style:Ee,activeStyle:Mt}),l.createElement(G,{ref:gn,prefixCls:me,style:At,values:pr,draggingIndex:zn,onStartMove:Nr,onOffsetChange:nn,onFocus:de,onBlur:xe,handleRender:et}),l.createElement(X,{prefixCls:me,marks:rn,onClick:ct})))}),A=U,V=A,fe=e(61836),pe=e(92428),ge=e(61834),be=e(21319),Te=e(74820),qe=l.forwardRef((P,ae)=>{const{open:Q}=P,ie=(0,l.useRef)(null),me=(0,l.useRef)(null);function je(){ge.Z.cancel(me.current),me.current=null}function Ce(){me.current=(0,ge.Z)(()=>{var Se;(Se=ie.current)===null||Se===void 0||Se.forceAlign(),me.current=null})}return l.useEffect(()=>(Q?Ce():je(),je),[Q,P.title]),l.createElement(Te.Z,Object.assign({ref:(0,be.sQ)(ie,ae)},P))}),Qe=e(66671),ht=e(78330),Et=e(52628),gt=e(22151);const Ht=P=>{const{componentCls:ae,antCls:Q,controlSize:ie,dotSize:me,marginFull:je,marginPart:Ce,colorFillContentHover:Se}=P;return{[ae]:Object.assign(Object.assign({},(0,ht.Wf)(P)),{position:"relative",height:ie,margin:`${Ce}px ${je}px`,padding:0,cursor:"pointer",touchAction:"none",["&-vertical"]:{margin:`${je}px ${Ce}px`},[`${ae}-rail`]:{position:"absolute",backgroundColor:P.railBg,borderRadius:P.borderRadiusXS,transition:`background-color ${P.motionDurationMid}`},[`${ae}-track`]:{position:"absolute",backgroundColor:P.trackBg,borderRadius:P.borderRadiusXS,transition:`background-color ${P.motionDurationMid}`},"&:hover":{[`${ae}-rail`]:{backgroundColor:P.railHoverBg},[`${ae}-track`]:{backgroundColor:P.trackHoverBg},[`${ae}-dot`]:{borderColor:Se},[`${ae}-handle::after`]:{boxShadow:`0 0 0 ${P.handleLineWidth}px ${P.colorPrimaryBorderHover}`},[`${ae}-dot-active`]:{borderColor:P.dotActiveBorderColor}},[`${ae}-handle`]:{position:"absolute",width:P.handleSize,height:P.handleSize,outline:"none",[`${ae}-dragging`]:{zIndex:1},"&::before":{content:'""',position:"absolute",insetInlineStart:-P.handleLineWidth,insetBlockStart:-P.handleLineWidth,width:P.handleSize+P.handleLineWidth*2,height:P.handleSize+P.handleLineWidth*2,backgroundColor:"transparent"},"&::after":{content:'""',position:"absolute",insetBlockStart:0,insetInlineStart:0,width:P.handleSize,height:P.handleSize,backgroundColor:P.colorBgElevated,boxShadow:`0 0 0 ${P.handleLineWidth}px ${P.handleColor}`,borderRadius:"50%",cursor:"pointer",transition:` + inset-inline-start ${P.motionDurationMid}, + inset-block-start ${P.motionDurationMid}, + width ${P.motionDurationMid}, + height ${P.motionDurationMid}, + box-shadow ${P.motionDurationMid} + `},"&:hover, &:active, &:focus":{"&::before":{insetInlineStart:-((P.handleSizeHover-P.handleSize)/2+P.handleLineWidthHover),insetBlockStart:-((P.handleSizeHover-P.handleSize)/2+P.handleLineWidthHover),width:P.handleSizeHover+P.handleLineWidthHover*2,height:P.handleSizeHover+P.handleLineWidthHover*2},"&::after":{boxShadow:`0 0 0 ${P.handleLineWidthHover}px ${P.handleActiveColor}`,width:P.handleSizeHover,height:P.handleSizeHover,insetInlineStart:(P.handleSize-P.handleSizeHover)/2,insetBlockStart:(P.handleSize-P.handleSizeHover)/2}}},[`${ae}-mark`]:{position:"absolute",fontSize:P.fontSize},[`${ae}-mark-text`]:{position:"absolute",display:"inline-block",color:P.colorTextDescription,textAlign:"center",wordBreak:"keep-all",cursor:"pointer",userSelect:"none","&-active":{color:P.colorText}},[`${ae}-step`]:{position:"absolute",background:"transparent",pointerEvents:"none"},[`${ae}-dot`]:{position:"absolute",width:me,height:me,backgroundColor:P.colorBgElevated,border:`${P.handleLineWidth}px solid ${P.dotBorderColor}`,borderRadius:"50%",cursor:"pointer",transition:`border-color ${P.motionDurationSlow}`,pointerEvents:"auto","&-active":{borderColor:P.dotActiveBorderColor}},[`&${ae}-disabled`]:{cursor:"not-allowed",[`${ae}-rail`]:{backgroundColor:`${P.railBg} !important`},[`${ae}-track`]:{backgroundColor:`${P.trackBgDisabled} !important`},[` + ${ae}-dot + `]:{backgroundColor:P.colorBgElevated,borderColor:P.trackBgDisabled,boxShadow:"none",cursor:"not-allowed"},[`${ae}-handle::after`]:{backgroundColor:P.colorBgElevated,cursor:"not-allowed",width:P.handleSize,height:P.handleSize,boxShadow:`0 0 0 ${P.handleLineWidth}px ${new Qe.C(P.colorTextDisabled).onBackground(P.colorBgContainer).toHexShortString()}`,insetInlineStart:0,insetBlockStart:0},[` + ${ae}-mark-text, + ${ae}-dot + `]:{cursor:"not-allowed !important"}},[`&-tooltip ${Q}-tooltip-inner`]:{minWidth:"unset"}})}},$e=(P,ae)=>{const{componentCls:Q,railSize:ie,handleSize:me,dotSize:je}=P,Ce=ae?"paddingBlock":"paddingInline",Se=ae?"width":"height",We=ae?"height":"width",re=ae?"insetBlockStart":"insetInlineStart",se=ae?"top":"insetInlineStart";return{[Ce]:ie,[We]:ie*3,[`${Q}-rail`]:{[Se]:"100%",[We]:ie},[`${Q}-track`]:{[We]:ie},[`${Q}-handle`]:{[re]:(ie*3-me)/2},[`${Q}-mark`]:{insetInlineStart:0,top:0,[se]:ie*3+(ae?0:P.marginFull),[Se]:"100%"},[`${Q}-step`]:{insetInlineStart:0,top:0,[se]:ie,[Se]:"100%",[We]:ie},[`${Q}-dot`]:{position:"absolute",[re]:(ie-je)/2}}},Xe=P=>{const{componentCls:ae,marginPartWithMark:Q}=P;return{[`${ae}-horizontal`]:Object.assign(Object.assign({},$e(P,!0)),{[`&${ae}-with-marks`]:{marginBottom:Q}})}},rt=P=>{const{componentCls:ae}=P;return{[`${ae}-vertical`]:Object.assign(Object.assign({},$e(P,!1)),{height:"100%"})}};var Ke=(0,Et.Z)("Slider",P=>{const ae=(0,gt.TS)(P,{marginPart:(P.controlHeight-P.controlSize)/2,marginFull:P.controlSize/2,marginPartWithMark:P.controlHeightLG-P.controlSize});return[Ht(ae),Xe(ae),rt(ae)]},P=>{const Q=P.controlHeightLG/4,ie=P.controlHeightSM/2,me=P.lineWidth+1,je=P.lineWidth+1*3;return{controlSize:Q,railSize:4,handleSize:Q,handleSizeHover:ie,dotSize:8,handleLineWidth:me,handleLineWidthHover:je,railBg:P.colorFillTertiary,railHoverBg:P.colorFillSecondary,trackBg:P.colorPrimaryBorder,trackHoverBg:P.colorPrimaryBorderHover,handleColor:P.colorPrimaryBorder,handleActiveColor:P.colorPrimary,dotBorderColor:P.colorBorderSecondary,dotActiveBorderColor:P.colorPrimaryBorder,trackBgDisabled:P.colorBgContainerDisabled}}),ye=function(P,ae){var Q={};for(var ie in P)Object.prototype.hasOwnProperty.call(P,ie)&&ae.indexOf(ie)<0&&(Q[ie]=P[ie]);if(P!=null&&typeof Object.getOwnPropertySymbols=="function")for(var me=0,ie=Object.getOwnPropertySymbols(P);metypeof P=="number"?P.toString():"";var R=l.forwardRef((P,ae)=>{const{prefixCls:Q,range:ie,className:me,rootClassName:je,style:Ce,disabled:Se,tooltipPrefixCls:We,tipFormatter:re,tooltipVisible:se,getTooltipPopupContainer:J,tooltipPlacement:de}=P,xe=ye(P,["prefixCls","range","className","rootClassName","style","disabled","tooltipPrefixCls","tipFormatter","tooltipVisible","getTooltipPopupContainer","tooltipPlacement"]),{direction:ce,slider:Ne,getPrefixCls:Oe,getPopupContainer:we}=l.useContext(fe.E_),Re=l.useContext(pe.Z),st=Se!=null?Se:Re,[tt,Ye]=l.useState({}),ke=(ze,nt)=>{Ye(St=>Object.assign(Object.assign({},St),{[ze]:nt}))},Be=(ze,nt)=>ze||(nt?ce==="rtl"?"left":"right":"top"),it=Oe("slider",Q),[Ve,xt]=Ke(it),_t=t()(me,Ne==null?void 0:Ne.className,je,{[`${it}-rtl`]:ce==="rtl"},xt);ce==="rtl"&&!xe.vertical&&(xe.reverse=!xe.reverse);const[Ot,wt]=l.useMemo(()=>ie?typeof ie=="object"?[!0,ie.draggableTrack]:[!0,!1]:[!1],[ie]),Yt=(ze,nt)=>{var St;const{index:ut,dragging:Vt}=nt,{tooltip:Nt={},vertical:At}=P,Ie=Object.assign({},Nt),{open:Ee,placement:Mt,getPopupContainer:jt,prefixCls:He,formatter:et}=Ie;let Zt;et||et===null?Zt=et:re||re===null?Zt=re:Zt=ne;const Ut=Zt?tt[ut]||Vt:!1,Jt=(St=Ee!=null?Ee:se)!==null&&St!==void 0?St:Ee===void 0&&Ut,ln=Object.assign(Object.assign({},ze.props),{onMouseEnter:()=>ke(ut,!0),onMouseLeave:()=>ke(ut,!1)}),Mn=Oe("tooltip",He!=null?He:We);return l.createElement(qe,Object.assign({},Ie,{prefixCls:Mn,title:Zt?Zt(nt.value):"",open:Jt,placement:Be(Mt!=null?Mt:de,At),key:ut,overlayClassName:`${it}-tooltip`,getPopupContainer:jt||J||we}),l.cloneElement(ze,ln))},bt=Object.assign(Object.assign({},Ne==null?void 0:Ne.style),Ce);return Ve(l.createElement(V,Object.assign({},xe,{step:xe.step,range:Ot,draggableTrack:wt,className:_t,style:bt,disabled:st,ref:ae,prefixCls:it,handleRender:Yt})))})},43528:function(b,y,e){"use strict";e.d(y,{BR:function(){return M},ri:function(){return g}});var a=e(87608),t=e.n(a),o=e(42156),s=e(58757),n=e(61836),d=e(58785),l=e(21724),c=function(w,C){var z={};for(var Z in w)Object.prototype.hasOwnProperty.call(w,Z)&&C.indexOf(Z)<0&&(z[Z]=w[Z]);if(w!=null&&typeof Object.getOwnPropertySymbols=="function")for(var N=0,Z=Object.getOwnPropertySymbols(w);N{const z=s.useContext(m),Z=s.useMemo(()=>{if(!z)return"";const{compactDirection:N,isFirstItem:L,isLastItem:$}=z,D=N==="vertical"?"-vertical-":"-";return t()(`${w}-compact${D}item`,{[`${w}-compact${D}first-item`]:L,[`${w}-compact${D}last-item`]:$,[`${w}-compact${D}item-rtl`]:C==="rtl"})},[w,C,z]);return{compactSize:z==null?void 0:z.compactSize,compactDirection:z==null?void 0:z.compactDirection,compactItemClassnames:Z}},M=w=>{let{children:C}=w;return s.createElement(m.Provider,{value:null},C)},h=w=>{var{children:C}=w,z=c(w,["children"]);return s.createElement(m.Provider,{value:z},C)},S=w=>{const{getPrefixCls:C,direction:z}=s.useContext(n.E_),{size:Z,direction:N,block:L,prefixCls:$,className:D,rootClassName:T,children:j}=w,G=c(w,["size","direction","block","prefixCls","className","rootClassName","children"]),k=(0,d.Z)(O=>Z!=null?Z:O),te=C("space-compact",$),[Y,q]=(0,l.Z)(te),le=t()(te,q,{[`${te}-rtl`]:z==="rtl",[`${te}-block`]:L,[`${te}-vertical`]:N==="vertical"},D,T),X=s.useContext(m),W=(0,o.Z)(j),x=s.useMemo(()=>W.map((O,_)=>{const U=O&&O.key||`${te}-item-${_}`;return s.createElement(h,{key:U,compactSize:k,compactDirection:N,isFirstItem:_===0&&(!X||(X==null?void 0:X.isFirstItem)),isLastItem:_===W.length-1&&(!X||(X==null?void 0:X.isLastItem))},O)}),[Z,W,X]);return W.length===0?null:Y(s.createElement("div",Object.assign({className:le},G),x))};y.ZP=S},57414:function(b,y,e){"use strict";e.d(y,{Z:function(){return N}});var a=e(87608),t=e.n(a),o=e(42156),s=e(58757),n=e(69387),d=e(61836),l=e(43528);const c=s.createContext({latestIndex:0,horizontalSize:0,verticalSize:0,supportFlexGap:!1}),m=c.Provider;var M=L=>{let{className:$,direction:D,index:T,marginDirection:j,children:G,split:k,wrap:te,style:Y}=L;const{horizontalSize:q,verticalSize:le,latestIndex:X,supportFlexGap:W}=s.useContext(c);let x={};return W||(D==="vertical"?T{var D,T;const{getPrefixCls:j,space:G,direction:k}=s.useContext(d.E_),{size:te=(G==null?void 0:G.size)||"small",align:Y,className:q,rootClassName:le,children:X,direction:W="horizontal",prefixCls:x,split:O,style:_,wrap:U=!1,classNames:A,styles:V}=L,fe=S(L,["size","align","className","rootClassName","children","direction","prefixCls","split","style","wrap","classNames","styles"]),pe=(0,n.Z)(),[ge,be]=s.useMemo(()=>(Array.isArray(te)?te:[te,te]).map(ye=>C(ye)),[te]),Te=(0,o.Z)(X,{keepEmpty:!0}),Ge=Y===void 0&&W==="horizontal"?"center":Y,qe=j("space",x),[Qe,ht]=(0,h.Z)(qe),Et=t()(qe,G==null?void 0:G.className,ht,`${qe}-${W}`,{[`${qe}-rtl`]:k==="rtl",[`${qe}-align-${Ge}`]:Ge},q,le),gt=t()(`${qe}-item`,(D=A==null?void 0:A.item)!==null&&D!==void 0?D:(T=G==null?void 0:G.classNames)===null||T===void 0?void 0:T.item),Ht=k==="rtl"?"marginLeft":"marginRight";let $e=0;const Xe=Te.map((ye,ne)=>{var H,R;ye!=null&&($e=ne);const P=ye&&ye.key||`${gt}-${ne}`;return s.createElement(M,{className:gt,key:P,direction:W,index:ne,marginDirection:Ht,split:O,wrap:U,style:(H=V==null?void 0:V.item)!==null&&H!==void 0?H:(R=G==null?void 0:G.styles)===null||R===void 0?void 0:R.item},ye)}),rt=s.useMemo(()=>({horizontalSize:ge,verticalSize:be,latestIndex:$e,supportFlexGap:pe}),[ge,be,$e,pe]);if(Te.length===0)return null;const Ke={};return U&&(Ke.flexWrap="wrap",pe||(Ke.marginBottom=-be)),pe&&(Ke.columnGap=ge,Ke.rowGap=be),Qe(s.createElement("div",Object.assign({ref:$,className:Et,style:Object.assign(Object.assign(Object.assign({},Ke),G==null?void 0:G.style),_)},fe),s.createElement(m,{value:rt},Xe)))});Z.Compact=l.ZP;var N=Z},21724:function(b,y,e){"use strict";e.d(y,{Z:function(){return n}});var a=e(52628),o=d=>{const{componentCls:l}=d;return{[l]:{"&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"}}}};const s=d=>{const{componentCls:l}=d;return{[l]:{display:"inline-flex","&-rtl":{direction:"rtl"},"&-vertical":{flexDirection:"column"},"&-align":{flexDirection:"column","&-center":{alignItems:"center"},"&-start":{alignItems:"flex-start"},"&-end":{alignItems:"flex-end"},"&-baseline":{alignItems:"baseline"}},[`${l}-item:empty`]:{display:"none"}}}};var n=(0,a.Z)("Space",d=>[s(d),o(d)],()=>({}),{resetStyle:!1})},79233:function(b,y,e){"use strict";e.d(y,{Z:function(){return j}});var a=e(87608),t=e.n(a),o=e(98186),s=e(58757),n=e(70989),d=e(37047),l=e(61836),c=e(57793),m=e(78330),g=e(52628),M=e(22151);const h=new c.E4("antSpinMove",{to:{opacity:1}}),S=new c.E4("antRotate",{to:{transform:"rotate(405deg)"}}),w=G=>({[`${G.componentCls}`]:Object.assign(Object.assign({},(0,m.Wf)(G)),{position:"absolute",display:"none",color:G.colorPrimary,fontSize:0,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${G.motionDurationSlow} ${G.motionEaseInOutCirc}`,"&-spinning":{position:"static",display:"inline-block",opacity:1},"&-nested-loading":{position:"relative",[`> div > ${G.componentCls}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:G.contentHeight,[`${G.componentCls}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:-G.spinDotSize/2},[`${G.componentCls}-text`]:{position:"absolute",top:"50%",width:"100%",paddingTop:(G.spinDotSize-G.fontSize)/2+2,textShadow:`0 1px 2px ${G.colorBgContainer}`,fontSize:G.fontSize},[`&${G.componentCls}-show-text ${G.componentCls}-dot`]:{marginTop:-(G.spinDotSize/2)-10},"&-sm":{[`${G.componentCls}-dot`]:{margin:-G.spinDotSizeSM/2},[`${G.componentCls}-text`]:{paddingTop:(G.spinDotSizeSM-G.fontSize)/2+2},[`&${G.componentCls}-show-text ${G.componentCls}-dot`]:{marginTop:-(G.spinDotSizeSM/2)-10}},"&-lg":{[`${G.componentCls}-dot`]:{margin:-(G.spinDotSizeLG/2)},[`${G.componentCls}-text`]:{paddingTop:(G.spinDotSizeLG-G.fontSize)/2+2},[`&${G.componentCls}-show-text ${G.componentCls}-dot`]:{marginTop:-(G.spinDotSizeLG/2)-10}}},[`${G.componentCls}-container`]:{position:"relative",transition:`opacity ${G.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:G.colorBgContainer,opacity:0,transition:`all ${G.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${G.componentCls}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none",["&::after"]:{opacity:.4,pointerEvents:"auto"}}},["&-tip"]:{color:G.spinDotDefault},[`${G.componentCls}-dot`]:{position:"relative",display:"inline-block",fontSize:G.spinDotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:(G.spinDotSize-G.marginXXS/2)/2,height:(G.spinDotSize-G.marginXXS/2)/2,backgroundColor:G.colorPrimary,borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:h,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:S,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&-sm ${G.componentCls}-dot`]:{fontSize:G.spinDotSizeSM,i:{width:(G.spinDotSizeSM-G.marginXXS/2)/2,height:(G.spinDotSizeSM-G.marginXXS/2)/2}},[`&-lg ${G.componentCls}-dot`]:{fontSize:G.spinDotSizeLG,i:{width:(G.spinDotSizeLG-G.marginXXS)/2,height:(G.spinDotSizeLG-G.marginXXS)/2}},[`&${G.componentCls}-show-text ${G.componentCls}-text`]:{display:"block"}})});var C=(0,g.Z)("Spin",G=>{const k=(0,M.TS)(G,{spinDotDefault:G.colorTextDescription,spinDotSize:G.controlHeightLG/2,spinDotSizeSM:G.controlHeightLG*.35,spinDotSizeLG:G.controlHeight});return[w(k)]},{contentHeight:400}),z=function(G,k){var te={};for(var Y in G)Object.prototype.hasOwnProperty.call(G,Y)&&k.indexOf(Y)<0&&(te[Y]=G[Y]);if(G!=null&&typeof Object.getOwnPropertySymbols=="function")for(var q=0,Y=Object.getOwnPropertySymbols(G);q{const{spinPrefixCls:k,spinning:te=!0,delay:Y=0,className:q,rootClassName:le,size:X="default",tip:W,wrapperClassName:x,style:O,children:_,hashId:U}=G,A=z(G,["spinPrefixCls","spinning","delay","className","rootClassName","size","tip","wrapperClassName","style","children","hashId"]),[V,fe]=s.useState(()=>te&&!$(te,Y));s.useEffect(()=>{if(te){const Et=(0,n.D)(Y,()=>{fe(!0)});return Et(),()=>{var gt;(gt=Et==null?void 0:Et.cancel)===null||gt===void 0||gt.call(Et)}}fe(!1)},[Y,te]);const pe=s.useMemo(()=>typeof _!="undefined",[_]),{direction:ge,spin:be}=s.useContext(l.E_),Te=t()(k,be==null?void 0:be.className,{[`${k}-sm`]:X==="small",[`${k}-lg`]:X==="large",[`${k}-spinning`]:V,[`${k}-show-text`]:!!W,[`${k}-rtl`]:ge==="rtl"},q,le,U),Ge=t()(`${k}-container`,{[`${k}-blur`]:V}),qe=(0,o.Z)(A,["indicator","prefixCls"]),Qe=Object.assign(Object.assign({},be==null?void 0:be.style),O),ht=s.createElement("div",Object.assign({},qe,{style:Qe,className:Te,"aria-live":"polite","aria-busy":V}),L(k,G),W&&pe?s.createElement("div",{className:`${k}-text`},W):null);return pe?s.createElement("div",Object.assign({},qe,{className:t()(`${k}-nested-loading`,x,U)}),V&&s.createElement("div",{key:"loading"},ht),s.createElement("div",{className:Ge,key:"container"},_)):ht},T=G=>{const{prefixCls:k}=G,{getPrefixCls:te}=s.useContext(l.E_),Y=te("spin",k),[q,le]=C(Y),X=Object.assign(Object.assign({},G),{spinPrefixCls:Y,hashId:le});return q(s.createElement(D,Object.assign({},X)))};T.setDefaultIndicator=G=>{N=G};var j=T},64493:function(b,y,e){"use strict";e.d(y,{c:function(){return o}});function a(s,n,d){const{focusElCls:l,focus:c,borderElCls:m}=d,g=m?"> *":"",M=["hover",c?"focus":null,"active"].filter(Boolean).map(h=>`&:${h} ${g}`).join(",");return{[`&-item:not(${n}-last-item)`]:{marginInlineEnd:-s.lineWidth},"&-item":Object.assign(Object.assign({[M]:{zIndex:2}},l?{[`&${l}`]:{zIndex:2}}:{}),{[`&[disabled] ${g}`]:{zIndex:0}})}}function t(s,n,d){const{borderElCls:l}=d,c=l?`> ${l}`:"";return{[`&-item:not(${n}-first-item):not(${n}-last-item) ${c}`]:{borderRadius:0},[`&-item:not(${n}-last-item)${n}-first-item`]:{[`& ${c}, &${s}-sm ${c}, &${s}-lg ${c}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${n}-first-item)${n}-last-item`]:{[`& ${c}, &${s}-sm ${c}, &${s}-lg ${c}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function o(s){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{focus:!0};const{componentCls:d}=s,l=`${d}-compact`;return{[l]:Object.assign(Object.assign({},a(s,l,n)),t(d,l,n))}}},78330:function(b,y,e){"use strict";e.d(y,{Lx:function(){return n},Qy:function(){return c},Ro:function(){return o},Wf:function(){return t},dF:function(){return s},du:function(){return d},oN:function(){return l},vS:function(){return a}});const a={overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},t=m=>({boxSizing:"border-box",margin:0,padding:0,color:m.colorText,fontSize:m.fontSize,lineHeight:m.lineHeight,listStyle:"none",fontFamily:m.fontFamily}),o=()=>({display:"inline-flex",alignItems:"center",color:"inherit",fontStyle:"normal",lineHeight:0,textAlign:"center",textTransform:"none",verticalAlign:"-0.125em",textRendering:"optimizeLegibility","-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale","> *":{lineHeight:1},svg:{display:"inline-block"}}),s=()=>({"&::before":{display:"table",content:'""'},"&::after":{display:"table",clear:"both",content:'""'}}),n=m=>({a:{color:m.colorLink,textDecoration:m.linkDecoration,backgroundColor:"transparent",outline:"none",cursor:"pointer",transition:`color ${m.motionDurationSlow}`,"-webkit-text-decoration-skip":"objects","&:hover":{color:m.colorLinkHover},"&:active":{color:m.colorLinkActive},[`&:active, + &:hover`]:{textDecoration:m.linkHoverDecoration,outline:0},"&:focus":{textDecoration:m.linkFocusDecoration,outline:0},"&[disabled]":{color:m.colorTextDisabled,cursor:"not-allowed"}}}),d=(m,g)=>{const{fontFamily:M,fontSize:h}=m,S=`[class^="${g}"], [class*=" ${g}"]`;return{[S]:{fontFamily:M,fontSize:h,boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"},[S]:{boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}}}}},l=m=>({outline:`${m.lineWidthFocus}px solid ${m.colorPrimaryBorder}`,outlineOffset:1,transition:"outline-offset 0s, outline 0s"}),c=m=>({"&:focus-visible":Object.assign({},l(m))})},41086:function(b,y){"use strict";const e=a=>({[a.componentCls]:{[`${a.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${a.motionDurationMid} ${a.motionEaseInOut}, + opacity ${a.motionDurationMid} ${a.motionEaseInOut} !important`}},[`${a.antCls}-motion-collapse`]:{overflow:"hidden",transition:`height ${a.motionDurationMid} ${a.motionEaseInOut}, + opacity ${a.motionDurationMid} ${a.motionEaseInOut} !important`}}});y.Z=e},7239:function(b,y,e){"use strict";e.d(y,{J$:function(){return n}});var a=e(57793),t=e(85745);const o=new a.E4("antFadeIn",{"0%":{opacity:0},"100%":{opacity:1}}),s=new a.E4("antFadeOut",{"0%":{opacity:1},"100%":{opacity:0}}),n=function(d){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const{antCls:c}=d,m=`${c}-fade`,g=l?"&":"";return[(0,t.R)(m,o,s,d.motionDurationMid,l),{[` + ${g}${m}-enter, + ${g}${m}-appear + `]:{opacity:0,animationTimingFunction:"linear"},[`${g}${m}-leave`]:{animationTimingFunction:"linear"}}]}},85745:function(b,y,e){"use strict";e.d(y,{R:function(){return o}});const a=s=>({animationDuration:s,animationFillMode:"both"}),t=s=>({animationDuration:s,animationFillMode:"both"}),o=function(s,n,d,l){const m=(arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1)?"&":"";return{[` + ${m}${s}-enter, + ${m}${s}-appear + `]:Object.assign(Object.assign({},a(l)),{animationPlayState:"paused"}),[`${m}${s}-leave`]:Object.assign(Object.assign({},t(l)),{animationPlayState:"paused"}),[` + ${m}${s}-enter${s}-enter-active, + ${m}${s}-appear${s}-appear-active + `]:{animationName:n,animationPlayState:"running"},[`${m}${s}-leave${s}-leave-active`]:{animationName:d,animationPlayState:"running",pointerEvents:"none"}}}},1546:function(b,y,e){"use strict";e.d(y,{Fm:function(){return h}});var a=e(57793),t=e(85745);const o=new a.E4("antMoveDownIn",{"0%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),s=new a.E4("antMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0}}),n=new a.E4("antMoveLeftIn",{"0%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),d=new a.E4("antMoveLeftOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),l=new a.E4("antMoveRightIn",{"0%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),c=new a.E4("antMoveRightOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),m=new a.E4("antMoveUpIn",{"0%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),g=new a.E4("antMoveUpOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0}}),M={"move-up":{inKeyframes:m,outKeyframes:g},"move-down":{inKeyframes:o,outKeyframes:s},"move-left":{inKeyframes:n,outKeyframes:d},"move-right":{inKeyframes:l,outKeyframes:c}},h=(S,w)=>{const{antCls:C}=S,z=`${C}-${w}`,{inKeyframes:Z,outKeyframes:N}=M[w];return[(0,t.R)(z,Z,N,S.motionDurationMid),{[` + ${z}-enter, + ${z}-appear + `]:{opacity:0,animationTimingFunction:S.motionEaseOutCirc},[`${z}-leave`]:{animationTimingFunction:S.motionEaseInOutCirc}}]}},1016:function(b,y,e){"use strict";e.d(y,{Qt:function(){return n},Uw:function(){return s},fJ:function(){return o},ly:function(){return d},oN:function(){return h}});var a=e(57793),t=e(85745);const o=new a.E4("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),s=new a.E4("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),n=new a.E4("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),d=new a.E4("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),l=new a.E4("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),c=new a.E4("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}}),m=new a.E4("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),g=new a.E4("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}}),M={"slide-up":{inKeyframes:o,outKeyframes:s},"slide-down":{inKeyframes:n,outKeyframes:d},"slide-left":{inKeyframes:l,outKeyframes:c},"slide-right":{inKeyframes:m,outKeyframes:g}},h=(S,w)=>{const{antCls:C}=S,z=`${C}-${w}`,{inKeyframes:Z,outKeyframes:N}=M[w];return[(0,t.R)(z,Z,N,S.motionDurationMid),{[` + ${z}-enter, + ${z}-appear + `]:{transform:"scale(0)",transformOrigin:"0% 0%",opacity:0,animationTimingFunction:S.motionEaseOutQuint,["&-prepare"]:{transform:"scale(1)"}},[`${z}-leave`]:{animationTimingFunction:S.motionEaseInQuint}}]}},28107:function(b,y,e){"use strict";e.d(y,{_y:function(){return z},kr:function(){return o}});var a=e(57793),t=e(85745);const o=new a.E4("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),s=new a.E4("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),n=new a.E4("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),d=new a.E4("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),l=new a.E4("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),c=new a.E4("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),m=new a.E4("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),g=new a.E4("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),M=new a.E4("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),h=new a.E4("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),S=new a.E4("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),w=new a.E4("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),C={zoom:{inKeyframes:o,outKeyframes:s},"zoom-big":{inKeyframes:n,outKeyframes:d},"zoom-big-fast":{inKeyframes:n,outKeyframes:d},"zoom-left":{inKeyframes:m,outKeyframes:g},"zoom-right":{inKeyframes:M,outKeyframes:h},"zoom-up":{inKeyframes:l,outKeyframes:c},"zoom-down":{inKeyframes:S,outKeyframes:w}},z=(Z,N)=>{const{antCls:L}=Z,$=`${L}-${N}`,{inKeyframes:D,outKeyframes:T}=C[N];return[(0,t.R)($,D,T,N==="zoom-big-fast"?Z.motionDurationFast:Z.motionDurationMid),{[` + ${$}-enter, + ${$}-appear + `]:{transform:"scale(0)",opacity:0,animationTimingFunction:Z.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${$}-leave`]:{animationTimingFunction:Z.motionEaseInOutCirc}}]}},24542:function(b,y,e){"use strict";e.d(y,{ZP:function(){return n},fS:function(){return o},qN:function(){return t}});var a=e(72944);const t=8;function o(d){const l=t,{contentRadius:c,limitVerticalRadius:m}=d,g=c>12?c+2:12;return{dropdownArrowOffset:g,dropdownArrowOffsetVertical:m?l:g}}function s(d,l){return d?l:{}}function n(d,l){const{componentCls:c,sizePopupArrow:m,borderRadiusXS:g,borderRadiusOuter:M,boxShadowPopoverArrow:h}=d,{colorBg:S,contentRadius:w=d.borderRadiusLG,limitVerticalRadius:C,arrowDistance:z=0,arrowPlacement:Z={left:!0,right:!0,top:!0,bottom:!0}}=l,{dropdownArrowOffsetVertical:N,dropdownArrowOffset:L}=o({contentRadius:w,limitVerticalRadius:C});return{[c]:Object.assign(Object.assign(Object.assign(Object.assign({[`${c}-arrow`]:[Object.assign(Object.assign({position:"absolute",zIndex:1,display:"block"},(0,a.r)(m,g,M,S,h)),{"&:before":{background:S}})]},s(!!Z.top,{[[`&-placement-top ${c}-arrow`,`&-placement-topLeft ${c}-arrow`,`&-placement-topRight ${c}-arrow`].join(",")]:{bottom:z,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top ${c}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},[`&-placement-topLeft ${c}-arrow`]:{left:{_skip_check_:!0,value:L}},[`&-placement-topRight ${c}-arrow`]:{right:{_skip_check_:!0,value:L}}})),s(!!Z.bottom,{[[`&-placement-bottom ${c}-arrow`,`&-placement-bottomLeft ${c}-arrow`,`&-placement-bottomRight ${c}-arrow`].join(",")]:{top:z,transform:"translateY(-100%)"},[`&-placement-bottom ${c}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},[`&-placement-bottomLeft ${c}-arrow`]:{left:{_skip_check_:!0,value:L}},[`&-placement-bottomRight ${c}-arrow`]:{right:{_skip_check_:!0,value:L}}})),s(!!Z.left,{[[`&-placement-left ${c}-arrow`,`&-placement-leftTop ${c}-arrow`,`&-placement-leftBottom ${c}-arrow`].join(",")]:{right:{_skip_check_:!0,value:z},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left ${c}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop ${c}-arrow`]:{top:N},[`&-placement-leftBottom ${c}-arrow`]:{bottom:N}})),s(!!Z.right,{[[`&-placement-right ${c}-arrow`,`&-placement-rightTop ${c}-arrow`,`&-placement-rightBottom ${c}-arrow`].join(",")]:{left:{_skip_check_:!0,value:z},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right ${c}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop ${c}-arrow`]:{top:N},[`&-placement-rightBottom ${c}-arrow`]:{bottom:N}}))}}},72944:function(b,y,e){"use strict";e.d(y,{r:function(){return a}});const a=(t,o,s,n,d)=>{const l=t/2,c=0,m=l,g=s*1/Math.sqrt(2),M=l-s*(1-1/Math.sqrt(2)),h=l-o*(1/Math.sqrt(2)),S=s*(Math.sqrt(2)-1)+o*(1/Math.sqrt(2)),w=2*l-h,C=S,z=2*l-g,Z=M,N=2*l-c,L=m,$=l*Math.sqrt(2)+s*(Math.sqrt(2)-2),D=s*(Math.sqrt(2)-1);return{pointerEvents:"none",width:t,height:t,overflow:"hidden","&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:t,height:t/2,background:n,clipPath:{_multi_value_:!0,value:[`polygon(${D}px 100%, 50% ${D}px, ${2*l-D}px 100%, ${D}px 100%)`,`path('M ${c} ${m} A ${s} ${s} 0 0 0 ${g} ${M} L ${h} ${S} A ${o} ${o} 0 0 1 ${w} ${C} L ${z} ${Z} A ${s} ${s} 0 0 0 ${N} ${L} Z')`]},content:'""'},"&::after":{content:'""',position:"absolute",width:$,height:$,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${o}px 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:d,zIndex:0,background:"transparent"}}}},16951:function(b,y,e){"use strict";e.d(y,{Z:function(){return At}});var a=e(52495),t=e(18974),o=e(12673),s=e(87608),n=e.n(s),d=e(60698),l=e(37734),c=e(57370),m=e(28314),g=e(38790),M=e(47075),h=e(58757),S=e(21618),w=e(60409),C=e(17598),z=(0,h.createContext)(null),Z=h.forwardRef(function(Ie,Ee){var Mt=Ie.prefixCls,jt=Ie.className,He=Ie.style,et=Ie.id,Zt=Ie.active,Ut=Ie.tabKey,Jt=Ie.children;return h.createElement("div",{id:et&&"".concat(et,"-panel-").concat(Ut),role:"tabpanel",tabIndex:Zt?0:-1,"aria-labelledby":et&&"".concat(et,"-tab-").concat(Ut),"aria-hidden":!Zt,style:He,className:n()(Mt,Zt&&"".concat(Mt,"-active"),jt),ref:Ee},Jt)}),N=Z,L=["key","forceRender","style","className"];function $(Ie){var Ee=Ie.id,Mt=Ie.activeKey,jt=Ie.animated,He=Ie.tabPosition,et=Ie.destroyInactiveTabPane,Zt=h.useContext(z),Ut=Zt.prefixCls,Jt=Zt.tabs,ln=jt.tabPane,Mn="".concat(Ut,"-tabpane");return h.createElement("div",{className:n()("".concat(Ut,"-content-holder"))},h.createElement("div",{className:n()("".concat(Ut,"-content"),"".concat(Ut,"-content-").concat(He),(0,l.Z)({},"".concat(Ut,"-content-animated"),ln))},Jt.map(function(gn){var Yn=gn.key,Gn=gn.forceRender,ar=gn.style,gr=gn.className,zt=(0,M.Z)(gn,L),qt=Yn===Mt;return h.createElement(C.ZP,(0,d.Z)({key:Yn,visible:qt,forceRender:Gn,removeOnLeave:!!et,leavedClassName:"".concat(Mn,"-hidden")},jt.tabPaneMotion),function(rn,dn){var Cn=rn.style,on=rn.className;return h.createElement(N,(0,d.Z)({},zt,{prefixCls:Mn,id:Ee,tabKey:Yn,animated:ln,active:qt,style:(0,c.Z)((0,c.Z)({},ar),Cn),className:n()(gr,on),ref:dn}))})})))}var D=e(29140),T=e(19425),j=e(51729),G=e(61834),k=e(21319),te={width:0,height:0,left:0,top:0};function Y(Ie,Ee,Mt){return(0,h.useMemo)(function(){for(var jt,He=new Map,et=Ee.get((jt=Ie[0])===null||jt===void 0?void 0:jt.key)||te,Zt=et.left+et.width,Ut=0;Utqn?(fn=tn,pt.current="x"):(fn=mn,pt.current="y"),Ee(-fn,-fn)&&Kt.preventDefault()}var sn=(0,h.useRef)(null);sn.current={onTouchStart:dn,onTouchMove:Cn,onTouchEnd:on,onWheel:mt},h.useEffect(function(){function Kt(kn){sn.current.onTouchStart(kn)}function tn(kn){sn.current.onTouchMove(kn)}function mn(kn){sn.current.onTouchEnd(kn)}function fn(kn){sn.current.onWheel(kn)}return document.addEventListener("touchmove",tn,{passive:!1}),document.addEventListener("touchend",mn,{passive:!1}),Ie.current.addEventListener("touchstart",Kt,{passive:!1}),Ie.current.addEventListener("wheel",fn),function(){document.removeEventListener("touchmove",tn),document.removeEventListener("touchend",mn)}},[])}var _=e(81334);function U(Ie){var Ee=(0,h.useState)(0),Mt=(0,m.Z)(Ee,2),jt=Mt[0],He=Mt[1],et=(0,h.useRef)(0),Zt=(0,h.useRef)();return Zt.current=Ie,(0,_.o)(function(){var Ut;(Ut=Zt.current)===null||Ut===void 0||Ut.call(Zt)},[jt]),function(){et.current===jt&&(et.current+=1,He(et.current))}}function A(Ie){var Ee=(0,h.useRef)([]),Mt=(0,h.useState)({}),jt=(0,m.Z)(Mt,2),He=jt[1],et=(0,h.useRef)(typeof Ie=="function"?Ie():Ie),Zt=U(function(){var Jt=et.current;Ee.current.forEach(function(ln){Jt=ln(Jt)}),Ee.current=[],et.current=Jt,He({})});function Ut(Jt){Ee.current.push(Jt),Zt()}return[et.current,Ut]}var V={width:0,height:0,left:0,top:0,right:0};function fe(Ie,Ee,Mt,jt,He,et,Zt){var Ut=Zt.tabs,Jt=Zt.tabPosition,ln=Zt.rtl,Mn,gn,Yn;return["top","bottom"].includes(Jt)?(Mn="width",gn=ln?"right":"left",Yn=Math.abs(Mt)):(Mn="height",gn="top",Yn=-Mt),(0,h.useMemo)(function(){if(!Ut.length)return[0,0];for(var Gn=Ut.length,ar=Gn,gr=0;grYn+Ee){ar=gr-1;break}}for(var qt=0,rn=Gn-1;rn>=0;rn-=1){var dn=Ie.get(Ut[rn].key)||V;if(dn[gn]=ar?[0,0]:[qt,ar]},[Ie,Ee,jt,He,et,Yn,Jt,Ut.map(function(Gn){return Gn.key}).join("_"),ln])}function pe(Ie){var Ee;return Ie instanceof Map?(Ee={},Ie.forEach(function(Mt,jt){Ee[jt]=Mt})):Ee=Ie,JSON.stringify(Ee)}var ge="TABS_DQ";function be(Ie){return String(Ie).replace(/"/g,ge)}function Te(Ie,Ee,Mt,jt){return!(!Mt||jt||Ie===!1||Ie===void 0&&(Ee===!1||Ee===null))}function Ge(Ie,Ee){var Mt=Ie.prefixCls,jt=Ie.editable,He=Ie.locale,et=Ie.style;return!jt||jt.showAdd===!1?null:h.createElement("button",{ref:Ee,type:"button",className:"".concat(Mt,"-nav-add"),style:et,"aria-label":(He==null?void 0:He.addAriaLabel)||"Add tab",onClick:function(Ut){jt.onEdit("add",{event:Ut})}},jt.addIcon||"+")}var qe=h.forwardRef(Ge),Qe=h.forwardRef(function(Ie,Ee){var Mt=Ie.position,jt=Ie.prefixCls,He=Ie.extra;if(!He)return null;var et,Zt={};return(0,g.Z)(He)==="object"&&!h.isValidElement(He)?Zt=He:Zt.right=He,Mt==="right"&&(et=Zt.right),Mt==="left"&&(et=Zt.left),et?h.createElement("div",{className:"".concat(jt,"-extra-content"),ref:Ee},et):null}),ht=Qe,Et=e(4933),gt=e(87854),Ht=e(29639);function $e(Ie,Ee){var Mt=Ie.prefixCls,jt=Ie.id,He=Ie.tabs,et=Ie.locale,Zt=Ie.mobile,Ut=Ie.moreIcon,Jt=Ut===void 0?"More":Ut,ln=Ie.moreTransitionName,Mn=Ie.style,gn=Ie.className,Yn=Ie.editable,Gn=Ie.tabBarGutter,ar=Ie.rtl,gr=Ie.removeAriaLabel,zt=Ie.onTabClick,qt=Ie.getPopupContainer,rn=Ie.popupClassName,dn=(0,h.useState)(!1),Cn=(0,m.Z)(dn,2),on=Cn[0],pt=Cn[1],mt=(0,h.useState)(null),sn=(0,m.Z)(mt,2),Kt=sn[0],tn=sn[1],mn="".concat(jt,"-more-popup"),fn="".concat(Mt,"-dropdown"),kn=Kt!==null?"".concat(mn,"-").concat(Kt):null,qn=et==null?void 0:et.dropdownAriaLabel;function ct(xn,Rn){xn.preventDefault(),xn.stopPropagation(),Yn.onEdit("remove",{key:Rn,event:xn})}var dt=h.createElement(gt.ZP,{onClick:function(Rn){var Mr=Rn.key,er=Rn.domEvent;zt(Mr,er),pt(!1)},prefixCls:"".concat(fn,"-menu"),id:mn,tabIndex:-1,role:"listbox","aria-activedescendant":kn,selectedKeys:[Kt],"aria-label":qn!==void 0?qn:"expanded dropdown"},He.map(function(xn){var Rn=xn.closable,Mr=xn.disabled,er=xn.closeIcon,zn=xn.key,Ur=xn.label,pr=Te(Rn,er,Yn,Mr);return h.createElement(gt.sN,{key:zn,id:"".concat(mn,"-").concat(zn),role:"option","aria-controls":jt&&"".concat(jt,"-panel-").concat(zn),disabled:Mr},h.createElement("span",null,Ur),pr&&h.createElement("button",{type:"button","aria-label":gr||"remove",tabIndex:0,className:"".concat(fn,"-menu-item-remove"),onClick:function(Nr){Nr.stopPropagation(),ct(Nr,zn)}},er||Yn.removeIcon||"\xD7"))}));function It(xn){for(var Rn=He.filter(function(pr){return!pr.disabled}),Mr=Rn.findIndex(function(pr){return pr.key===Kt})||0,er=Rn.length,zn=0;znJr?"left":"right"})}),kn=(0,m.Z)(fn,2),qn=kn[0],ct=kn[1],dt=q(0,function(kr,Jr){!mn&&dn&&dn({direction:kr>Jr?"top":"bottom"})}),It=(0,m.Z)(dt,2),Ct=It[0],kt=It[1],un=(0,h.useState)([0,0]),nn=(0,m.Z)(un,2),xn=nn[0],Rn=nn[1],Mr=(0,h.useState)([0,0]),er=(0,m.Z)(Mr,2),zn=er[0],Ur=er[1],pr=(0,h.useState)([0,0]),sa=(0,m.Z)(pr,2),Nr=sa[0],Zn=sa[1],In=(0,h.useState)([0,0]),Pn=(0,m.Z)(In,2),rr=Pn[0],br=Pn[1],Gr=A(new Map),na=(0,m.Z)(Gr,2),pa=na[0],cr=na[1],Zr=Y(et,pa,zn[0]),Ea=ne(xn,mn),ha=ne(zn,mn),Wn=ne(Nr,mn),Fn=ne(rr,mn),hr=Eaan?an:kr}var qa=(0,h.useRef)(),Mo=(0,h.useState)(),Ua=(0,m.Z)(Mo,2),Wa=Ua[0],Xa=Ua[1];function No(){Xa(Date.now())}function $o(){window.clearTimeout(qa.current)}O(mt,function(kr,Jr){function or(Hr,ca){Hr(function(Oa){var Ia=pn(Oa+ca);return Ia})}return hr?(mn?or(ct,kr):or(kt,Jr),$o(),No(),!0):!1}),(0,h.useEffect)(function(){return $o(),Wa&&(qa.current=window.setTimeout(function(){Xa(0)},100)),$o},[Wa]);var So=fe(Zr,Kr,mn?qn:Ct,ha,Wn,Fn,(0,c.Z)((0,c.Z)({},Ie),{},{tabs:et})),ft=(0,m.Z)(So,2),Rt=ft[0],Ae=ft[1],cn=(0,j.Z)(function(){var kr=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Mn,Jr=Zr.get(kr)||{width:0,height:0,left:0,right:0,top:0};if(mn){var or=qn;gn?Jr.rightqn+Kr&&(or=Jr.right+Jr.width-Kr):Jr.left<-qn?or=-Jr.left:Jr.left+Jr.width>-qn+Kr&&(or=-(Jr.left+Jr.width-Kr)),kt(0),ct(pn(or))}else{var Hr=Ct;Jr.top<-Ct?Hr=-Jr.top:Jr.top+Jr.height>-Ct+Kr&&(Hr=-(Jr.top+Jr.height-Kr)),ct(0),kt(pn(Hr))}}),An={};gr==="top"||gr==="bottom"?An[gn?"marginRight":"marginLeft"]=zt:An.marginTop=zt;var hn=et.map(function(kr,Jr){var or=kr.key;return h.createElement(Ke,{id:Jt,prefixCls:He,key:or,tab:kr,style:Jr===0?void 0:An,closable:kr.closable,editable:Gn,active:or===Mn,renderWrapper:qt,removeAriaLabel:ar==null?void 0:ar.removeAriaLabel,onClick:function(ca){rn(or,ca)},onFocus:function(){cn(or),No(),mt.current&&(gn||(mt.current.scrollLeft=0),mt.current.scrollTop=0)}})}),Xn=function(){return cr(function(){var Jr=new Map;return et.forEach(function(or){var Hr,ca=or.key,Oa=(Hr=sn.current)===null||Hr===void 0?void 0:Hr.querySelector('[data-node-key="'.concat(be(ca),'"]'));Oa&&Jr.set(ca,{width:Oa.offsetWidth,height:Oa.offsetHeight,left:Oa.offsetLeft,top:Oa.offsetTop})}),Jr})};(0,h.useEffect)(function(){Xn()},[et.map(function(kr){return kr.key}).join("_")]);var nr=U(function(){var kr=ye(Cn),Jr=ye(on),or=ye(pt);Rn([kr[0]-Jr[0]-or[0],kr[1]-Jr[1]-or[1]]);var Hr=ye(tn);Zn(Hr);var ca=ye(Kt);br(ca);var Oa=ye(sn);Ur([Oa[0]-Hr[0],Oa[1]-Hr[1]]),Xn()}),Wr=et.slice(0,Rt),Da=et.slice(Ae+1),oa=[].concat((0,D.Z)(Wr),(0,D.Z)(Da)),Qr=(0,h.useState)(),ra=(0,m.Z)(Qr,2),jr=ra[0],$r=ra[1],fa=Zr.get(Mn),Na=(0,h.useRef)();function to(){G.Z.cancel(Na.current)}(0,h.useEffect)(function(){var kr={};return fa&&(mn?(gn?kr.right=fa.right:kr.left=fa.left,kr.width=fa.width):(kr.top=fa.top,kr.height=fa.height)),to(),Na.current=(0,G.Z)(function(){$r(kr)}),to},[fa,mn,gn]),(0,h.useEffect)(function(){cn()},[Mn,Pt,an,pe(fa),pe(Zr),mn]),(0,h.useEffect)(function(){nr()},[gn]);var Ka=!!oa.length,Qt="".concat(He,"-nav-wrap"),Sn,Dn,Jn,fr;return mn?gn?(Dn=qn>0,Sn=qn!==an):(Sn=qn<0,Dn=qn!==Pt):(Jn=Ct<0,fr=Ct!==Pt),h.createElement(T.Z,{onResize:nr},h.createElement("div",{ref:(0,k.x1)(Ee,Cn),role:"tablist",className:n()("".concat(He,"-nav"),Zt),style:Ut,onKeyDown:function(){No()}},h.createElement(ht,{ref:on,position:"left",extra:Yn,prefixCls:He}),h.createElement("div",{className:n()(Qt,(Mt={},(0,l.Z)(Mt,"".concat(Qt,"-ping-left"),Sn),(0,l.Z)(Mt,"".concat(Qt,"-ping-right"),Dn),(0,l.Z)(Mt,"".concat(Qt,"-ping-top"),Jn),(0,l.Z)(Mt,"".concat(Qt,"-ping-bottom"),fr),Mt)),ref:mt},h.createElement(T.Z,{onResize:nr},h.createElement("div",{ref:sn,className:"".concat(He,"-nav-list"),style:{transform:"translate(".concat(qn,"px, ").concat(Ct,"px)"),transition:Wa?"none":void 0}},hn,h.createElement(qe,{ref:tn,prefixCls:He,locale:ar,editable:Gn,style:(0,c.Z)((0,c.Z)({},hn.length===0?void 0:An),{},{visibility:Ka?"hidden":null})}),h.createElement("div",{className:n()("".concat(He,"-ink-bar"),(0,l.Z)({},"".concat(He,"-ink-bar-animated"),ln.inkBar)),style:jr})))),h.createElement(Xe,(0,d.Z)({},Ie,{removeAriaLabel:ar==null?void 0:ar.removeAriaLabel,ref:Kt,prefixCls:He,tabs:oa,className:!Ka&&Ar,tabMoving:!!Wa})),h.createElement(ht,{ref:pt,position:"right",extra:Yn,prefixCls:He})))}var R=h.forwardRef(H),P=["renderTabBar"],ae=["label","key"];function Q(Ie){var Ee=Ie.renderTabBar,Mt=(0,M.Z)(Ie,P),jt=h.useContext(z),He=jt.tabs;if(Ee){var et=(0,c.Z)((0,c.Z)({},Mt),{},{panes:He.map(function(Zt){var Ut=Zt.label,Jt=Zt.key,ln=(0,M.Z)(Zt,ae);return h.createElement(N,(0,d.Z)({tab:Ut,key:Jt,tabKey:Jt},ln))})});return Ee(et,R)}return h.createElement(R,Mt)}var ie=e(75556);function me(){var Ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{inkBar:!0,tabPane:!1},Ee;return Ie===!1?Ee={inkBar:!1,tabPane:!1}:Ie===!0?Ee={inkBar:!0,tabPane:!1}:Ee=(0,c.Z)({inkBar:!0},(0,g.Z)(Ie)==="object"?Ie:{}),Ee.tabPaneMotion&&Ee.tabPane===void 0&&(Ee.tabPane=!0),!Ee.tabPaneMotion&&Ee.tabPane&&(Ee.tabPane=!1),Ee}var je=["id","prefixCls","className","items","direction","activeKey","defaultActiveKey","editable","animated","tabPosition","tabBarGutter","tabBarStyle","tabBarExtraContent","locale","moreIcon","moreTransitionName","destroyInactiveTabPane","renderTabBar","onChange","onTabClick","onTabScroll","getPopupContainer","popupClassName"],Ce=0;function Se(Ie,Ee){var Mt,jt=Ie.id,He=Ie.prefixCls,et=He===void 0?"rc-tabs":He,Zt=Ie.className,Ut=Ie.items,Jt=Ie.direction,ln=Ie.activeKey,Mn=Ie.defaultActiveKey,gn=Ie.editable,Yn=Ie.animated,Gn=Ie.tabPosition,ar=Gn===void 0?"top":Gn,gr=Ie.tabBarGutter,zt=Ie.tabBarStyle,qt=Ie.tabBarExtraContent,rn=Ie.locale,dn=Ie.moreIcon,Cn=Ie.moreTransitionName,on=Ie.destroyInactiveTabPane,pt=Ie.renderTabBar,mt=Ie.onChange,sn=Ie.onTabClick,Kt=Ie.onTabScroll,tn=Ie.getPopupContainer,mn=Ie.popupClassName,fn=(0,M.Z)(Ie,je),kn=h.useMemo(function(){return(Ut||[]).filter(function(Gr){return Gr&&(0,g.Z)(Gr)==="object"&&"key"in Gr})},[Ut]),qn=Jt==="rtl",ct=me(Yn),dt=(0,h.useState)(!1),It=(0,m.Z)(dt,2),Ct=It[0],kt=It[1];(0,h.useEffect)(function(){kt((0,S.Z)())},[]);var un=(0,w.Z)(function(){var Gr;return(Gr=kn[0])===null||Gr===void 0?void 0:Gr.key},{value:ln,defaultValue:Mn}),nn=(0,m.Z)(un,2),xn=nn[0],Rn=nn[1],Mr=(0,h.useState)(function(){return kn.findIndex(function(Gr){return Gr.key===xn})}),er=(0,m.Z)(Mr,2),zn=er[0],Ur=er[1];(0,h.useEffect)(function(){var Gr=kn.findIndex(function(pa){return pa.key===xn});if(Gr===-1){var na;Gr=Math.max(0,Math.min(zn,kn.length-1)),Rn((na=kn[Gr])===null||na===void 0?void 0:na.key)}Ur(Gr)},[kn.map(function(Gr){return Gr.key}).join("_"),xn,zn]);var pr=(0,w.Z)(null,{value:jt}),sa=(0,m.Z)(pr,2),Nr=sa[0],Zn=sa[1];(0,h.useEffect)(function(){jt||(Zn("rc-tabs-".concat(Ce)),Ce+=1)},[]);function In(Gr,na){sn==null||sn(Gr,na);var pa=Gr!==xn;Rn(Gr),pa&&(mt==null||mt(Gr))}var Pn={id:Nr,activeKey:xn,animated:ct,tabPosition:ar,rtl:qn,mobile:Ct},rr,br=(0,c.Z)((0,c.Z)({},Pn),{},{editable:gn,locale:rn,moreIcon:dn,moreTransitionName:Cn,tabBarGutter:gr,onTabClick:In,onTabScroll:Kt,extra:qt,style:zt,panes:null,getPopupContainer:tn,popupClassName:mn});return h.createElement(z.Provider,{value:{tabs:kn,prefixCls:et}},h.createElement("div",(0,d.Z)({ref:Ee,id:jt,className:n()(et,"".concat(et,"-").concat(ar),(Mt={},(0,l.Z)(Mt,"".concat(et,"-mobile"),Ct),(0,l.Z)(Mt,"".concat(et,"-editable"),gn),(0,l.Z)(Mt,"".concat(et,"-rtl"),qn),Mt),Zt)},fn),rr,h.createElement(Q,(0,d.Z)({},br,{renderTabBar:pt})),h.createElement($,(0,d.Z)({destroyInactiveTabPane:on},Pn,{animated:ct}))))}var We=h.forwardRef(Se),re=We,se=re,J=e(61836),de=e(58785),ce=()=>null,Ne=e(90881);const Oe={motionAppear:!1,motionEnter:!0,motionLeave:!0};function we(Ie){let Ee=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{inkBar:!0,tabPane:!1},Mt;return Ee===!1?Mt={inkBar:!1,tabPane:!1}:Ee===!0?Mt={inkBar:!0,tabPane:!0}:Mt=Object.assign({inkBar:!0},typeof Ee=="object"?Ee:{}),Mt.tabPane&&(Mt.tabPaneMotion=Object.assign(Object.assign({},Oe),{motionName:(0,Ne.m)(Ie,"switch")})),Mt}var Re=e(42156),st=function(Ie,Ee){var Mt={};for(var jt in Ie)Object.prototype.hasOwnProperty.call(Ie,jt)&&Ee.indexOf(jt)<0&&(Mt[jt]=Ie[jt]);if(Ie!=null&&typeof Object.getOwnPropertySymbols=="function")for(var He=0,jt=Object.getOwnPropertySymbols(Ie);HeEe)}function Ye(Ie,Ee){if(Ie)return Ie;const Mt=(0,Re.Z)(Ee).map(jt=>{if(h.isValidElement(jt)){const{key:He,props:et}=jt,Zt=et||{},{tab:Ut}=Zt,Jt=st(Zt,["tab"]);return Object.assign(Object.assign({key:String(He)},Jt),{label:Ut})}return null});return tt(Mt)}var ke=e(78330),Be=e(52628),it=e(22151),Ve=e(1016),_t=Ie=>{const{componentCls:Ee,motionDurationSlow:Mt}=Ie;return[{[Ee]:{[`${Ee}-switch`]:{"&-appear, &-enter":{transition:"none","&-start":{opacity:0},"&-active":{opacity:1,transition:`opacity ${Mt}`}},"&-leave":{position:"absolute",transition:"none",inset:0,"&-start":{opacity:1},"&-active":{opacity:0,transition:`opacity ${Mt}`}}}}},[(0,Ve.oN)(Ie,"slide-up"),(0,Ve.oN)(Ie,"slide-down")]]};const Ot=Ie=>{const{componentCls:Ee,tabsCardPadding:Mt,cardBg:jt,cardGutter:He,colorBorderSecondary:et,itemSelectedColor:Zt}=Ie;return{[`${Ee}-card`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{[`${Ee}-tab`]:{margin:0,padding:Mt,background:jt,border:`${Ie.lineWidth}px ${Ie.lineType} ${et}`,transition:`all ${Ie.motionDurationSlow} ${Ie.motionEaseInOut}`},[`${Ee}-tab-active`]:{color:Zt,background:Ie.colorBgContainer},[`${Ee}-ink-bar`]:{visibility:"hidden"}},[`&${Ee}-top, &${Ee}-bottom`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{[`${Ee}-tab + ${Ee}-tab`]:{marginLeft:{_skip_check_:!0,value:`${He}px`}}}},[`&${Ee}-top`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{[`${Ee}-tab`]:{borderRadius:`${Ie.borderRadiusLG}px ${Ie.borderRadiusLG}px 0 0`},[`${Ee}-tab-active`]:{borderBottomColor:Ie.colorBgContainer}}},[`&${Ee}-bottom`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{[`${Ee}-tab`]:{borderRadius:`0 0 ${Ie.borderRadiusLG}px ${Ie.borderRadiusLG}px`},[`${Ee}-tab-active`]:{borderTopColor:Ie.colorBgContainer}}},[`&${Ee}-left, &${Ee}-right`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{[`${Ee}-tab + ${Ee}-tab`]:{marginTop:`${He}px`}}},[`&${Ee}-left`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{[`${Ee}-tab`]:{borderRadius:{_skip_check_:!0,value:`${Ie.borderRadiusLG}px 0 0 ${Ie.borderRadiusLG}px`}},[`${Ee}-tab-active`]:{borderRightColor:{_skip_check_:!0,value:Ie.colorBgContainer}}}},[`&${Ee}-right`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{[`${Ee}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${Ie.borderRadiusLG}px ${Ie.borderRadiusLG}px 0`}},[`${Ee}-tab-active`]:{borderLeftColor:{_skip_check_:!0,value:Ie.colorBgContainer}}}}}}},wt=Ie=>{const{componentCls:Ee,itemHoverColor:Mt,dropdownEdgeChildVerticalPadding:jt}=Ie;return{[`${Ee}-dropdown`]:Object.assign(Object.assign({},(0,ke.Wf)(Ie)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:Ie.zIndexPopup,display:"block","&-hidden":{display:"none"},[`${Ee}-dropdown-menu`]:{maxHeight:Ie.tabsDropdownHeight,margin:0,padding:`${jt}px 0`,overflowX:"hidden",overflowY:"auto",textAlign:{_skip_check_:!0,value:"left"},listStyleType:"none",backgroundColor:Ie.colorBgContainer,backgroundClip:"padding-box",borderRadius:Ie.borderRadiusLG,outline:"none",boxShadow:Ie.boxShadowSecondary,"&-item":Object.assign(Object.assign({},ke.vS),{display:"flex",alignItems:"center",minWidth:Ie.tabsDropdownWidth,margin:0,padding:`${Ie.paddingXXS}px ${Ie.paddingSM}px`,color:Ie.colorText,fontWeight:"normal",fontSize:Ie.fontSize,lineHeight:Ie.lineHeight,cursor:"pointer",transition:`all ${Ie.motionDurationSlow}`,"> span":{flex:1,whiteSpace:"nowrap"},"&-remove":{flex:"none",marginLeft:{_skip_check_:!0,value:Ie.marginSM},color:Ie.colorTextDescription,fontSize:Ie.fontSizeSM,background:"transparent",border:0,cursor:"pointer","&:hover":{color:Mt}},"&:hover":{background:Ie.controlItemBgHover},"&-disabled":{"&, &:hover":{color:Ie.colorTextDisabled,background:"transparent",cursor:"not-allowed"}}})}})}},Yt=Ie=>{const{componentCls:Ee,margin:Mt,colorBorderSecondary:jt,horizontalMargin:He,verticalItemPadding:et,verticalItemMargin:Zt}=Ie;return{[`${Ee}-top, ${Ee}-bottom`]:{flexDirection:"column",[`> ${Ee}-nav, > div > ${Ee}-nav`]:{margin:He,"&::before":{position:"absolute",right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},borderBottom:`${Ie.lineWidth}px ${Ie.lineType} ${jt}`,content:"''"},[`${Ee}-ink-bar`]:{height:Ie.lineWidthBold,"&-animated":{transition:`width ${Ie.motionDurationSlow}, left ${Ie.motionDurationSlow}, + right ${Ie.motionDurationSlow}`}},[`${Ee}-nav-wrap`]:{"&::before, &::after":{top:0,bottom:0,width:Ie.controlHeight},"&::before":{left:{_skip_check_:!0,value:0},boxShadow:Ie.boxShadowTabsOverflowLeft},"&::after":{right:{_skip_check_:!0,value:0},boxShadow:Ie.boxShadowTabsOverflowRight},[`&${Ee}-nav-wrap-ping-left::before`]:{opacity:1},[`&${Ee}-nav-wrap-ping-right::after`]:{opacity:1}}}},[`${Ee}-top`]:{[`> ${Ee}-nav, + > div > ${Ee}-nav`]:{"&::before":{bottom:0},[`${Ee}-ink-bar`]:{bottom:0}}},[`${Ee}-bottom`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{order:1,marginTop:`${Mt}px`,marginBottom:0,"&::before":{top:0},[`${Ee}-ink-bar`]:{top:0}},[`> ${Ee}-content-holder, > div > ${Ee}-content-holder`]:{order:0}},[`${Ee}-left, ${Ee}-right`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{flexDirection:"column",minWidth:Ie.controlHeight*1.25,[`${Ee}-tab`]:{padding:et,textAlign:"center"},[`${Ee}-tab + ${Ee}-tab`]:{margin:Zt},[`${Ee}-nav-wrap`]:{flexDirection:"column","&::before, &::after":{right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},height:Ie.controlHeight},"&::before":{top:0,boxShadow:Ie.boxShadowTabsOverflowTop},"&::after":{bottom:0,boxShadow:Ie.boxShadowTabsOverflowBottom},[`&${Ee}-nav-wrap-ping-top::before`]:{opacity:1},[`&${Ee}-nav-wrap-ping-bottom::after`]:{opacity:1}},[`${Ee}-ink-bar`]:{width:Ie.lineWidthBold,"&-animated":{transition:`height ${Ie.motionDurationSlow}, top ${Ie.motionDurationSlow}`}},[`${Ee}-nav-list, ${Ee}-nav-operations`]:{flex:"1 0 auto",flexDirection:"column"}}},[`${Ee}-left`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{[`${Ee}-ink-bar`]:{right:{_skip_check_:!0,value:0}}},[`> ${Ee}-content-holder, > div > ${Ee}-content-holder`]:{marginLeft:{_skip_check_:!0,value:`-${Ie.lineWidth}px`},borderLeft:{_skip_check_:!0,value:`${Ie.lineWidth}px ${Ie.lineType} ${Ie.colorBorder}`},[`> ${Ee}-content > ${Ee}-tabpane`]:{paddingLeft:{_skip_check_:!0,value:Ie.paddingLG}}}},[`${Ee}-right`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{order:1,[`${Ee}-ink-bar`]:{left:{_skip_check_:!0,value:0}}},[`> ${Ee}-content-holder, > div > ${Ee}-content-holder`]:{order:0,marginRight:{_skip_check_:!0,value:-Ie.lineWidth},borderRight:{_skip_check_:!0,value:`${Ie.lineWidth}px ${Ie.lineType} ${Ie.colorBorder}`},[`> ${Ee}-content > ${Ee}-tabpane`]:{paddingRight:{_skip_check_:!0,value:Ie.paddingLG}}}}}},bt=Ie=>{const{componentCls:Ee,cardPaddingSM:Mt,cardPaddingLG:jt,horizontalItemPaddingSM:He,horizontalItemPaddingLG:et}=Ie;return{[Ee]:{"&-small":{[`> ${Ee}-nav`]:{[`${Ee}-tab`]:{padding:He,fontSize:Ie.titleFontSizeSM}}},"&-large":{[`> ${Ee}-nav`]:{[`${Ee}-tab`]:{padding:et,fontSize:Ie.titleFontSizeLG}}}},[`${Ee}-card`]:{[`&${Ee}-small`]:{[`> ${Ee}-nav`]:{[`${Ee}-tab`]:{padding:Mt}},[`&${Ee}-bottom`]:{[`> ${Ee}-nav ${Ee}-tab`]:{borderRadius:`0 0 ${Ie.borderRadius}px ${Ie.borderRadius}px`}},[`&${Ee}-top`]:{[`> ${Ee}-nav ${Ee}-tab`]:{borderRadius:`${Ie.borderRadius}px ${Ie.borderRadius}px 0 0`}},[`&${Ee}-right`]:{[`> ${Ee}-nav ${Ee}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${Ie.borderRadius}px ${Ie.borderRadius}px 0`}}},[`&${Ee}-left`]:{[`> ${Ee}-nav ${Ee}-tab`]:{borderRadius:{_skip_check_:!0,value:`${Ie.borderRadius}px 0 0 ${Ie.borderRadius}px`}}}},[`&${Ee}-large`]:{[`> ${Ee}-nav`]:{[`${Ee}-tab`]:{padding:jt}}}}}},ze=Ie=>{const{componentCls:Ee,itemActiveColor:Mt,itemHoverColor:jt,iconCls:He,tabsHorizontalItemMargin:et,horizontalItemPadding:Zt,itemSelectedColor:Ut}=Ie,Jt=`${Ee}-tab`;return{[Jt]:{position:"relative",WebkitTouchCallout:"none",WebkitTapHighlightColor:"transparent",display:"inline-flex",alignItems:"center",padding:Zt,fontSize:Ie.titleFontSize,background:"transparent",border:0,outline:"none",cursor:"pointer","&-btn, &-remove":Object.assign({"&:focus:not(:focus-visible), &:active":{color:Mt}},(0,ke.Qy)(Ie)),"&-btn":{outline:"none",transition:"all 0.3s"},"&-remove":{flex:"none",marginRight:{_skip_check_:!0,value:-Ie.marginXXS},marginLeft:{_skip_check_:!0,value:Ie.marginXS},color:Ie.colorTextDescription,fontSize:Ie.fontSizeSM,background:"transparent",border:"none",outline:"none",cursor:"pointer",transition:`all ${Ie.motionDurationSlow}`,"&:hover":{color:Ie.colorTextHeading}},"&:hover":{color:jt},[`&${Jt}-active ${Jt}-btn`]:{color:Ut,textShadow:Ie.tabsActiveTextShadow},[`&${Jt}-disabled`]:{color:Ie.colorTextDisabled,cursor:"not-allowed"},[`&${Jt}-disabled ${Jt}-btn, &${Jt}-disabled ${Ee}-remove`]:{"&:focus, &:active":{color:Ie.colorTextDisabled}},[`& ${Jt}-remove ${He}`]:{margin:0},[He]:{marginRight:{_skip_check_:!0,value:Ie.marginSM}}},[`${Jt} + ${Jt}`]:{margin:{_skip_check_:!0,value:et}}}},nt=Ie=>{const{componentCls:Ee,tabsHorizontalItemMarginRTL:Mt,iconCls:jt,cardGutter:He}=Ie;return{[`${Ee}-rtl`]:{direction:"rtl",[`${Ee}-nav`]:{[`${Ee}-tab`]:{margin:{_skip_check_:!0,value:Mt},[`${Ee}-tab:last-of-type`]:{marginLeft:{_skip_check_:!0,value:0}},[jt]:{marginRight:{_skip_check_:!0,value:0},marginLeft:{_skip_check_:!0,value:`${Ie.marginSM}px`}},[`${Ee}-tab-remove`]:{marginRight:{_skip_check_:!0,value:`${Ie.marginXS}px`},marginLeft:{_skip_check_:!0,value:`-${Ie.marginXXS}px`},[jt]:{margin:0}}}},[`&${Ee}-left`]:{[`> ${Ee}-nav`]:{order:1},[`> ${Ee}-content-holder`]:{order:0}},[`&${Ee}-right`]:{[`> ${Ee}-nav`]:{order:0},[`> ${Ee}-content-holder`]:{order:1}},[`&${Ee}-card${Ee}-top, &${Ee}-card${Ee}-bottom`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{[`${Ee}-tab + ${Ee}-tab`]:{marginRight:{_skip_check_:!0,value:He},marginLeft:{_skip_check_:!0,value:0}}}}},[`${Ee}-dropdown-rtl`]:{direction:"rtl"},[`${Ee}-menu-item`]:{[`${Ee}-dropdown-rtl`]:{textAlign:{_skip_check_:!0,value:"right"}}}}},St=Ie=>{const{componentCls:Ee,tabsCardPadding:Mt,cardHeight:jt,cardGutter:He,itemHoverColor:et,itemActiveColor:Zt,colorBorderSecondary:Ut}=Ie;return{[Ee]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,ke.Wf)(Ie)),{display:"flex",[`> ${Ee}-nav, > div > ${Ee}-nav`]:{position:"relative",display:"flex",flex:"none",alignItems:"center",[`${Ee}-nav-wrap`]:{position:"relative",display:"flex",flex:"auto",alignSelf:"stretch",overflow:"hidden",whiteSpace:"nowrap",transform:"translate(0)","&::before, &::after":{position:"absolute",zIndex:1,opacity:0,transition:`opacity ${Ie.motionDurationSlow}`,content:"''",pointerEvents:"none"}},[`${Ee}-nav-list`]:{position:"relative",display:"flex",transition:`opacity ${Ie.motionDurationSlow}`},[`${Ee}-nav-operations`]:{display:"flex",alignSelf:"stretch"},[`${Ee}-nav-operations-hidden`]:{position:"absolute",visibility:"hidden",pointerEvents:"none"},[`${Ee}-nav-more`]:{position:"relative",padding:Mt,background:"transparent",border:0,color:Ie.colorText,"&::after":{position:"absolute",right:{_skip_check_:!0,value:0},bottom:0,left:{_skip_check_:!0,value:0},height:Ie.controlHeightLG/8,transform:"translateY(100%)",content:"''"}},[`${Ee}-nav-add`]:Object.assign({minWidth:jt,marginLeft:{_skip_check_:!0,value:He},padding:`0 ${Ie.paddingXS}px`,background:"transparent",border:`${Ie.lineWidth}px ${Ie.lineType} ${Ut}`,borderRadius:`${Ie.borderRadiusLG}px ${Ie.borderRadiusLG}px 0 0`,outline:"none",cursor:"pointer",color:Ie.colorText,transition:`all ${Ie.motionDurationSlow} ${Ie.motionEaseInOut}`,"&:hover":{color:et},"&:active, &:focus:not(:focus-visible)":{color:Zt}},(0,ke.Qy)(Ie))},[`${Ee}-extra-content`]:{flex:"none"},[`${Ee}-ink-bar`]:{position:"absolute",background:Ie.inkBarColor,pointerEvents:"none"}}),ze(Ie)),{[`${Ee}-content`]:{position:"relative",width:"100%"},[`${Ee}-content-holder`]:{flex:"auto",minWidth:0,minHeight:0},[`${Ee}-tabpane`]:{outline:"none","&-hidden":{display:"none"}}}),[`${Ee}-centered`]:{[`> ${Ee}-nav, > div > ${Ee}-nav`]:{[`${Ee}-nav-wrap`]:{[`&:not([class*='${Ee}-nav-wrap-ping'])`]:{justifyContent:"center"}}}}}};var ut=(0,Be.Z)("Tabs",Ie=>{const Ee=(0,it.TS)(Ie,{tabsCardPadding:Ie.cardPadding||`${(Ie.cardHeight-Math.round(Ie.fontSize*Ie.lineHeight))/2-Ie.lineWidth}px ${Ie.padding}px`,dropdownEdgeChildVerticalPadding:Ie.paddingXXS,tabsActiveTextShadow:"0 0 0.25px currentcolor",tabsDropdownHeight:200,tabsDropdownWidth:120,tabsHorizontalItemMargin:`0 0 0 ${Ie.horizontalItemGutter}px`,tabsHorizontalItemMarginRTL:`0 0 0 ${Ie.horizontalItemGutter}px`});return[bt(Ee),nt(Ee),Yt(Ee),wt(Ee),Ot(Ee),St(Ee),_t(Ee)]},Ie=>{const Ee=Ie.controlHeightLG;return{zIndexPopup:Ie.zIndexPopupBase+50,cardBg:Ie.colorFillAlter,cardHeight:Ee,cardPadding:"",cardPaddingSM:`${Ie.paddingXXS*1.5}px ${Ie.padding}px`,cardPaddingLG:`${Ie.paddingXS}px ${Ie.padding}px ${Ie.paddingXXS*1.5}px`,titleFontSize:Ie.fontSize,titleFontSizeLG:Ie.fontSizeLG,titleFontSizeSM:Ie.fontSize,inkBarColor:Ie.colorPrimary,horizontalMargin:`0 0 ${Ie.margin}px 0`,horizontalItemGutter:32,horizontalItemMargin:"",horizontalItemMarginRTL:"",horizontalItemPadding:`${Ie.paddingSM}px 0`,horizontalItemPaddingSM:`${Ie.paddingXS}px 0`,horizontalItemPaddingLG:`${Ie.padding}px 0`,verticalItemPadding:`${Ie.paddingXS}px ${Ie.paddingLG}px`,verticalItemMargin:`${Ie.margin}px 0 0 0`,itemSelectedColor:Ie.colorPrimary,itemHoverColor:Ie.colorPrimaryHover,itemActiveColor:Ie.colorPrimaryActive,cardGutter:Ie.marginXXS/2}}),Vt=function(Ie,Ee){var Mt={};for(var jt in Ie)Object.prototype.hasOwnProperty.call(Ie,jt)&&Ee.indexOf(jt)<0&&(Mt[jt]=Ie[jt]);if(Ie!=null&&typeof Object.getOwnPropertySymbols=="function")for(var He=0,jt=Object.getOwnPropertySymbols(Ie);He{const{type:Ee,className:Mt,rootClassName:jt,size:He,onEdit:et,hideAdd:Zt,centered:Ut,addIcon:Jt,popupClassName:ln,children:Mn,items:gn,animated:Yn,style:Gn}=Ie,ar=Vt(Ie,["type","className","rootClassName","size","onEdit","hideAdd","centered","addIcon","popupClassName","children","items","animated","style"]),{prefixCls:gr,moreIcon:zt=h.createElement(t.Z,null)}=ar,{direction:qt,tabs:rn,getPrefixCls:dn,getPopupContainer:Cn}=h.useContext(J.E_),on=dn("tabs",gr),[pt,mt]=ut(on);let sn;Ee==="editable-card"&&(sn={onEdit:(qn,ct)=>{let{key:dt,event:It}=ct;et==null||et(qn==="add"?It:dt,qn)},removeIcon:h.createElement(a.Z,null),addIcon:Jt||h.createElement(o.Z,null),showAdd:Zt!==!0});const Kt=dn(),tn=Ye(gn,Mn),mn=we(on,Yn),fn=(0,de.Z)(He),kn=Object.assign(Object.assign({},rn==null?void 0:rn.style),Gn);return pt(h.createElement(se,Object.assign({direction:qt,getPopupContainer:Cn,moreTransitionName:`${Kt}-slide-up`},ar,{items:tn,className:n()({[`${on}-${fn}`]:fn,[`${on}-card`]:["card","editable-card"].includes(Ee),[`${on}-editable-card`]:Ee==="editable-card",[`${on}-centered`]:Ut},rn==null?void 0:rn.className,Mt,jt,mt),popupClassName:n()(ln,mt),style:kn,editable:sn,moreIcon:zt,prefixCls:on,animated:mn})))};Nt.TabPane=ce;var At=Nt},32814:function(b,y,e){"use strict";e.d(y,{Z:function(){return G}});var a=e(52495),t=e(87608),o=e.n(t),s=e(58757),n=e(1878),d=e(88858),l=e(37486),c=e(61836);function m(k){return typeof k!="string"?k:k.charAt(0).toUpperCase()+k.slice(1)}var g=e(78330),M=e(98251),h=e(52628),S=e(22151);const w=(k,te,Y)=>{const q=m(Y);return{[`${k.componentCls}-${te}`]:{color:k[`color${Y}`],background:k[`color${q}Bg`],borderColor:k[`color${q}Border`],[`&${k.componentCls}-borderless`]:{borderColor:"transparent"}}}},C=k=>(0,M.Z)(k,(te,Y)=>{let{textColor:q,lightBorderColor:le,lightColor:X,darkColor:W}=Y;return{[`${k.componentCls}-${te}`]:{color:q,background:X,borderColor:le,"&-inverse":{color:k.colorTextLightSolid,background:W,borderColor:W},[`&${k.componentCls}-borderless`]:{borderColor:"transparent"}}}}),z=k=>{const{paddingXXS:te,lineWidth:Y,tagPaddingHorizontal:q,componentCls:le}=k,X=q-Y,W=te-Y;return{[le]:Object.assign(Object.assign({},(0,g.Wf)(k)),{display:"inline-block",height:"auto",marginInlineEnd:k.marginXS,paddingInline:X,fontSize:k.tagFontSize,lineHeight:k.tagLineHeight,whiteSpace:"nowrap",background:k.defaultBg,border:`${k.lineWidth}px ${k.lineType} ${k.colorBorder}`,borderRadius:k.borderRadiusSM,opacity:1,transition:`all ${k.motionDurationMid}`,textAlign:"start",position:"relative",[`&${le}-rtl`]:{direction:"rtl"},"&, a, a:hover":{color:k.defaultColor},[`${le}-close-icon`]:{marginInlineStart:W,color:k.colorTextDescription,fontSize:k.tagIconSize,cursor:"pointer",transition:`all ${k.motionDurationMid}`,"&:hover":{color:k.colorTextHeading}},[`&${le}-has-color`]:{borderColor:"transparent",[`&, a, a:hover, ${k.iconCls}-close, ${k.iconCls}-close:hover`]:{color:k.colorTextLightSolid}},["&-checkable"]:{backgroundColor:"transparent",borderColor:"transparent",cursor:"pointer",[`&:not(${le}-checkable-checked):hover`]:{color:k.colorPrimary,backgroundColor:k.colorFillSecondary},"&:active, &-checked":{color:k.colorTextLightSolid},"&-checked":{backgroundColor:k.colorPrimary,"&:hover":{backgroundColor:k.colorPrimaryHover}},"&:active":{backgroundColor:k.colorPrimaryActive}},["&-hidden"]:{display:"none"},[`> ${k.iconCls} + span, > span + ${k.iconCls}`]:{marginInlineStart:X}}),[`${le}-borderless`]:{borderColor:"transparent",background:k.tagBorderlessBg}}};var Z=(0,h.Z)("Tag",k=>{const{lineWidth:te,fontSizeIcon:Y}=k,q=k.fontSizeSM,le=`${k.lineHeightSM*q}px`,X=(0,S.TS)(k,{tagFontSize:q,tagLineHeight:le,tagIconSize:Y-2*te,tagPaddingHorizontal:8,tagBorderlessBg:k.colorFillTertiary});return[z(X),C(X),w(X,"success","Success"),w(X,"processing","Info"),w(X,"error","Error"),w(X,"warning","Warning")]},k=>({defaultBg:k.colorFillQuaternary,defaultColor:k.colorText})),N=function(k,te){var Y={};for(var q in k)Object.prototype.hasOwnProperty.call(k,q)&&te.indexOf(q)<0&&(Y[q]=k[q]);if(k!=null&&typeof Object.getOwnPropertySymbols=="function")for(var le=0,q=Object.getOwnPropertySymbols(k);le{const{prefixCls:te,className:Y,checked:q,onChange:le,onClick:X}=k,W=N(k,["prefixCls","className","checked","onChange","onClick"]),{getPrefixCls:x}=s.useContext(c.E_),O=fe=>{le==null||le(!q),X==null||X(fe)},_=x("tag",te),[U,A]=Z(_),V=o()(_,`${_}-checkable`,{[`${_}-checkable-checked`]:q},Y,A);return U(s.createElement("span",Object.assign({},W,{className:V,onClick:O})))},D=function(k,te){var Y={};for(var q in k)Object.prototype.hasOwnProperty.call(k,q)&&te.indexOf(q)<0&&(Y[q]=k[q]);if(k!=null&&typeof Object.getOwnPropertySymbols=="function")for(var le=0,q=Object.getOwnPropertySymbols(k);le{const{prefixCls:Y,className:q,rootClassName:le,style:X,children:W,icon:x,color:O,onClose:_,closeIcon:U,closable:A,bordered:V=!0}=k,fe=D(k,["prefixCls","className","rootClassName","style","children","icon","color","onClose","closeIcon","closable","bordered"]),{getPrefixCls:pe,direction:ge,tag:be}=s.useContext(c.E_),[Te,Ge]=s.useState(!0);s.useEffect(()=>{"visible"in fe&&Ge(fe.visible)},[fe.visible]);const qe=(0,n.o2)(O)||(0,n.yT)(O),Qe=Object.assign(Object.assign({backgroundColor:O&&!qe?O:void 0},be==null?void 0:be.style),X),ht=pe("tag",Y),[Et,gt]=Z(ht),Ht=o()(ht,be==null?void 0:be.className,{[`${ht}-${O}`]:qe,[`${ht}-has-color`]:O&&!qe,[`${ht}-hidden`]:!Te,[`${ht}-rtl`]:ge==="rtl",[`${ht}-borderless`]:!V},q,le,gt),$e=H=>{H.stopPropagation(),_==null||_(H),!H.defaultPrevented&&Ge(!1)},[,Xe]=(0,d.Z)(A,U,H=>H===null?s.createElement(a.Z,{className:`${ht}-close-icon`,onClick:$e}):s.createElement("span",{className:`${ht}-close-icon`,onClick:$e},H),null,!1),rt=typeof fe.onClick=="function"||W&&W.type==="a",Ke=x||null,ye=Ke?s.createElement(s.Fragment,null,Ke,W&&s.createElement("span",null,W)):W,ne=s.createElement("span",Object.assign({},fe,{ref:te,className:Ht,style:Qe}),ye,Xe);return Et(rt?s.createElement(l.Z,{component:"Tag"},ne):ne)},j=s.forwardRef(T);j.CheckableTag=$;var G=j},83631:function(b,y,e){"use strict";e.d(y,{Mj:function(){return l},uH:function(){return n},u_:function(){return d}});var a=e(57793),t=e(58757),o=e(57738),s=e(28378);const n=(0,a.jG)(o.Z),d={token:s.Z,hashed:!0},l=t.createContext(d)},22802:function(b,y,e){"use strict";e.d(y,{Z:function(){return G}});var a=e(57793),t=e(57738),o=e(28378),s=e(57634),d=k=>{const te=k!=null&&k.algorithm?(0,a.jG)(k.algorithm):(0,a.jG)(t.Z),Y=Object.assign(Object.assign({},o.Z),k==null?void 0:k.token);return(0,a.t2)(Y,{override:k==null?void 0:k.token},te,s.Z)},l=e(51806),c=e(83631),m=e(38458);function g(k){const{sizeUnit:te,sizeStep:Y}=k,q=Y-2;return{sizeXXL:te*(q+10),sizeXL:te*(q+6),sizeLG:te*(q+2),sizeMD:te*(q+2),sizeMS:te*(q+1),size:te*q,sizeSM:te*q,sizeXS:te*(q-1),sizeXXS:te*(q-1)}}var M=e(4490),S=(k,te)=>{const Y=te!=null?te:(0,t.Z)(k),q=Y.fontSizeSM,le=Y.controlHeight-4;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Y),g(te!=null?te:k)),(0,M.Z)(q)),{controlHeight:le}),(0,m.Z)(Object.assign(Object.assign({},Y),{controlHeight:le})))},w=e(26134),C=e(67782),z=e(66671);const Z=(k,te)=>new z.C(k).setAlpha(te).toRgbString(),N=(k,te)=>new z.C(k).lighten(te).toHexString(),L=k=>{const te=(0,w.generate)(k,{theme:"dark"});return{1:te[0],2:te[1],3:te[2],4:te[3],5:te[6],6:te[5],7:te[4],8:te[6],9:te[5],10:te[4]}},$=(k,te)=>{const Y=k||"#000",q=te||"#fff";return{colorBgBase:Y,colorTextBase:q,colorText:Z(q,.85),colorTextSecondary:Z(q,.65),colorTextTertiary:Z(q,.45),colorTextQuaternary:Z(q,.25),colorFill:Z(q,.18),colorFillSecondary:Z(q,.12),colorFillTertiary:Z(q,.08),colorFillQuaternary:Z(q,.04),colorBgElevated:N(Y,12),colorBgContainer:N(Y,8),colorBgLayout:N(Y,0),colorBgSpotlight:N(Y,26),colorBorder:N(Y,26),colorBorderSecondary:N(Y,19)}};var T=(k,te)=>{const Y=Object.keys(o.M).map(le=>{const X=(0,w.generate)(k[le],{theme:"dark"});return new Array(10).fill(1).reduce((W,x,O)=>(W[`${le}-${O+1}`]=X[O],W[`${le}${O+1}`]=X[O],W),{})}).reduce((le,X)=>(le=Object.assign(Object.assign({},le),X),le),{}),q=te!=null?te:(0,t.Z)(k);return Object.assign(Object.assign(Object.assign({},q),Y),(0,C.Z)(k,{generateColorPalettes:L,generateNeutralColorPalettes:$}))};function j(){const[k,te,Y]=(0,l.Z)();return{theme:k,token:te,hashId:Y}}var G={defaultConfig:c.u_,defaultSeed:c.u_.token,useToken:j,defaultAlgorithm:t.Z,darkAlgorithm:T,compactAlgorithm:S,getDesignToken:d}},34966:function(b,y,e){"use strict";e.d(y,{i:function(){return a}});const a=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"]},57738:function(b,y,e){"use strict";e.d(y,{Z:function(){return C}});var a=e(26134),t=e(38458);function o(z){const{sizeUnit:Z,sizeStep:N}=z;return{sizeXXL:Z*(N+8),sizeXL:Z*(N+4),sizeLG:Z*(N+2),sizeMD:Z*(N+1),sizeMS:Z*N,size:Z*N,sizeSM:Z*(N-1),sizeXS:Z*(N-2),sizeXXS:Z*(N-3)}}var s=e(28378),n=e(67782),l=z=>{let Z=z,N=z,L=z,$=z;return z<6&&z>=5?Z=z+1:z<16&&z>=6?Z=z+2:z>=16&&(Z=16),z<7&&z>=5?N=4:z<8&&z>=7?N=5:z<14&&z>=8?N=6:z<16&&z>=14?N=7:z>=16&&(N=8),z<6&&z>=2?L=1:z>=6&&(L=2),z>4&&z<8?$=4:z>=8&&($=6),{borderRadius:z>16?16:z,borderRadiusXS:L,borderRadiusSM:N,borderRadiusLG:Z,borderRadiusOuter:$}};function c(z){const{motionUnit:Z,motionBase:N,borderRadius:L,lineWidth:$}=z;return Object.assign({motionDurationFast:`${(N+Z).toFixed(1)}s`,motionDurationMid:`${(N+Z*2).toFixed(1)}s`,motionDurationSlow:`${(N+Z*3).toFixed(1)}s`,lineWidthBold:$+1},l(L))}var m=e(66671);const g=(z,Z)=>new m.C(z).setAlpha(Z).toRgbString(),M=(z,Z)=>new m.C(z).darken(Z).toHexString(),h=z=>{const Z=(0,a.generate)(z);return{1:Z[0],2:Z[1],3:Z[2],4:Z[3],5:Z[4],6:Z[5],7:Z[6],8:Z[4],9:Z[5],10:Z[6]}},S=(z,Z)=>{const N=z||"#fff",L=Z||"#000";return{colorBgBase:N,colorTextBase:L,colorText:g(L,.88),colorTextSecondary:g(L,.65),colorTextTertiary:g(L,.45),colorTextQuaternary:g(L,.25),colorFill:g(L,.15),colorFillSecondary:g(L,.06),colorFillTertiary:g(L,.04),colorFillQuaternary:g(L,.02),colorBgLayout:M(N,4),colorBgContainer:M(N,0),colorBgElevated:M(N,0),colorBgSpotlight:g(L,.85),colorBorder:M(N,15),colorBorderSecondary:M(N,6)}};var w=e(4490);function C(z){const Z=Object.keys(s.M).map(N=>{const L=(0,a.generate)(z[N]);return new Array(10).fill(1).reduce(($,D,T)=>($[`${N}-${T+1}`]=L[T],$[`${N}${T+1}`]=L[T],$),{})}).reduce((N,L)=>(N=Object.assign(Object.assign({},N),L),N),{});return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},z),Z),(0,n.Z)(z,{generateColorPalettes:h,generateNeutralColorPalettes:S})),(0,w.Z)(z.fontSize)),o(z)),(0,t.Z)(z)),c(z))}},28378:function(b,y,e){"use strict";e.d(y,{M:function(){return a}});const a={blue:"#1677ff",purple:"#722ED1",cyan:"#13C2C2",green:"#52C41A",magenta:"#EB2F96",pink:"#eb2f96",red:"#F5222D",orange:"#FA8C16",yellow:"#FADB14",volcano:"#FA541C",geekblue:"#2F54EB",gold:"#FAAD14",lime:"#A0D911"},t=Object.assign(Object.assign({},a),{colorPrimary:"#1677ff",colorSuccess:"#52c41a",colorWarning:"#faad14",colorError:"#ff4d4f",colorInfo:"#1677ff",colorLink:"",colorTextBase:"",colorBgBase:"",fontFamily:`-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'`,fontFamilyCode:"'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace",fontSize:14,lineWidth:1,lineType:"solid",motionUnit:.1,motionBase:0,motionEaseOutCirc:"cubic-bezier(0.08, 0.82, 0.17, 1)",motionEaseInOutCirc:"cubic-bezier(0.78, 0.14, 0.15, 0.86)",motionEaseOut:"cubic-bezier(0.215, 0.61, 0.355, 1)",motionEaseInOut:"cubic-bezier(0.645, 0.045, 0.355, 1)",motionEaseOutBack:"cubic-bezier(0.12, 0.4, 0.29, 1.46)",motionEaseInBack:"cubic-bezier(0.71, -0.46, 0.88, 0.6)",motionEaseInQuint:"cubic-bezier(0.755, 0.05, 0.855, 0.06)",motionEaseOutQuint:"cubic-bezier(0.23, 1, 0.32, 1)",borderRadius:6,sizeUnit:4,sizeStep:4,sizePopupArrow:16,controlHeight:32,zIndexBase:0,zIndexPopupBase:1e3,opacityImage:1,wireframe:!1,motion:!0});y.Z=t},67782:function(b,y,e){"use strict";e.d(y,{Z:function(){return t}});var a=e(66671);function t(o,s){let{generateColorPalettes:n,generateNeutralColorPalettes:d}=s;const{colorSuccess:l,colorWarning:c,colorError:m,colorInfo:g,colorPrimary:M,colorBgBase:h,colorTextBase:S}=o,w=n(M),C=n(l),z=n(c),Z=n(m),N=n(g),L=d(h,S),$=o.colorLink||o.colorInfo,D=n($);return Object.assign(Object.assign({},L),{colorPrimaryBg:w[1],colorPrimaryBgHover:w[2],colorPrimaryBorder:w[3],colorPrimaryBorderHover:w[4],colorPrimaryHover:w[5],colorPrimary:w[6],colorPrimaryActive:w[7],colorPrimaryTextHover:w[8],colorPrimaryText:w[9],colorPrimaryTextActive:w[10],colorSuccessBg:C[1],colorSuccessBgHover:C[2],colorSuccessBorder:C[3],colorSuccessBorderHover:C[4],colorSuccessHover:C[4],colorSuccess:C[6],colorSuccessActive:C[7],colorSuccessTextHover:C[8],colorSuccessText:C[9],colorSuccessTextActive:C[10],colorErrorBg:Z[1],colorErrorBgHover:Z[2],colorErrorBorder:Z[3],colorErrorBorderHover:Z[4],colorErrorHover:Z[5],colorError:Z[6],colorErrorActive:Z[7],colorErrorTextHover:Z[8],colorErrorText:Z[9],colorErrorTextActive:Z[10],colorWarningBg:z[1],colorWarningBgHover:z[2],colorWarningBorder:z[3],colorWarningBorderHover:z[4],colorWarningHover:z[4],colorWarning:z[6],colorWarningActive:z[7],colorWarningTextHover:z[8],colorWarningText:z[9],colorWarningTextActive:z[10],colorInfoBg:N[1],colorInfoBgHover:N[2],colorInfoBorder:N[3],colorInfoBorderHover:N[4],colorInfoHover:N[4],colorInfo:N[6],colorInfoActive:N[7],colorInfoTextHover:N[8],colorInfoText:N[9],colorInfoTextActive:N[10],colorLinkHover:D[4],colorLink:D[6],colorLinkActive:D[7],colorBgMask:new a.C("#000").setAlpha(.45).toRgbString(),colorWhite:"#fff"})}},38458:function(b,y){"use strict";const e=a=>{const{controlHeight:t}=a;return{controlHeightSM:t*.75,controlHeightXS:t*.5,controlHeightLG:t*1.25}};y.Z=e},4490:function(b,y,e){"use strict";e.d(y,{Z:function(){return o}});function a(s){const n=new Array(10).fill(null).map((d,l)=>{const c=l-1,m=s*Math.pow(2.71828,c/5),g=l>1?Math.floor(m):Math.ceil(m);return Math.floor(g/2)*2});return n[1]=s,n.map(d=>{const l=d+8;return{size:d,lineHeight:l/d}})}var o=s=>{const n=a(s),d=n.map(c=>c.size),l=n.map(c=>c.lineHeight);return{fontSizeSM:d[0],fontSize:d[1],fontSizeLG:d[2],fontSizeXL:d[3],fontSizeHeading1:d[6],fontSizeHeading2:d[5],fontSizeHeading3:d[4],fontSizeHeading4:d[3],fontSizeHeading5:d[2],lineHeight:l[1],lineHeightLG:l[2],lineHeightSM:l[0],lineHeightHeading1:l[6],lineHeightHeading2:l[5],lineHeightHeading3:l[4],lineHeightHeading4:l[3],lineHeightHeading5:l[2]}}},51806:function(b,y,e){"use strict";e.d(y,{Z:function(){return m}});var a=e(57793),t=e(58757),o=e(93430),s=e(83631),n=e(28378),d=e(57634),l=function(g,M){var h={};for(var S in g)Object.prototype.hasOwnProperty.call(g,S)&&M.indexOf(S)<0&&(h[S]=g[S]);if(g!=null&&typeof Object.getOwnPropertySymbols=="function")for(var w=0,S=Object.getOwnPropertySymbols(g);w{const S=h.getDerivativeToken(g),{override:w}=M,C=l(M,["override"]);let z=Object.assign(Object.assign({},S),{override:w});return z=(0,d.Z)(z),C&&Object.entries(C).forEach(Z=>{let[N,L]=Z;const{theme:$}=L,D=l(L,["theme"]);let T=D;$&&(T=c(Object.assign(Object.assign({},z),D),{override:D},$)),z[N]=T}),z};function m(){const{token:g,hashed:M,theme:h,components:S}=t.useContext(s.Mj),w=`${o.Z}-${M||""}`,C=h||s.uH,[z,Z]=(0,a.fp)(C,[n.Z,g],{salt:w,override:Object.assign({override:g},S),getComputedToken:c,formatToken:d.Z});return[C,z,M?Z:""]}},57634:function(b,y,e){"use strict";e.d(y,{Z:function(){return l}});var a=e(66671),t=e(28378);function o(c){return c>=0&&c<=255}function s(c,m){const{r:g,g:M,b:h,a:S}=new a.C(c).toRgb();if(S<1)return c;const{r:w,g:C,b:z}=new a.C(m).toRgb();for(let Z=.01;Z<=1;Z+=.01){const N=Math.round((g-w*(1-Z))/Z),L=Math.round((M-C*(1-Z))/Z),$=Math.round((h-z*(1-Z))/Z);if(o(N)&&o(L)&&o($))return new a.C({r:N,g:L,b:$,a:Math.round(Z*100)/100}).toRgbString()}return new a.C({r:g,g:M,b:h,a:1}).toRgbString()}var n=s,d=function(c,m){var g={};for(var M in c)Object.prototype.hasOwnProperty.call(c,M)&&m.indexOf(M)<0&&(g[M]=c[M]);if(c!=null&&typeof Object.getOwnPropertySymbols=="function")for(var h=0,M=Object.getOwnPropertySymbols(c);h{delete M[$]});const h=Object.assign(Object.assign({},g),M),S=480,w=576,C=768,z=992,Z=1200,N=1600;if(h.motion===!1){const $="0s";h.motionDurationFast=$,h.motionDurationMid=$,h.motionDurationSlow=$}return Object.assign(Object.assign(Object.assign({},h),{colorFillContent:h.colorFillSecondary,colorFillContentHover:h.colorFill,colorFillAlter:h.colorFillQuaternary,colorBgContainerDisabled:h.colorFillTertiary,colorBorderBg:h.colorBgContainer,colorSplit:n(h.colorBorderSecondary,h.colorBgContainer),colorTextPlaceholder:h.colorTextQuaternary,colorTextDisabled:h.colorTextQuaternary,colorTextHeading:h.colorText,colorTextLabel:h.colorTextSecondary,colorTextDescription:h.colorTextTertiary,colorTextLightSolid:h.colorWhite,colorHighlight:h.colorError,colorBgTextHover:h.colorFillSecondary,colorBgTextActive:h.colorFill,colorIcon:h.colorTextTertiary,colorIconHover:h.colorText,colorErrorOutline:n(h.colorErrorBg,h.colorBgContainer),colorWarningOutline:n(h.colorWarningBg,h.colorBgContainer),fontSizeIcon:h.fontSizeSM,lineWidthFocus:h.lineWidth*4,lineWidth:h.lineWidth,controlOutlineWidth:h.lineWidth*2,controlInteractiveSize:h.controlHeight/2,controlItemBgHover:h.colorFillTertiary,controlItemBgActive:h.colorPrimaryBg,controlItemBgActiveHover:h.colorPrimaryBgHover,controlItemBgActiveDisabled:h.colorFill,controlTmpOutline:h.colorFillQuaternary,controlOutline:n(h.colorPrimaryBg,h.colorBgContainer),lineType:h.lineType,borderRadius:h.borderRadius,borderRadiusXS:h.borderRadiusXS,borderRadiusSM:h.borderRadiusSM,borderRadiusLG:h.borderRadiusLG,fontWeightStrong:600,opacityLoading:.65,linkDecoration:"none",linkHoverDecoration:"none",linkFocusDecoration:"none",controlPaddingHorizontal:12,controlPaddingHorizontalSM:8,paddingXXS:h.sizeXXS,paddingXS:h.sizeXS,paddingSM:h.sizeSM,padding:h.size,paddingMD:h.sizeMD,paddingLG:h.sizeLG,paddingXL:h.sizeXL,paddingContentHorizontalLG:h.sizeLG,paddingContentVerticalLG:h.sizeMS,paddingContentHorizontal:h.sizeMS,paddingContentVertical:h.sizeSM,paddingContentHorizontalSM:h.size,paddingContentVerticalSM:h.sizeXS,marginXXS:h.sizeXXS,marginXS:h.sizeXS,marginSM:h.sizeSM,margin:h.size,marginMD:h.sizeMD,marginLG:h.sizeLG,marginXL:h.sizeXL,marginXXL:h.sizeXXL,boxShadow:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowSecondary:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTertiary:` + 0 1px 2px 0 rgba(0, 0, 0, 0.03), + 0 1px 6px -1px rgba(0, 0, 0, 0.02), + 0 2px 4px 0 rgba(0, 0, 0, 0.02) + `,screenXS:S,screenXSMin:S,screenXSMax:w-1,screenSM:w,screenSMMin:w,screenSMMax:C-1,screenMD:C,screenMDMin:C,screenMDMax:z-1,screenLG:z,screenLGMin:z,screenLGMax:Z-1,screenXL:Z,screenXLMin:Z,screenXLMax:N-1,screenXXL:N,screenXXLMin:N,boxShadowPopoverArrow:"2px 2px 5px rgba(0, 0, 0, 0.05)",boxShadowCard:` + 0 1px 2px -2px ${new a.C("rgba(0, 0, 0, 0.16)").toRgbString()}, + 0 3px 6px 0 ${new a.C("rgba(0, 0, 0, 0.12)").toRgbString()}, + 0 5px 12px 4px ${new a.C("rgba(0, 0, 0, 0.09)").toRgbString()} + `,boxShadowDrawerRight:` + -6px 0 16px 0 rgba(0, 0, 0, 0.08), + -3px 0 6px -4px rgba(0, 0, 0, 0.12), + -9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerLeft:` + 6px 0 16px 0 rgba(0, 0, 0, 0.08), + 3px 0 6px -4px rgba(0, 0, 0, 0.12), + 9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerUp:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerDown:` + 0 -6px 16px 0 rgba(0, 0, 0, 0.08), + 0 -3px 6px -4px rgba(0, 0, 0, 0.12), + 0 -9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTabsOverflowLeft:"inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowRight:"inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowTop:"inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowBottom:"inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)"}),M)}},52628:function(b,y,e){"use strict";e.d(y,{Z:function(){return m}});var a=e(58757),t=e(57793),o=e(71219),s=e(61836),n=e(78330),d=e(51806),l=e(22151),c=e(60619);function m(g,M,h,S){const w=Array.isArray(g)?g:[g,g],[C]=w,z=w.join("-");return Z=>{const[N,L,$]=(0,d.Z)(),{getPrefixCls:D,iconPrefixCls:T,csp:j}=(0,a.useContext)(s.E_),G=D(),k={theme:N,token:L,hashId:$,nonce:()=>j==null?void 0:j.nonce,clientOnly:S==null?void 0:S.clientOnly,order:-999};return(0,t.xy)(Object.assign(Object.assign({},k),{clientOnly:!1,path:["Shared",G]}),()=>[{"&":(0,n.Lx)(L)}]),(0,c.Z)(T),[(0,t.xy)(Object.assign(Object.assign({},k),{path:[z,Z,T]}),()=>{const{token:te,flush:Y}=(0,l.ZP)(L),q=Object.assign({},L[C]);if(S!=null&&S.deprecatedTokens){const{deprecatedTokens:_}=S;_.forEach(U=>{let[A,V]=U;var fe;(q!=null&&q[A]||q!=null&&q[V])&&((fe=q[V])!==null&&fe!==void 0||(q[V]=q==null?void 0:q[A]))})}const le=typeof h=="function"?h((0,l.TS)(te,q!=null?q:{})):h,X=Object.assign(Object.assign({},le),q),W=`.${Z}`,x=(0,l.TS)(te,{componentCls:W,prefixCls:Z,iconCls:`.${T}`,antCls:`.${G}`},X),O=M(x,{hashId:$,prefixCls:Z,rootPrefixCls:G,iconPrefixCls:T,overrideComponentToken:q});return Y(C,X),[(S==null?void 0:S.resetStyle)===!1?null:(0,n.du)(L,Z),O]}),$]}}},98251:function(b,y,e){"use strict";e.d(y,{Z:function(){return t}});var a=e(34966);function t(o,s){return a.i.reduce((n,d)=>{const l=o[`${d}1`],c=o[`${d}3`],m=o[`${d}6`],g=o[`${d}7`];return Object.assign(Object.assign({},n),s(d,{lightColor:l,lightBorderColor:c,darkColor:m,textColor:g}))},{})}},22151:function(b,y,e){"use strict";e.d(y,{TS:function(){return o},ZP:function(){return l}});const a=typeof CSSINJS_STATISTIC!="undefined";let t=!0;function o(){for(var c=arguments.length,m=new Array(c),g=0;g{Object.keys(h).forEach(w=>{Object.defineProperty(M,w,{configurable:!0,enumerable:!0,get:()=>h[w]})})}),t=!0,M}const s={},n={};function d(){}function l(c){let m,g=c,M=d;return a&&(m=new Set,g=new Proxy(c,{get(h,S){return t&&m.add(S),h[S]}}),M=(h,S)=>{var w;s[h]={global:Array.from(m),component:Object.assign(Object.assign({},(w=s[h])===null||w===void 0?void 0:w.component),S)}}),{token:g,keys:m,flush:M}}},60619:function(b,y,e){"use strict";var a=e(57793),t=e(78330),o=e(51806);const s=(n,d)=>{const[l,c]=(0,o.Z)();return(0,a.xy)({theme:l,token:c,hashId:"",path:["ant-design-icons",n],nonce:()=>d==null?void 0:d.nonce},()=>[{[`.${n}`]:Object.assign(Object.assign({},(0,t.Ro)()),{[`.${n} .${n}-icon`]:{display:"block"}})}])};y.Z=s},38107:function(b,y){"use strict";const e={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};y.Z=e},74820:function(b,y,e){"use strict";e.d(y,{Z:function(){return le}});var a=e(87608),t=e.n(a),o=e(33664),s=e(60409),n=e(58757),d=e(90881),l=e(95446),c=e(37047),m=e(61836),g=e(43528),M=e(22802),h=e(78330),S=e(28107),w=e(24542),C=e(98251),z=e(22151),Z=e(52628);const N=X=>{const{componentCls:W,tooltipMaxWidth:x,tooltipColor:O,tooltipBg:_,tooltipBorderRadius:U,zIndexPopup:A,controlHeight:V,boxShadowSecondary:fe,paddingSM:pe,paddingXS:ge,tooltipRadiusOuter:be}=X;return[{[W]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,h.Wf)(X)),{position:"absolute",zIndex:A,display:"block",width:"max-content",maxWidth:x,visibility:"visible",transformOrigin:"var(--arrow-x, 50%) var(--arrow-y, 50%)","&-hidden":{display:"none"},"--antd-arrow-background-color":_,[`${W}-inner`]:{minWidth:V,minHeight:V,padding:`${pe/2}px ${ge}px`,color:O,textAlign:"start",textDecoration:"none",wordWrap:"break-word",backgroundColor:_,borderRadius:U,boxShadow:fe,boxSizing:"border-box"},[["&-placement-left","&-placement-leftTop","&-placement-leftBottom","&-placement-right","&-placement-rightTop","&-placement-rightBottom"].join(",")]:{[`${W}-inner`]:{borderRadius:Math.min(U,w.qN)}},[`${W}-content`]:{position:"relative"}}),(0,C.Z)(X,(Te,Ge)=>{let{darkColor:qe}=Ge;return{[`&${W}-${Te}`]:{[`${W}-inner`]:{backgroundColor:qe},[`${W}-arrow`]:{"--antd-arrow-background-color":qe}}}})),{"&-rtl":{direction:"rtl"}})},(0,w.ZP)((0,z.TS)(X,{borderRadiusOuter:be}),{colorBg:"var(--antd-arrow-background-color)",contentRadius:U,limitVerticalRadius:!0}),{[`${W}-pure`]:{position:"relative",maxWidth:"none",margin:X.sizePopupArrow}}]};var L=(X,W)=>(0,Z.Z)("Tooltip",O=>{if(W===!1)return[];const{borderRadius:_,colorTextLightSolid:U,colorBgDefault:A,borderRadiusOuter:V}=O,fe=(0,z.TS)(O,{tooltipMaxWidth:250,tooltipColor:U,tooltipBorderRadius:_,tooltipBg:A,tooltipRadiusOuter:V>4?4:V});return[N(fe),(0,S._y)(O,"zoom-big-fast")]},O=>{let{zIndexPopupBase:_,colorBgSpotlight:U}=O;return{zIndexPopup:_+70,colorBgDefault:U}},{resetStyle:!1})(X),$=e(1878);function D(X,W){const x=(0,$.o2)(W),O=t()({[`${X}-${W}`]:W&&x}),_={},U={};return W&&!x&&(_.background=W,U["--antd-arrow-background-color"]=W),{className:O,overlayStyle:_,arrowStyle:U}}var j=X=>{const{prefixCls:W,className:x,placement:O="top",title:_,color:U,overlayInnerStyle:A}=X,{getPrefixCls:V}=n.useContext(m.E_),fe=V("tooltip",W),[pe,ge]=L(fe,!0),be=D(fe,U),Te=be.arrowStyle,Ge=Object.assign(Object.assign({},A),be.overlayStyle),qe=t()(ge,fe,`${fe}-pure`,`${fe}-placement-${O}`,x,be.className);return pe(n.createElement("div",{className:qe,style:Te},n.createElement("div",{className:`${fe}-arrow`}),n.createElement(o.G,Object.assign({},X,{className:ge,prefixCls:fe,overlayInnerStyle:Ge}),_)))},G=function(X,W){var x={};for(var O in X)Object.prototype.hasOwnProperty.call(X,O)&&W.indexOf(O)<0&&(x[O]=X[O]);if(X!=null&&typeof Object.getOwnPropertySymbols=="function")for(var _=0,O=Object.getOwnPropertySymbols(X);_{const x={},O=Object.assign({},X);return W.forEach(_=>{X&&_ in X&&(x[_]=X[_],delete O[_])}),{picked:x,omitted:O}};function Y(X,W){const x=X.type;if((x.__ANT_BUTTON===!0||X.type==="button")&&X.props.disabled||x.__ANT_SWITCH===!0&&(X.props.disabled||X.props.loading)||x.__ANT_RADIO===!0&&X.props.disabled){const{picked:O,omitted:_}=te(X.props.style,["position","left","right","top","bottom","float","display","zIndex"]),U=Object.assign(Object.assign({display:"inline-block"},O),{cursor:"not-allowed",width:X.props.block?"100%":void 0}),A=Object.assign(Object.assign({},_),{pointerEvents:"none"}),V=(0,c.Tm)(X,{style:A,className:null});return n.createElement("span",{style:U,className:t()(X.props.className,`${W}-disabled-compatible-wrapper`)},V)}return X}const q=n.forwardRef((X,W)=>{var x,O;const{prefixCls:_,openClassName:U,getTooltipContainer:A,overlayClassName:V,color:fe,overlayInnerStyle:pe,children:ge,afterOpenChange:be,afterVisibleChange:Te,destroyTooltipOnHide:Ge,arrow:qe=!0,title:Qe,overlay:ht,builtinPlacements:Et,arrowPointAtCenter:gt=!1,autoAdjustOverflow:Ht=!0}=X,$e=!!qe,{token:Xe}=k(),{getPopupContainer:rt,getPrefixCls:Ke,direction:ye}=n.useContext(m.E_),ne=n.useRef(null),H=()=>{var xt;(xt=ne.current)===null||xt===void 0||xt.forceAlign()};n.useImperativeHandle(W,()=>({forceAlign:H,forcePopupAlign:()=>{H()}}));const[R,P]=(0,s.Z)(!1,{value:(x=X.open)!==null&&x!==void 0?x:X.visible,defaultValue:(O=X.defaultOpen)!==null&&O!==void 0?O:X.defaultVisible}),ae=!Qe&&!ht&&Qe!==0,Q=xt=>{var _t,Ot;P(ae?!1:xt),ae||((_t=X.onOpenChange)===null||_t===void 0||_t.call(X,xt),(Ot=X.onVisibleChange)===null||Ot===void 0||Ot.call(X,xt))},ie=n.useMemo(()=>{var xt,_t;let Ot=gt;return typeof qe=="object"&&(Ot=(_t=(xt=qe.pointAtCenter)!==null&&xt!==void 0?xt:qe.arrowPointAtCenter)!==null&&_t!==void 0?_t:gt),Et||(0,l.Z)({arrowPointAtCenter:Ot,autoAdjustOverflow:Ht,arrowWidth:$e?Xe.sizePopupArrow:0,borderRadius:Xe.borderRadius,offset:Xe.marginXXS,visibleFirst:!0})},[gt,qe,Et,Xe]),me=n.useMemo(()=>Qe===0?Qe:ht||Qe||"",[ht,Qe]),je=n.createElement(g.BR,null,typeof me=="function"?me():me),{getPopupContainer:Ce,placement:Se="top",mouseEnterDelay:We=.1,mouseLeaveDelay:re=.1,overlayStyle:se,rootClassName:J}=X,de=G(X,["getPopupContainer","placement","mouseEnterDelay","mouseLeaveDelay","overlayStyle","rootClassName"]),xe=Ke("tooltip",_),ce=Ke(),Ne=X["data-popover-inject"];let Oe=R;!("open"in X)&&!("visible"in X)&&ae&&(Oe=!1);const we=Y((0,c.l$)(ge)&&!(0,c.M2)(ge)?ge:n.createElement("span",null,ge),xe),Re=we.props,st=!Re.className||typeof Re.className=="string"?t()(Re.className,U||`${xe}-open`):Re.className,[tt,Ye]=L(xe,!Ne),ke=D(xe,fe),Be=ke.arrowStyle,it=Object.assign(Object.assign({},pe),ke.overlayStyle),Ve=t()(V,{[`${xe}-rtl`]:ye==="rtl"},ke.className,J,Ye);return tt(n.createElement(o.Z,Object.assign({},de,{showArrow:$e,placement:Se,mouseEnterDelay:We,mouseLeaveDelay:re,prefixCls:xe,overlayClassName:Ve,overlayStyle:Object.assign(Object.assign({},Be),se),getTooltipContainer:Ce||A||rt,ref:ne,builtinPlacements:ie,overlay:je,visible:Oe,onVisibleChange:Q,afterVisibleChange:be!=null?be:Te,overlayInnerStyle:it,arrowContent:n.createElement("span",{className:`${xe}-arrow-content`}),motion:{motionName:(0,d.m)(ce,"zoom-big-fast",X.transitionName),motionDeadline:1e3},destroyTooltipOnHide:!!Ge}),Oe?(0,c.Tm)(we,{className:st}):we))});q._InternalPanelDoNotUseOrYouWillBeFired=j;var le=q},23241:function(b,y,e){"use strict";e.d(y,{Z:function(){return gr}});var a=e(58757),t=e(29140),o=e(87608),s=e.n(o),n=e(60698),d=e(60412),l=e(14346),c=e(87498),m=e(73726),g=e(37734),M=e(47075),h=e(74632),S=e(38790),w=e(79290),C=e(33926);function z(zt,qt){var rn="cannot ".concat(zt.method," ").concat(zt.action," ").concat(qt.status,"'"),dn=new Error(rn);return dn.status=qt.status,dn.method=zt.method,dn.url=zt.action,dn}function Z(zt){var qt=zt.responseText||zt.response;if(!qt)return qt;try{return JSON.parse(qt)}catch(rn){return qt}}function N(zt){var qt=new XMLHttpRequest;zt.onProgress&&qt.upload&&(qt.upload.onprogress=function(on){on.total>0&&(on.percent=on.loaded/on.total*100),zt.onProgress(on)});var rn=new FormData;zt.data&&Object.keys(zt.data).forEach(function(Cn){var on=zt.data[Cn];if(Array.isArray(on)){on.forEach(function(pt){rn.append("".concat(Cn,"[]"),pt)});return}rn.append(Cn,on)}),zt.file instanceof Blob?rn.append(zt.filename,zt.file,zt.file.name):rn.append(zt.filename,zt.file),qt.onerror=function(on){zt.onError(on)},qt.onload=function(){return qt.status<200||qt.status>=300?zt.onError(z(zt,qt),Z(qt)):zt.onSuccess(Z(qt),qt)},qt.open(zt.method,zt.action,!0),zt.withCredentials&&"withCredentials"in qt&&(qt.withCredentials=!0);var dn=zt.headers||{};return dn["X-Requested-With"]!==null&&qt.setRequestHeader("X-Requested-With","XMLHttpRequest"),Object.keys(dn).forEach(function(Cn){dn[Cn]!==null&&qt.setRequestHeader(Cn,dn[Cn])}),qt.send(rn),{abort:function(){qt.abort()}}}var L=+new Date,$=0;function D(){return"rc-upload-".concat(L,"-").concat(++$)}var T=e(75556),j=function(zt,qt){if(zt&&qt){var rn=Array.isArray(qt)?qt:qt.split(","),dn=zt.name||"",Cn=zt.type||"",on=Cn.replace(/\/.*$/,"");return rn.some(function(pt){var mt=pt.trim();if(/^\*(\/\*)?$/.test(pt))return!0;if(mt.charAt(0)==="."){var sn=dn.toLowerCase(),Kt=mt.toLowerCase(),tn=[Kt];return(Kt===".jpg"||Kt===".jpeg")&&(tn=[".jpg",".jpeg"]),tn.some(function(mn){return sn.endsWith(mn)})}return/\/\*$/.test(mt)?on===mt.replace(/\/.*$/,""):Cn===mt?!0:/^\w+$/.test(mt)?((0,T.ZP)(!1,"Upload takes an invalidate 'accept' type '".concat(mt,"'.Skip for check.")),!0):!1})}return!0};function G(zt,qt){var rn=zt.createReader(),dn=[];function Cn(){rn.readEntries(function(on){var pt=Array.prototype.slice.apply(on);dn=dn.concat(pt);var mt=!pt.length;mt?qt(dn):Cn()})}Cn()}var k=function(qt,rn,dn){var Cn=function on(pt,mt){pt.path=mt||"",pt.isFile?pt.file(function(sn){dn(sn)&&(pt.fullPath&&!sn.webkitRelativePath&&(Object.defineProperties(sn,{webkitRelativePath:{writable:!0}}),sn.webkitRelativePath=pt.fullPath.replace(/^\//,""),Object.defineProperties(sn,{webkitRelativePath:{writable:!1}})),rn([sn]))}):pt.isDirectory&&G(pt,function(sn){sn.forEach(function(Kt){on(Kt,"".concat(mt).concat(pt.name,"/"))})})};qt.forEach(function(on){Cn(on.webkitGetAsEntry())})},te=k,Y=["component","prefixCls","className","disabled","id","style","multiple","accept","capture","children","directory","openFileDialogOnClick","onMouseEnter","onMouseLeave"],q=function(zt){(0,c.Z)(rn,zt);var qt=(0,m.Z)(rn);function rn(){var dn;(0,d.Z)(this,rn);for(var Cn=arguments.length,on=new Array(Cn),pt=0;pt{let{uid:on}=Cn;return on===zt.uid});return dn===-1?rn.push(zt):rn[dn]=zt,rn}function ie(zt,qt){const rn=zt.uid!==void 0?"uid":"name";return qt.filter(dn=>dn[rn]===zt[rn])[0]}function me(zt,qt){const rn=zt.uid!==void 0?"uid":"name",dn=qt.filter(Cn=>Cn[rn]!==zt[rn]);return dn.length===qt.length?null:dn}const je=function(){const qt=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:"").split("/"),dn=qt[qt.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(dn)||[""])[0]},Ce=zt=>zt.indexOf("image/")===0,Se=zt=>{if(zt.type&&!zt.thumbUrl)return Ce(zt.type);const qt=zt.thumbUrl||zt.url||"",rn=je(qt);return/^data:image\//.test(qt)||/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico|heic|heif)$/i.test(rn)?!0:!(/^data:/.test(qt)||rn)},We=200;function re(zt){return new Promise(qt=>{if(!zt.type||!Ce(zt.type)){qt("");return}const rn=document.createElement("canvas");rn.width=We,rn.height=We,rn.style.cssText=`position: fixed; left: 0; top: 0; width: ${We}px; height: ${We}px; z-index: 9999; display: none;`,document.body.appendChild(rn);const dn=rn.getContext("2d"),Cn=new Image;if(Cn.onload=()=>{const{width:on,height:pt}=Cn;let mt=We,sn=We,Kt=0,tn=0;on>pt?(sn=pt*(We/on),tn=-(sn-mt)/2):(mt=on*(We/pt),Kt=-(mt-sn)/2),dn.drawImage(Cn,Kt,tn,mt,sn);const mn=rn.toDataURL();document.body.removeChild(rn),window.URL.revokeObjectURL(Cn.src),qt(mn)},Cn.crossOrigin="anonymous",zt.type.startsWith("image/svg+xml")){const on=new FileReader;on.onload=()=>{on.result&&(Cn.src=on.result)},on.readAsDataURL(zt)}else if(zt.type.startsWith("image/gif")){const on=new FileReader;on.onload=()=>{on.result&&qt(on.result)},on.readAsDataURL(zt)}else Cn.src=window.URL.createObjectURL(zt)})}var se=e(23605),J={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"download",theme:"outlined"},de=J,xe=function(qt,rn){return a.createElement(Te.Z,(0,n.Z)({},qt,{ref:rn,icon:de}))},ce=a.forwardRef(xe),Ne=e(56019),Oe=e(95664),we=e(74820),st=a.forwardRef((zt,qt)=>{let{prefixCls:rn,className:dn,style:Cn,locale:on,listType:pt,file:mt,items:sn,progress:Kt,iconRender:tn,actionIconRender:mn,itemRender:fn,isImgUrl:kn,showPreviewIcon:qn,showRemoveIcon:ct,showDownloadIcon:dt,previewIcon:It,removeIcon:Ct,downloadIcon:kt,onPreview:un,onDownload:nn,onClose:xn}=zt;var Rn,Mr;const{status:er}=mt,[zn,Ur]=a.useState(er);a.useEffect(()=>{er!=="removed"&&Ur(er)},[er]);const[pr,sa]=a.useState(!1);a.useEffect(()=>{const Ar=setTimeout(()=>{sa(!0)},300);return()=>{clearTimeout(Ar)}},[]);const Nr=tn(mt);let Zn=a.createElement("div",{className:`${rn}-icon`},Nr);if(pt==="picture"||pt==="picture-card"||pt==="picture-circle")if(zn==="uploading"||!mt.thumbUrl&&!mt.url){const Ar=s()(`${rn}-list-item-thumbnail`,{[`${rn}-list-item-file`]:zn!=="uploading"});Zn=a.createElement("div",{className:Ar},Nr)}else{const Ar=kn!=null&&kn(mt)?a.createElement("img",{src:mt.thumbUrl||mt.url,alt:mt.name,className:`${rn}-list-item-image`,crossOrigin:mt.crossOrigin}):Nr,Pt=s()(`${rn}-list-item-thumbnail`,{[`${rn}-list-item-file`]:kn&&!kn(mt)});Zn=a.createElement("a",{className:Pt,onClick:an=>un(mt,an),href:mt.url||mt.thumbUrl,target:"_blank",rel:"noopener noreferrer"},Ar)}const In=s()(`${rn}-list-item`,`${rn}-list-item-${zn}`),Pn=typeof mt.linkProps=="string"?JSON.parse(mt.linkProps):mt.linkProps,rr=ct?mn((typeof Ct=="function"?Ct(mt):Ct)||a.createElement(se.Z,null),()=>xn(mt),rn,on.removeFile):null,br=dt&&zn==="done"?mn((typeof kt=="function"?kt(mt):kt)||a.createElement(ce,null),()=>nn(mt),rn,on.downloadFile):null,Gr=pt!=="picture-card"&&pt!=="picture-circle"&&a.createElement("span",{key:"download-delete",className:s()(`${rn}-list-item-actions`,{picture:pt==="picture"})},br,rr),na=s()(`${rn}-list-item-name`),pa=mt.url?[a.createElement("a",Object.assign({key:"view",target:"_blank",rel:"noopener noreferrer",className:na,title:mt.name},Pn,{href:mt.url,onClick:Ar=>un(mt,Ar)}),mt.name),Gr]:[a.createElement("span",{key:"view",className:na,onClick:Ar=>un(mt,Ar),title:mt.name},mt.name),Gr],cr={pointerEvents:"none",opacity:.5},Zr=qn?a.createElement("a",{href:mt.url||mt.thumbUrl,target:"_blank",rel:"noopener noreferrer",style:mt.url||mt.thumbUrl?void 0:cr,onClick:Ar=>un(mt,Ar),title:on.previewFile},typeof It=="function"?It(mt):It||a.createElement(Ne.Z,null)):null,Ea=(pt==="picture-card"||pt==="picture-circle")&&zn!=="uploading"&&a.createElement("span",{className:`${rn}-list-item-actions`},Zr,zn==="done"&&br,rr),{getPrefixCls:ha}=a.useContext(A.E_),Wn=ha(),Fn=a.createElement("div",{className:In},Zn,pa,Ea,pr&&a.createElement(ye.ZP,{motionName:`${Wn}-fade`,visible:zn==="uploading",motionDeadline:2e3},Ar=>{let{className:Pt}=Ar;const an="percent"in mt?a.createElement(Oe.Z,Object.assign({},Kt,{type:"line",percent:mt.percent,"aria-label":mt["aria-label"],"aria-labelledby":mt["aria-labelledby"]})):null;return a.createElement("div",{className:s()(`${rn}-list-item-progress`,Pt)},an)})),hr=mt.response&&typeof mt.response=="string"?mt.response:((Rn=mt.error)===null||Rn===void 0?void 0:Rn.statusText)||((Mr=mt.error)===null||Mr===void 0?void 0:Mr.message)||on.uploadError,Kr=zn==="error"?a.createElement(we.Z,{title:hr,getPopupContainer:Ar=>Ar.parentNode},Fn):Fn;return a.createElement("div",{className:s()(`${rn}-list-item-container`,dn),style:Cn,ref:qt},fn?fn(Kr,mt,sn,{download:nn.bind(null,mt),preview:un.bind(null,mt),remove:xn.bind(null,mt)}):Kr)});const tt=(zt,qt)=>{const{listType:rn="text",previewFile:dn=re,onPreview:Cn,onDownload:on,onRemove:pt,locale:mt,iconRender:sn,isImageUrl:Kt=Se,prefixCls:tn,items:mn=[],showPreviewIcon:fn=!0,showRemoveIcon:kn=!0,showDownloadIcon:qn=!1,removeIcon:ct,previewIcon:dt,downloadIcon:It,progress:Ct={size:[-1,2],showInfo:!1},appendAction:kt,appendActionVisible:un=!0,itemRender:nn,disabled:xn}=zt,Rn=(0,ne.Z)(),[Mr,er]=a.useState(!1);a.useEffect(()=>{rn!=="picture"&&rn!=="picture-card"&&rn!=="picture-circle"||(mn||[]).forEach(cr=>{typeof document=="undefined"||typeof window=="undefined"||!window.FileReader||!window.File||!(cr.originFileObj instanceof File||cr.originFileObj instanceof Blob)||cr.thumbUrl!==void 0||(cr.thumbUrl="",dn&&dn(cr.originFileObj).then(Zr=>{cr.thumbUrl=Zr||"",Rn()}))})},[rn,mn,dn]),a.useEffect(()=>{er(!0)},[]);const zn=(cr,Zr)=>{if(Cn)return Zr==null||Zr.preventDefault(),Cn(cr)},Ur=cr=>{typeof on=="function"?on(cr):cr.url&&window.open(cr.url)},pr=cr=>{pt==null||pt(cr)},sa=cr=>{if(sn)return sn(cr,rn);const Zr=cr.status==="uploading",Ea=Kt&&Kt(cr)?a.createElement(Ke,null):a.createElement(qe,null);let ha=Zr?a.createElement(Qe.Z,null):a.createElement(Ht,null);return rn==="picture"?ha=Zr?a.createElement(Qe.Z,null):Ea:(rn==="picture-card"||rn==="picture-circle")&&(ha=Zr?mt.uploading:Ea),ha},Nr=(cr,Zr,Ea,ha)=>{const Wn={type:"text",size:"small",title:ha,onClick:Fn=>{Zr(),(0,R.l$)(cr)&&cr.props.onClick&&cr.props.onClick(Fn)},className:`${Ea}-list-item-action`,disabled:xn};if((0,R.l$)(cr)){const Fn=(0,R.Tm)(cr,Object.assign(Object.assign({},cr.props),{onClick:()=>{}}));return a.createElement(P.ZP,Object.assign({},Wn,{icon:Fn}))}return a.createElement(P.ZP,Object.assign({},Wn),a.createElement("span",null,cr))};a.useImperativeHandle(qt,()=>({handlePreview:zn,handleDownload:Ur}));const{getPrefixCls:Zn}=a.useContext(A.E_),In=Zn("upload",tn),Pn=Zn(),rr=s()(`${In}-list`,`${In}-list-${rn}`),br=(0,t.Z)(mn.map(cr=>({key:cr.uid,file:cr})));let na={motionDeadline:2e3,motionName:`${In}-${rn==="picture-card"||rn==="picture-circle"?"animate-inline":"animate"}`,keys:br,motionAppear:Mr};const pa=a.useMemo(()=>{const cr=Object.assign({},(0,H.Z)(Pn));return delete cr.onAppearEnd,delete cr.onEnterEnd,delete cr.onLeaveEnd,cr},[Pn]);return rn!=="picture-card"&&rn!=="picture-circle"&&(na=Object.assign(Object.assign({},pa),na)),a.createElement("div",{className:rr},a.createElement(ye.V4,Object.assign({},na,{component:!1}),cr=>{let{key:Zr,file:Ea,className:ha,style:Wn}=cr;return a.createElement(st,{key:Zr,locale:mt,prefixCls:In,className:ha,style:Wn,file:Ea,items:mn,progress:Ct,listType:rn,isImgUrl:Kt,showPreviewIcon:fn,showRemoveIcon:kn,showDownloadIcon:qn,removeIcon:ct,previewIcon:dt,downloadIcon:It,iconRender:sa,actionIconRender:Nr,itemRender:nn,onPreview:zn,onDownload:Ur,onClose:pr})}),kt&&a.createElement(ye.ZP,Object.assign({},na,{visible:un,forceRender:!0}),cr=>{let{className:Zr,style:Ea}=cr;return(0,R.Tm)(kt,ha=>({className:s()(ha.className,Zr),style:Object.assign(Object.assign(Object.assign({},Ea),{pointerEvents:Zr?"none":void 0}),ha.style)}))}))};var ke=a.forwardRef(tt),Be=e(78330),it=e(41086),Ve=e(52628),xt=e(22151),Ot=zt=>{const{componentCls:qt,iconCls:rn}=zt;return{[`${qt}-wrapper`]:{[`${qt}-drag`]:{position:"relative",width:"100%",height:"100%",textAlign:"center",background:zt.colorFillAlter,border:`${zt.lineWidth}px dashed ${zt.colorBorder}`,borderRadius:zt.borderRadiusLG,cursor:"pointer",transition:`border-color ${zt.motionDurationSlow}`,[qt]:{padding:`${zt.padding}px 0`},[`${qt}-btn`]:{display:"table",width:"100%",height:"100%",outline:"none"},[`${qt}-drag-container`]:{display:"table-cell",verticalAlign:"middle"},[`&:not(${qt}-disabled):hover`]:{borderColor:zt.colorPrimaryHover},[`p${qt}-drag-icon`]:{marginBottom:zt.margin,[rn]:{color:zt.colorPrimary,fontSize:zt.uploadThumbnailSize}},[`p${qt}-text`]:{margin:`0 0 ${zt.marginXXS}px`,color:zt.colorTextHeading,fontSize:zt.fontSizeLG},[`p${qt}-hint`]:{color:zt.colorTextDescription,fontSize:zt.fontSize},[`&${qt}-disabled`]:{cursor:"not-allowed",[`p${qt}-drag-icon ${rn}, + p${qt}-text, + p${qt}-hint + `]:{color:zt.colorTextDisabled}}}}}},Yt=zt=>{const{componentCls:qt,antCls:rn,iconCls:dn,fontSize:Cn,lineHeight:on}=zt,pt=`${qt}-list-item`,mt=`${pt}-actions`,sn=`${pt}-action`,Kt=Math.round(Cn*on);return{[`${qt}-wrapper`]:{[`${qt}-list`]:Object.assign(Object.assign({},(0,Be.dF)()),{lineHeight:zt.lineHeight,[pt]:{position:"relative",height:zt.lineHeight*Cn,marginTop:zt.marginXS,fontSize:Cn,display:"flex",alignItems:"center",transition:`background-color ${zt.motionDurationSlow}`,"&:hover":{backgroundColor:zt.controlItemBgHover},[`${pt}-name`]:Object.assign(Object.assign({},Be.vS),{padding:`0 ${zt.paddingXS}px`,lineHeight:on,flex:"auto",transition:`all ${zt.motionDurationSlow}`}),[mt]:{[sn]:{opacity:0},[`${sn}${rn}-btn-sm`]:{height:Kt,border:0,lineHeight:1,"> span":{transform:"scale(1)"}},[` + ${sn}:focus, + &.picture ${sn} + `]:{opacity:1},[dn]:{color:zt.actionsColor,transition:`all ${zt.motionDurationSlow}`},[`&:hover ${dn}`]:{color:zt.colorText}},[`${qt}-icon ${dn}`]:{color:zt.colorTextDescription,fontSize:Cn},[`${pt}-progress`]:{position:"absolute",bottom:-zt.uploadProgressOffset,width:"100%",paddingInlineStart:Cn+zt.paddingXS,fontSize:Cn,lineHeight:0,pointerEvents:"none","> div":{margin:0}}},[`${pt}:hover ${sn}`]:{opacity:1,color:zt.colorText},[`${pt}-error`]:{color:zt.colorError,[`${pt}-name, ${qt}-icon ${dn}`]:{color:zt.colorError},[mt]:{[`${dn}, ${dn}:hover`]:{color:zt.colorError},[sn]:{opacity:1}}},[`${qt}-list-item-container`]:{transition:`opacity ${zt.motionDurationSlow}, height ${zt.motionDurationSlow}`,"&::before":{display:"table",width:0,height:0,content:'""'}}})}}},bt=e(57793),ze=e(7239);const nt=new bt.E4("uploadAnimateInlineIn",{from:{width:0,height:0,margin:0,padding:0,opacity:0}}),St=new bt.E4("uploadAnimateInlineOut",{to:{width:0,height:0,margin:0,padding:0,opacity:0}});var Vt=zt=>{const{componentCls:qt}=zt,rn=`${qt}-animate-inline`;return[{[`${qt}-wrapper`]:{[`${rn}-appear, ${rn}-enter, ${rn}-leave`]:{animationDuration:zt.motionDurationSlow,animationTimingFunction:zt.motionEaseInOutCirc,animationFillMode:"forwards"},[`${rn}-appear, ${rn}-enter`]:{animationName:nt},[`${rn}-leave`]:{animationName:St}}},{[`${qt}-wrapper`]:(0,ze.J$)(zt)},nt,St]},Nt=e(26134),At=e(66671);const Ie=zt=>{const{componentCls:qt,iconCls:rn,uploadThumbnailSize:dn,uploadProgressOffset:Cn}=zt,on=`${qt}-list`,pt=`${on}-item`;return{[`${qt}-wrapper`]:{[` + ${on}${on}-picture, + ${on}${on}-picture-card, + ${on}${on}-picture-circle + `]:{[pt]:{position:"relative",height:dn+zt.lineWidth*2+zt.paddingXS*2,padding:zt.paddingXS,border:`${zt.lineWidth}px ${zt.lineType} ${zt.colorBorder}`,borderRadius:zt.borderRadiusLG,"&:hover":{background:"transparent"},[`${pt}-thumbnail`]:Object.assign(Object.assign({},Be.vS),{width:dn,height:dn,lineHeight:`${dn+zt.paddingSM}px`,textAlign:"center",flex:"none",[rn]:{fontSize:zt.fontSizeHeading2,color:zt.colorPrimary},img:{display:"block",width:"100%",height:"100%",overflow:"hidden"}}),[`${pt}-progress`]:{bottom:Cn,width:`calc(100% - ${zt.paddingSM*2}px)`,marginTop:0,paddingInlineStart:dn+zt.paddingXS}},[`${pt}-error`]:{borderColor:zt.colorError,[`${pt}-thumbnail ${rn}`]:{[`svg path[fill='${Nt.blue[0]}']`]:{fill:zt.colorErrorBg},[`svg path[fill='${Nt.blue.primary}']`]:{fill:zt.colorError}}},[`${pt}-uploading`]:{borderStyle:"dashed",[`${pt}-name`]:{marginBottom:Cn}}},[`${on}${on}-picture-circle ${pt}`]:{[`&, &::before, ${pt}-thumbnail`]:{borderRadius:"50%"}}}}},Ee=zt=>{const{componentCls:qt,iconCls:rn,fontSizeLG:dn,colorTextLightSolid:Cn}=zt,on=`${qt}-list`,pt=`${on}-item`,mt=zt.uploadPicCardSize;return{[` + ${qt}-wrapper${qt}-picture-card-wrapper, + ${qt}-wrapper${qt}-picture-circle-wrapper + `]:Object.assign(Object.assign({},(0,Be.dF)()),{display:"inline-block",width:"100%",[`${qt}${qt}-select`]:{width:mt,height:mt,marginInlineEnd:zt.marginXS,marginBottom:zt.marginXS,textAlign:"center",verticalAlign:"top",backgroundColor:zt.colorFillAlter,border:`${zt.lineWidth}px dashed ${zt.colorBorder}`,borderRadius:zt.borderRadiusLG,cursor:"pointer",transition:`border-color ${zt.motionDurationSlow}`,[`> ${qt}`]:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center"},[`&:not(${qt}-disabled):hover`]:{borderColor:zt.colorPrimary}},[`${on}${on}-picture-card, ${on}${on}-picture-circle`]:{[`${on}-item-container`]:{display:"inline-block",width:mt,height:mt,marginBlock:`0 ${zt.marginXS}px`,marginInline:`0 ${zt.marginXS}px`,verticalAlign:"top"},"&::after":{display:"none"},[pt]:{height:"100%",margin:0,"&::before":{position:"absolute",zIndex:1,width:`calc(100% - ${zt.paddingXS*2}px)`,height:`calc(100% - ${zt.paddingXS*2}px)`,backgroundColor:zt.colorBgMask,opacity:0,transition:`all ${zt.motionDurationSlow}`,content:'" "'}},[`${pt}:hover`]:{[`&::before, ${pt}-actions`]:{opacity:1}},[`${pt}-actions`]:{position:"absolute",insetInlineStart:0,zIndex:10,width:"100%",whiteSpace:"nowrap",textAlign:"center",opacity:0,transition:`all ${zt.motionDurationSlow}`,[`${rn}-eye, ${rn}-download, ${rn}-delete`]:{zIndex:10,width:dn,margin:`0 ${zt.marginXXS}px`,fontSize:dn,cursor:"pointer",transition:`all ${zt.motionDurationSlow}`,svg:{verticalAlign:"baseline"}}},[`${pt}-actions, ${pt}-actions:hover`]:{[`${rn}-eye, ${rn}-download, ${rn}-delete`]:{color:new At.C(Cn).setAlpha(.65).toRgbString(),"&:hover":{color:Cn}}},[`${pt}-thumbnail, ${pt}-thumbnail img`]:{position:"static",display:"block",width:"100%",height:"100%",objectFit:"contain"},[`${pt}-name`]:{display:"none",textAlign:"center"},[`${pt}-file + ${pt}-name`]:{position:"absolute",bottom:zt.margin,display:"block",width:`calc(100% - ${zt.paddingXS*2}px)`},[`${pt}-uploading`]:{[`&${pt}`]:{backgroundColor:zt.colorFillAlter},[`&::before, ${rn}-eye, ${rn}-download, ${rn}-delete`]:{display:"none"}},[`${pt}-progress`]:{bottom:zt.marginXL,width:`calc(100% - ${zt.paddingXS*2}px)`,paddingInlineStart:0}}}),[`${qt}-wrapper${qt}-picture-circle-wrapper`]:{[`${qt}${qt}-select`]:{borderRadius:"50%"}}}};var jt=zt=>{const{componentCls:qt}=zt;return{[`${qt}-rtl`]:{direction:"rtl"}}};const He=zt=>{const{componentCls:qt,colorTextDisabled:rn}=zt;return{[`${qt}-wrapper`]:Object.assign(Object.assign({},(0,Be.Wf)(zt)),{[qt]:{outline:0,"input[type='file']":{cursor:"pointer"}},[`${qt}-select`]:{display:"inline-block"},[`${qt}-disabled`]:{color:rn,cursor:"not-allowed"}})}};var et=(0,Ve.Z)("Upload",zt=>{const{fontSizeHeading3:qt,fontSize:rn,lineHeight:dn,lineWidth:Cn,controlHeightLG:on}=zt,pt=Math.round(rn*dn),mt=(0,xt.TS)(zt,{uploadThumbnailSize:qt*2,uploadProgressOffset:pt/2+Cn,uploadPicCardSize:on*2.55});return[He(mt),Ot(mt),Ie(mt),Ee(mt),Yt(mt),Vt(mt),jt(mt),(0,it.Z)(mt)]},zt=>({actionsColor:zt.colorTextDescription})),Zt=function(zt,qt,rn,dn){function Cn(on){return on instanceof rn?on:new rn(function(pt){pt(on)})}return new(rn||(rn=Promise))(function(on,pt){function mt(tn){try{Kt(dn.next(tn))}catch(mn){pt(mn)}}function sn(tn){try{Kt(dn.throw(tn))}catch(mn){pt(mn)}}function Kt(tn){tn.done?on(tn.value):Cn(tn.value).then(mt,sn)}Kt((dn=dn.apply(zt,qt||[])).next())})};const Ut=`__LIST_IGNORE_${Date.now()}__`,Jt=(zt,qt)=>{const{fileList:rn,defaultFileList:dn,onRemove:Cn,showUploadList:on=!0,listType:pt="text",onPreview:mt,onDownload:sn,onChange:Kt,onDrop:tn,previewFile:mn,disabled:fn,locale:kn,iconRender:qn,isImageUrl:ct,progress:dt,prefixCls:It,className:Ct,type:kt="select",children:un,style:nn,itemRender:xn,maxCount:Rn,data:Mr={},multiple:er=!1,action:zn="",accept:Ur="",supportServerRender:pr=!0}=zt,sa=a.useContext(V.Z),Nr=fn!=null?fn:sa,[Zn,In]=(0,_.Z)(dn||[],{value:rn,postState:hn=>hn!=null?hn:[]}),[Pn,rr]=a.useState("drop"),br=a.useRef(null);a.useMemo(()=>{const hn=Date.now();(rn||[]).forEach((Xn,nr)=>{!Xn.uid&&!Object.isFrozen(Xn)&&(Xn.uid=`__AUTO__${hn}_${nr}__`)})},[rn]);const Gr=(hn,Xn,nr)=>{let Wr=(0,t.Z)(Xn),Da=!1;Rn===1?Wr=Wr.slice(-1):Rn&&(Da=Wr.length>Rn,Wr=Wr.slice(0,Rn)),(0,U.flushSync)(()=>{In(Wr)});const oa={file:hn,fileList:Wr};nr&&(oa.event=nr),(!Da||Wr.some(Qr=>Qr.uid===hn.uid))&&(0,U.flushSync)(()=>{Kt==null||Kt(oa)})},na=(hn,Xn)=>Zt(void 0,void 0,void 0,function*(){const{beforeUpload:nr,transformFile:Wr}=zt;let Da=hn;if(nr){const oa=yield nr(hn,Xn);if(oa===!1)return!1;if(delete hn[Ut],oa===Ut)return Object.defineProperty(hn,Ut,{value:!0,configurable:!0}),!1;typeof oa=="object"&&oa&&(Da=oa)}return Wr&&(Da=yield Wr(Da)),Da}),pa=hn=>{const Xn=hn.filter(Da=>!Da.file[Ut]);if(!Xn.length)return;const nr=Xn.map(Da=>ae(Da.file));let Wr=(0,t.Z)(Zn);nr.forEach(Da=>{Wr=Q(Da,Wr)}),nr.forEach((Da,oa)=>{let Qr=Da;if(Xn[oa].parsedFile)Da.status="uploading";else{const{originFileObj:ra}=Da;let jr;try{jr=new File([ra],ra.name,{type:ra.type})}catch($r){jr=new Blob([ra],{type:ra.type}),jr.name=ra.name,jr.lastModifiedDate=new Date,jr.lastModified=new Date().getTime()}jr.uid=Da.uid,Qr=jr}Gr(Qr,Wr)})},cr=(hn,Xn,nr)=>{try{typeof hn=="string"&&(hn=JSON.parse(hn))}catch(oa){}if(!ie(Xn,Zn))return;const Wr=ae(Xn);Wr.status="done",Wr.percent=100,Wr.response=hn,Wr.xhr=nr;const Da=Q(Wr,Zn);Gr(Wr,Da)},Zr=(hn,Xn)=>{if(!ie(Xn,Zn))return;const nr=ae(Xn);nr.status="uploading",nr.percent=hn.percent;const Wr=Q(nr,Zn);Gr(nr,Wr,hn)},Ea=(hn,Xn,nr)=>{if(!ie(nr,Zn))return;const Wr=ae(nr);Wr.error=hn,Wr.response=Xn,Wr.status="error";const Da=Q(Wr,Zn);Gr(Wr,Da)},ha=hn=>{let Xn;Promise.resolve(typeof Cn=="function"?Cn(hn):Cn).then(nr=>{var Wr;if(nr===!1)return;const Da=me(hn,Zn);Da&&(Xn=Object.assign(Object.assign({},hn),{status:"removed"}),Zn==null||Zn.forEach(oa=>{const Qr=Xn.uid!==void 0?"uid":"name";oa[Qr]===Xn[Qr]&&!Object.isFrozen(oa)&&(oa.status="removed")}),(Wr=br.current)===null||Wr===void 0||Wr.abort(Xn),Gr(Xn,Da))})},Wn=hn=>{rr(hn.type),hn.type==="drop"&&(tn==null||tn(hn))};a.useImperativeHandle(qt,()=>({onBatchStart:pa,onSuccess:cr,onProgress:Zr,onError:Ea,fileList:Zn,upload:br.current}));const{getPrefixCls:Fn,direction:hr,upload:Kr}=a.useContext(A.E_),Ar=Fn("upload",It),Pt=Object.assign(Object.assign({onBatchStart:pa,onError:Ea,onProgress:Zr,onSuccess:cr},zt),{data:Mr,multiple:er,action:zn,accept:Ur,supportServerRender:pr,prefixCls:Ar,disabled:Nr,beforeUpload:na,onChange:void 0});delete Pt.className,delete Pt.style,(!un||Nr)&&delete Pt.id;const[an,pn]=et(Ar),[qa]=(0,fe.Z)("Upload",pe.Z.Upload),{showRemoveIcon:Mo,showPreviewIcon:Ua,showDownloadIcon:Wa,removeIcon:Xa,previewIcon:No,downloadIcon:$o}=typeof on=="boolean"?{}:on,So=(hn,Xn)=>on?a.createElement(ke,{prefixCls:Ar,listType:pt,items:Zn,previewFile:mn,onPreview:mt,onDownload:sn,onRemove:ha,showRemoveIcon:!Nr&&Mo,showPreviewIcon:Ua,showDownloadIcon:Wa,removeIcon:Xa,previewIcon:No,downloadIcon:$o,iconRender:qn,locale:Object.assign(Object.assign({},qa),kn),isImageUrl:ct,progress:dt,appendAction:hn,appendActionVisible:Xn,itemRender:xn,disabled:Nr}):hn,ft=s()(`${Ar}-wrapper`,Ct,pn,Kr==null?void 0:Kr.className,{[`${Ar}-rtl`]:hr==="rtl",[`${Ar}-picture-card-wrapper`]:pt==="picture-card",[`${Ar}-picture-circle-wrapper`]:pt==="picture-circle"}),Rt=Object.assign(Object.assign({},Kr==null?void 0:Kr.style),nn);if(kt==="drag"){const hn=s()(pn,Ar,`${Ar}-drag`,{[`${Ar}-drag-uploading`]:Zn.some(Xn=>Xn.status==="uploading"),[`${Ar}-drag-hover`]:Pn==="dragover",[`${Ar}-disabled`]:Nr,[`${Ar}-rtl`]:hr==="rtl"});return an(a.createElement("span",{className:ft},a.createElement("div",{className:hn,style:Rt,onDrop:Wn,onDragOver:Wn,onDragLeave:Wn},a.createElement(O,Object.assign({},Pt,{ref:br,className:`${Ar}-btn`}),a.createElement("div",{className:`${Ar}-drag-container`},un))),So()))}const Ae=s()(Ar,`${Ar}-select`,{[`${Ar}-disabled`]:Nr}),An=(hn=>a.createElement("div",{className:Ae,style:hn},a.createElement(O,Object.assign({},Pt,{ref:br}))))(un?void 0:{display:"none"});return an(pt==="picture-card"||pt==="picture-circle"?a.createElement("span",{className:ft},So(An,!!un)):a.createElement("span",{className:ft},An,So()))};var Mn=a.forwardRef(Jt),gn=function(zt,qt){var rn={};for(var dn in zt)Object.prototype.hasOwnProperty.call(zt,dn)&&qt.indexOf(dn)<0&&(rn[dn]=zt[dn]);if(zt!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Cn=0,dn=Object.getOwnPropertySymbols(zt);Cn{var{style:rn,height:dn}=zt,Cn=gn(zt,["style","height"]);return a.createElement(Mn,Object.assign({ref:qt},Cn,{type:"drag",style:Object.assign(Object.assign({},rn),{height:dn})}))});const ar=Mn;ar.Dragger=Gn,ar.LIST_IGNORE=Ut;var gr=ar},93430:function(b,y,e){"use strict";e.d(y,{Z:function(){return t}});var a="5.8.5",t=a},78635:function(b,y,e){"use strict";e.d(y,{Z:function(){return H}});var a=e(73656);function t(){return t=Object.assign?Object.assign.bind():function(R){for(var P=1;P1?P-1:0),Q=1;Q=me)return Ce;switch(Ce){case"%s":return String(ae[ie++]);case"%d":return Number(ae[ie++]);case"%j":try{return JSON.stringify(ae[ie++])}catch(Se){return"[Circular]"}break;default:return Ce}});return je}return R}function w(R){return R==="string"||R==="url"||R==="hex"||R==="email"||R==="date"||R==="pattern"}function C(R,P){return!!(R==null||P==="array"&&Array.isArray(R)&&!R.length||w(P)&&typeof R=="string"&&!R)}function z(R,P,ae){var Q=[],ie=0,me=R.length;function je(Ce){Q.push.apply(Q,Ce||[]),ie++,ie===me&&ae(Q)}R.forEach(function(Ce){P(Ce,je)})}function Z(R,P,ae){var Q=0,ie=R.length;function me(je){if(je&&je.length){ae(je);return}var Ce=Q;Q=Q+1,Ce()\[\]\\.,;:\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,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},X={integer:function(P){return X.number(P)&&parseInt(P,10)===P},float:function(P){return X.number(P)&&!X.integer(P)},array:function(P){return Array.isArray(P)},regexp:function(P){if(P instanceof RegExp)return!0;try{return!!new RegExp(P)}catch(ae){return!1}},date:function(P){return typeof P.getTime=="function"&&typeof P.getMonth=="function"&&typeof P.getYear=="function"&&!isNaN(P.getTime())},number:function(P){return isNaN(P)?!1:typeof P=="number"},object:function(P){return typeof P=="object"&&!X.array(P)},method:function(P){return typeof P=="function"},email:function(P){return typeof P=="string"&&P.length<=320&&!!P.match(le.email)},url:function(P){return typeof P=="string"&&P.length<=2048&&!!P.match(q())},hex:function(P){return typeof P=="string"&&!!P.match(le.hex)}},W=function(P,ae,Q,ie,me){if(P.required&&ae===void 0){k(P,ae,Q,ie,me);return}var je=["integer","float","array","regexp","object","method","email","number","date","url","hex"],Ce=P.type;je.indexOf(Ce)>-1?X[Ce](ae)||ie.push(S(me.messages.types[Ce],P.fullField,P.type)):Ce&&typeof ae!==P.type&&ie.push(S(me.messages.types[Ce],P.fullField,P.type))},x=function(P,ae,Q,ie,me){var je=typeof P.len=="number",Ce=typeof P.min=="number",Se=typeof P.max=="number",We=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,re=ae,se=null,J=typeof ae=="number",de=typeof ae=="string",xe=Array.isArray(ae);if(J?se="number":de?se="string":xe&&(se="array"),!se)return!1;xe&&(re=ae.length),de&&(re=ae.replace(We,"_").length),je?re!==P.len&&ie.push(S(me.messages[se].len,P.fullField,P.len)):Ce&&!Se&&reP.max?ie.push(S(me.messages[se].max,P.fullField,P.max)):Ce&&Se&&(reP.max)&&ie.push(S(me.messages[se].range,P.fullField,P.min,P.max))},O="enum",_=function(P,ae,Q,ie,me){P[O]=Array.isArray(P[O])?P[O]:[],P[O].indexOf(ae)===-1&&ie.push(S(me.messages[O],P.fullField,P[O].join(", ")))},U=function(P,ae,Q,ie,me){if(P.pattern){if(P.pattern instanceof RegExp)P.pattern.lastIndex=0,P.pattern.test(ae)||ie.push(S(me.messages.pattern.mismatch,P.fullField,ae,P.pattern));else if(typeof P.pattern=="string"){var je=new RegExp(P.pattern);je.test(ae)||ie.push(S(me.messages.pattern.mismatch,P.fullField,ae,P.pattern))}}},A={required:k,whitespace:te,type:W,range:x,enum:_,pattern:U},V=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(C(ae,"string")&&!P.required)return Q();A.required(P,ae,ie,je,me,"string"),C(ae,"string")||(A.type(P,ae,ie,je,me),A.range(P,ae,ie,je,me),A.pattern(P,ae,ie,je,me),P.whitespace===!0&&A.whitespace(P,ae,ie,je,me))}Q(je)},fe=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(C(ae)&&!P.required)return Q();A.required(P,ae,ie,je,me),ae!==void 0&&A.type(P,ae,ie,je,me)}Q(je)},pe=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(ae===""&&(ae=void 0),C(ae)&&!P.required)return Q();A.required(P,ae,ie,je,me),ae!==void 0&&(A.type(P,ae,ie,je,me),A.range(P,ae,ie,je,me))}Q(je)},ge=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(C(ae)&&!P.required)return Q();A.required(P,ae,ie,je,me),ae!==void 0&&A.type(P,ae,ie,je,me)}Q(je)},be=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(C(ae)&&!P.required)return Q();A.required(P,ae,ie,je,me),C(ae)||A.type(P,ae,ie,je,me)}Q(je)},Te=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(C(ae)&&!P.required)return Q();A.required(P,ae,ie,je,me),ae!==void 0&&(A.type(P,ae,ie,je,me),A.range(P,ae,ie,je,me))}Q(je)},Ge=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(C(ae)&&!P.required)return Q();A.required(P,ae,ie,je,me),ae!==void 0&&(A.type(P,ae,ie,je,me),A.range(P,ae,ie,je,me))}Q(je)},qe=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(ae==null&&!P.required)return Q();A.required(P,ae,ie,je,me,"array"),ae!=null&&(A.type(P,ae,ie,je,me),A.range(P,ae,ie,je,me))}Q(je)},Qe=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(C(ae)&&!P.required)return Q();A.required(P,ae,ie,je,me),ae!==void 0&&A.type(P,ae,ie,je,me)}Q(je)},ht="enum",Et=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(C(ae)&&!P.required)return Q();A.required(P,ae,ie,je,me),ae!==void 0&&A[ht](P,ae,ie,je,me)}Q(je)},gt=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(C(ae,"string")&&!P.required)return Q();A.required(P,ae,ie,je,me),C(ae,"string")||A.pattern(P,ae,ie,je,me)}Q(je)},Ht=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(C(ae,"date")&&!P.required)return Q();if(A.required(P,ae,ie,je,me),!C(ae,"date")){var Se;ae instanceof Date?Se=ae:Se=new Date(ae),A.type(P,Se,ie,je,me),Se&&A.range(P,Se.getTime(),ie,je,me)}}Q(je)},$e=function(P,ae,Q,ie,me){var je=[],Ce=Array.isArray(ae)?"array":typeof ae;A.required(P,ae,ie,je,me,Ce),Q(je)},Xe=function(P,ae,Q,ie,me){var je=P.type,Ce=[],Se=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Se){if(C(ae,je)&&!P.required)return Q();A.required(P,ae,ie,Ce,me,je),C(ae,je)||A.type(P,ae,ie,Ce,me)}Q(Ce)},rt=function(P,ae,Q,ie,me){var je=[],Ce=P.required||!P.required&&ie.hasOwnProperty(P.field);if(Ce){if(C(ae)&&!P.required)return Q();A.required(P,ae,ie,je,me)}Q(je)},Ke={string:V,method:fe,number:pe,boolean:ge,regexp:be,integer:Te,float:Ge,array:qe,object:Qe,enum:Et,pattern:gt,date:Ht,url:Xe,hex:Xe,email:Xe,required:$e,any:rt};function ye(){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 P=JSON.parse(JSON.stringify(this));return P.clone=this.clone,P}}}var ne=ye(),H=function(){function R(ae){this.rules=null,this._messages=ne,this.define(ae)}var P=R.prototype;return P.define=function(Q){var ie=this;if(!Q)throw new Error("Cannot configure a schema with no rules");if(typeof Q!="object"||Array.isArray(Q))throw new Error("Rules must be an object");this.rules={},Object.keys(Q).forEach(function(me){var je=Q[me];ie.rules[me]=Array.isArray(je)?je:[je]})},P.messages=function(Q){return Q&&(this._messages=G(ye(),Q)),this._messages},P.validate=function(Q,ie,me){var je=this;ie===void 0&&(ie={}),me===void 0&&(me=function(){});var Ce=Q,Se=ie,We=me;if(typeof Se=="function"&&(We=Se,Se={}),!this.rules||Object.keys(this.rules).length===0)return We&&We(null,Ce),Promise.resolve(Ce);function re(ce){var Ne=[],Oe={};function we(st){if(Array.isArray(st)){var tt;Ne=(tt=Ne).concat.apply(tt,st)}else Ne.push(st)}for(var Re=0;Re=200&&S<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};t.forEach(["delete","get","head"],function(S){M.headers[S]={}}),t.forEach(["post","put","patch"],function(S){M.headers[S]=t.merge(l)}),b.exports=M},30872:function(b){"use strict";b.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}},93424:function(b){b.exports={version:"0.27.2"}},22154:function(b){"use strict";b.exports=function(e,a){return function(){for(var o=new Array(arguments.length),s=0;s=0)return;d==="set-cookie"?n[d]=(n[d]?n[d]:[]).concat([l]):n[d]=n[d]?n[d]+", "+l:l}}),n}},17437:function(b){"use strict";b.exports=function(e){var a=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return a&&a[1]||""}},64476:function(b){"use strict";b.exports=function(e){return function(t){return e.apply(null,t)}}},90792:function(b,y,e){"use strict";var a=e(21468).lW,t=e(82774);function o(s,n){n=n||new FormData;var d=[];function l(m){return m===null?"":t.isDate(m)?m.toISOString():t.isArrayBuffer(m)||t.isTypedArray(m)?typeof Blob=="function"?new Blob([m]):a.from(m):m}function c(m,g){if(t.isPlainObject(m)||t.isArray(m)){if(d.indexOf(m)!==-1)throw Error("Circular reference detected in "+g);d.push(m),t.forEach(m,function(h,S){if(!t.isUndefined(h)){var w=g?g+"."+S:S,C;if(h&&!g&&typeof h=="object"){if(t.endsWith(S,"{}"))h=JSON.stringify(h);else if(t.endsWith(S,"[]")&&(C=t.toArray(h))){C.forEach(function(z){!t.isUndefined(z)&&n.append(w,l(z))});return}}c(h,w)}}),d.pop()}else n.append(g,l(m))}return c(s),n}b.exports=o},73215:function(b,y,e){"use strict";var a=e(93424).version,t=e(44936),o={};["object","boolean","number","function","string","symbol"].forEach(function(d,l){o[d]=function(m){return typeof m===d||"a"+(l<1?"n ":" ")+d}});var s={};o.transitional=function(l,c,m){function g(M,h){return"[Axios v"+a+"] Transitional option '"+M+"'"+h+(m?". "+m:"")}return function(M,h,S){if(l===!1)throw new t(g(h," has been removed"+(c?" in "+c:"")),t.ERR_DEPRECATED);return c&&!s[h]&&(s[h]=!0,console.warn(g(h," has been deprecated since v"+c+" and will be removed in the near future"))),l?l(M,h,S):!0}};function n(d,l,c){if(typeof d!="object")throw new t("options must be an object",t.ERR_BAD_OPTION_VALUE);for(var m=Object.keys(d),g=m.length;g-- >0;){var M=m[g],h=l[M];if(h){var S=d[M],w=S===void 0||h(S,M,d);if(w!==!0)throw new t("option "+M+" must be "+w,t.ERR_BAD_OPTION_VALUE);continue}if(c!==!0)throw new t("Unknown option "+M,t.ERR_BAD_OPTION)}}b.exports={assertOptions:n,validators:o}},82774:function(b,y,e){"use strict";var a=e(22154),t=Object.prototype.toString,o=function(O){return function(_){var U=t.call(_);return O[U]||(O[U]=U.slice(8,-1).toLowerCase())}}(Object.create(null));function s(O){return O=O.toLowerCase(),function(U){return o(U)===O}}function n(O){return Array.isArray(O)}function d(O){return typeof O=="undefined"}function l(O){return O!==null&&!d(O)&&O.constructor!==null&&!d(O.constructor)&&typeof O.constructor.isBuffer=="function"&&O.constructor.isBuffer(O)}var c=s("ArrayBuffer");function m(O){var _;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?_=ArrayBuffer.isView(O):_=O&&O.buffer&&c(O.buffer),_}function g(O){return typeof O=="string"}function M(O){return typeof O=="number"}function h(O){return O!==null&&typeof O=="object"}function S(O){if(o(O)!=="object")return!1;var _=Object.getPrototypeOf(O);return _===null||_===Object.prototype}var w=s("Date"),C=s("File"),z=s("Blob"),Z=s("FileList");function N(O){return t.call(O)==="[object Function]"}function L(O){return h(O)&&N(O.pipe)}function $(O){var _="[object FormData]";return O&&(typeof FormData=="function"&&O instanceof FormData||t.call(O)===_||N(O.toString)&&O.toString()===_)}var D=s("URLSearchParams");function T(O){return O.trim?O.trim():O.replace(/^\s+|\s+$/g,"")}function j(){return typeof navigator!="undefined"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window!="undefined"&&typeof document!="undefined"}function G(O,_){if(!(O===null||typeof O=="undefined"))if(typeof O!="object"&&(O=[O]),n(O))for(var U=0,A=O.length;U0;)fe=A[V],pe[fe]||(_[fe]=O[fe],pe[fe]=!0);O=Object.getPrototypeOf(O)}while(O&&(!U||U(O,_))&&O!==Object.prototype);return _}function X(O,_,U){O=String(O),(U===void 0||U>O.length)&&(U=O.length),U-=_.length;var A=O.indexOf(_,U);return A!==-1&&A===U}function W(O){if(!O)return null;var _=O.length;if(d(_))return null;for(var U=new Array(_);_-- >0;)U[_]=O[_];return U}var x=function(O){return function(_){return O&&_ instanceof O}}(typeof Uint8Array!="undefined"&&Object.getPrototypeOf(Uint8Array));b.exports={isArray:n,isArrayBuffer:c,isBuffer:l,isFormData:$,isArrayBufferView:m,isString:g,isNumber:M,isObject:h,isPlainObject:S,isUndefined:d,isDate:w,isFile:C,isBlob:z,isFunction:N,isStream:L,isURLSearchParams:D,isStandardBrowserEnv:j,forEach:G,merge:k,extend:te,trim:T,stripBOM:Y,inherits:q,toFlatObject:le,kindOf:o,kindOfTest:s,endsWith:X,toArray:W,isTypedArray:x,isFileList:Z}},26446:function(b,y){"use strict";y.byteLength=l,y.toByteArray=m,y.fromByteArray=h;for(var e=[],a=[],t=typeof Uint8Array!="undefined"?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,n=o.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var C=S.indexOf("=");C===-1&&(C=w);var z=C===w?0:4-C%4;return[C,z]}function l(S){var w=d(S),C=w[0],z=w[1];return(C+z)*3/4-z}function c(S,w,C){return(w+C)*3/4-C}function m(S){var w,C=d(S),z=C[0],Z=C[1],N=new t(c(S,z,Z)),L=0,$=Z>0?z-4:z,D;for(D=0;D<$;D+=4)w=a[S.charCodeAt(D)]<<18|a[S.charCodeAt(D+1)]<<12|a[S.charCodeAt(D+2)]<<6|a[S.charCodeAt(D+3)],N[L++]=w>>16&255,N[L++]=w>>8&255,N[L++]=w&255;return Z===2&&(w=a[S.charCodeAt(D)]<<2|a[S.charCodeAt(D+1)]>>4,N[L++]=w&255),Z===1&&(w=a[S.charCodeAt(D)]<<10|a[S.charCodeAt(D+1)]<<4|a[S.charCodeAt(D+2)]>>2,N[L++]=w>>8&255,N[L++]=w&255),N}function g(S){return e[S>>18&63]+e[S>>12&63]+e[S>>6&63]+e[S&63]}function M(S,w,C){for(var z,Z=[],N=w;N$?$:L+N));return z===1?(w=S[C-1],Z.push(e[w>>2]+e[w<<4&63]+"==")):z===2&&(w=(S[C-2]<<8)+S[C-1],Z.push(e[w>>10]+e[w>>4&63]+e[w<<2&63]+"=")),Z.join("")}},21468:function(b,y,e){"use strict";var a;var t=e(26446),o=e(47164),s=e(23161);y.lW=c,a=N,y.h2=50,c.TYPED_ARRAY_SUPPORT=e.g.TYPED_ARRAY_SUPPORT!==void 0?e.g.TYPED_ARRAY_SUPPORT:n(),a=d();function n(){try{var ne=new Uint8Array(1);return ne.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},ne.foo()===42&&typeof ne.subarray=="function"&&ne.subarray(1,1).byteLength===0}catch(H){return!1}}function d(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function l(ne,H){if(d()=d())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+d().toString(16)+" bytes");return ne|0}function N(ne){return+ne!=ne&&(ne=0),c.alloc(+ne)}c.isBuffer=function(H){return!!(H!=null&&H._isBuffer)},c.compare=function(H,R){if(!c.isBuffer(H)||!c.isBuffer(R))throw new TypeError("Arguments must be Buffers");if(H===R)return 0;for(var P=H.length,ae=R.length,Q=0,ie=Math.min(P,ae);Q>>1;case"base64":return rt(ne).length;default:if(P)return Ht(ne).length;H=(""+H).toLowerCase(),P=!0}}c.byteLength=L;function $(ne,H,R){var P=!1;if((H===void 0||H<0)&&(H=0),H>this.length||((R===void 0||R>this.length)&&(R=this.length),R<=0)||(R>>>=0,H>>>=0,R<=H))return"";for(ne||(ne="utf8");;)switch(ne){case"hex":return A(this,H,R);case"utf8":case"utf-8":return W(this,H,R);case"ascii":return _(this,H,R);case"latin1":case"binary":return U(this,H,R);case"base64":return X(this,H,R);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return V(this,H,R);default:if(P)throw new TypeError("Unknown encoding: "+ne);ne=(ne+"").toLowerCase(),P=!0}}c.prototype._isBuffer=!0;function D(ne,H,R){var P=ne[H];ne[H]=ne[R],ne[R]=P}c.prototype.swap16=function(){var H=this.length;if(H%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var R=0;R0&&(H=this.toString("hex",0,R).match(/.{2}/g).join(" "),this.length>R&&(H+=" ... ")),""},c.prototype.compare=function(H,R,P,ae,Q){if(!c.isBuffer(H))throw new TypeError("Argument must be a Buffer");if(R===void 0&&(R=0),P===void 0&&(P=H?H.length:0),ae===void 0&&(ae=0),Q===void 0&&(Q=this.length),R<0||P>H.length||ae<0||Q>this.length)throw new RangeError("out of range index");if(ae>=Q&&R>=P)return 0;if(ae>=Q)return-1;if(R>=P)return 1;if(R>>>=0,P>>>=0,ae>>>=0,Q>>>=0,this===H)return 0;for(var ie=Q-ae,me=P-R,je=Math.min(ie,me),Ce=this.slice(ae,Q),Se=H.slice(R,P),We=0;We2147483647?R=2147483647:R<-2147483648&&(R=-2147483648),R=+R,isNaN(R)&&(R=ae?0:ne.length-1),R<0&&(R=ne.length+R),R>=ne.length){if(ae)return-1;R=ne.length-1}else if(R<0)if(ae)R=0;else return-1;if(typeof H=="string"&&(H=c.from(H,P)),c.isBuffer(H))return H.length===0?-1:j(ne,H,R,P,ae);if(typeof H=="number")return H=H&255,c.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?ae?Uint8Array.prototype.indexOf.call(ne,H,R):Uint8Array.prototype.lastIndexOf.call(ne,H,R):j(ne,[H],R,P,ae);throw new TypeError("val must be string, number or Buffer")}function j(ne,H,R,P,ae){var Q=1,ie=ne.length,me=H.length;if(P!==void 0&&(P=String(P).toLowerCase(),P==="ucs2"||P==="ucs-2"||P==="utf16le"||P==="utf-16le")){if(ne.length<2||H.length<2)return-1;Q=2,ie/=2,me/=2,R/=2}function je(se,J){return Q===1?se[J]:se.readUInt16BE(J*Q)}var Ce;if(ae){var Se=-1;for(Ce=R;Ceie&&(R=ie-me),Ce=R;Ce>=0;Ce--){for(var We=!0,re=0;reae&&(P=ae)):P=ae;var Q=H.length;if(Q%2!==0)throw new TypeError("Invalid hex string");P>Q/2&&(P=Q/2);for(var ie=0;ieQ)&&(P=Q),H.length>0&&(P<0||R<0)||R>this.length)throw new RangeError("Attempt to write outside buffer bounds");ae||(ae="utf8");for(var ie=!1;;)switch(ae){case"hex":return G(this,H,R,P);case"utf8":case"utf-8":return k(this,H,R,P);case"ascii":return te(this,H,R,P);case"latin1":case"binary":return Y(this,H,R,P);case"base64":return q(this,H,R,P);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return le(this,H,R,P);default:if(ie)throw new TypeError("Unknown encoding: "+ae);ae=(""+ae).toLowerCase(),ie=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function X(ne,H,R){return H===0&&R===ne.length?t.fromByteArray(ne):t.fromByteArray(ne.slice(H,R))}function W(ne,H,R){R=Math.min(ne.length,R);for(var P=[],ae=H;ae239?4:Q>223?3:Q>191?2:1;if(ae+me<=R){var je,Ce,Se,We;switch(me){case 1:Q<128&&(ie=Q);break;case 2:je=ne[ae+1],(je&192)===128&&(We=(Q&31)<<6|je&63,We>127&&(ie=We));break;case 3:je=ne[ae+1],Ce=ne[ae+2],(je&192)===128&&(Ce&192)===128&&(We=(Q&15)<<12|(je&63)<<6|Ce&63,We>2047&&(We<55296||We>57343)&&(ie=We));break;case 4:je=ne[ae+1],Ce=ne[ae+2],Se=ne[ae+3],(je&192)===128&&(Ce&192)===128&&(Se&192)===128&&(We=(Q&15)<<18|(je&63)<<12|(Ce&63)<<6|Se&63,We>65535&&We<1114112&&(ie=We))}}ie===null?(ie=65533,me=1):ie>65535&&(ie-=65536,P.push(ie>>>10&1023|55296),ie=56320|ie&1023),P.push(ie),ae+=me}return O(P)}var x=4096;function O(ne){var H=ne.length;if(H<=x)return String.fromCharCode.apply(String,ne);for(var R="",P=0;PP)&&(R=P);for(var ae="",Q=H;QP&&(H=P),R<0?(R+=P,R<0&&(R=0)):R>P&&(R=P),RR)throw new RangeError("Trying to access beyond buffer length")}c.prototype.readUIntLE=function(H,R,P){H=H|0,R=R|0,P||fe(H,R,this.length);for(var ae=this[H],Q=1,ie=0;++ie0&&(Q*=256);)ae+=this[H+--R]*Q;return ae},c.prototype.readUInt8=function(H,R){return R||fe(H,1,this.length),this[H]},c.prototype.readUInt16LE=function(H,R){return R||fe(H,2,this.length),this[H]|this[H+1]<<8},c.prototype.readUInt16BE=function(H,R){return R||fe(H,2,this.length),this[H]<<8|this[H+1]},c.prototype.readUInt32LE=function(H,R){return R||fe(H,4,this.length),(this[H]|this[H+1]<<8|this[H+2]<<16)+this[H+3]*16777216},c.prototype.readUInt32BE=function(H,R){return R||fe(H,4,this.length),this[H]*16777216+(this[H+1]<<16|this[H+2]<<8|this[H+3])},c.prototype.readIntLE=function(H,R,P){H=H|0,R=R|0,P||fe(H,R,this.length);for(var ae=this[H],Q=1,ie=0;++ie=Q&&(ae-=Math.pow(2,8*R)),ae},c.prototype.readIntBE=function(H,R,P){H=H|0,R=R|0,P||fe(H,R,this.length);for(var ae=R,Q=1,ie=this[H+--ae];ae>0&&(Q*=256);)ie+=this[H+--ae]*Q;return Q*=128,ie>=Q&&(ie-=Math.pow(2,8*R)),ie},c.prototype.readInt8=function(H,R){return R||fe(H,1,this.length),this[H]&128?(255-this[H]+1)*-1:this[H]},c.prototype.readInt16LE=function(H,R){R||fe(H,2,this.length);var P=this[H]|this[H+1]<<8;return P&32768?P|4294901760:P},c.prototype.readInt16BE=function(H,R){R||fe(H,2,this.length);var P=this[H+1]|this[H]<<8;return P&32768?P|4294901760:P},c.prototype.readInt32LE=function(H,R){return R||fe(H,4,this.length),this[H]|this[H+1]<<8|this[H+2]<<16|this[H+3]<<24},c.prototype.readInt32BE=function(H,R){return R||fe(H,4,this.length),this[H]<<24|this[H+1]<<16|this[H+2]<<8|this[H+3]},c.prototype.readFloatLE=function(H,R){return R||fe(H,4,this.length),o.read(this,H,!0,23,4)},c.prototype.readFloatBE=function(H,R){return R||fe(H,4,this.length),o.read(this,H,!1,23,4)},c.prototype.readDoubleLE=function(H,R){return R||fe(H,8,this.length),o.read(this,H,!0,52,8)},c.prototype.readDoubleBE=function(H,R){return R||fe(H,8,this.length),o.read(this,H,!1,52,8)};function pe(ne,H,R,P,ae,Q){if(!c.isBuffer(ne))throw new TypeError('"buffer" argument must be a Buffer instance');if(H>ae||Hne.length)throw new RangeError("Index out of range")}c.prototype.writeUIntLE=function(H,R,P,ae){if(H=+H,R=R|0,P=P|0,!ae){var Q=Math.pow(2,8*P)-1;pe(this,H,R,P,Q,0)}var ie=1,me=0;for(this[R]=H&255;++me=0&&(me*=256);)this[R+ie]=H/me&255;return R+P},c.prototype.writeUInt8=function(H,R,P){return H=+H,R=R|0,P||pe(this,H,R,1,255,0),c.TYPED_ARRAY_SUPPORT||(H=Math.floor(H)),this[R]=H&255,R+1};function ge(ne,H,R,P){H<0&&(H=65535+H+1);for(var ae=0,Q=Math.min(ne.length-R,2);ae>>(P?ae:1-ae)*8}c.prototype.writeUInt16LE=function(H,R,P){return H=+H,R=R|0,P||pe(this,H,R,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[R]=H&255,this[R+1]=H>>>8):ge(this,H,R,!0),R+2},c.prototype.writeUInt16BE=function(H,R,P){return H=+H,R=R|0,P||pe(this,H,R,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[R]=H>>>8,this[R+1]=H&255):ge(this,H,R,!1),R+2};function be(ne,H,R,P){H<0&&(H=4294967295+H+1);for(var ae=0,Q=Math.min(ne.length-R,4);ae>>(P?ae:3-ae)*8&255}c.prototype.writeUInt32LE=function(H,R,P){return H=+H,R=R|0,P||pe(this,H,R,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[R+3]=H>>>24,this[R+2]=H>>>16,this[R+1]=H>>>8,this[R]=H&255):be(this,H,R,!0),R+4},c.prototype.writeUInt32BE=function(H,R,P){return H=+H,R=R|0,P||pe(this,H,R,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[R]=H>>>24,this[R+1]=H>>>16,this[R+2]=H>>>8,this[R+3]=H&255):be(this,H,R,!1),R+4},c.prototype.writeIntLE=function(H,R,P,ae){if(H=+H,R=R|0,!ae){var Q=Math.pow(2,8*P-1);pe(this,H,R,P,Q-1,-Q)}var ie=0,me=1,je=0;for(this[R]=H&255;++ie>0)-je&255;return R+P},c.prototype.writeIntBE=function(H,R,P,ae){if(H=+H,R=R|0,!ae){var Q=Math.pow(2,8*P-1);pe(this,H,R,P,Q-1,-Q)}var ie=P-1,me=1,je=0;for(this[R+ie]=H&255;--ie>=0&&(me*=256);)H<0&&je===0&&this[R+ie+1]!==0&&(je=1),this[R+ie]=(H/me>>0)-je&255;return R+P},c.prototype.writeInt8=function(H,R,P){return H=+H,R=R|0,P||pe(this,H,R,1,127,-128),c.TYPED_ARRAY_SUPPORT||(H=Math.floor(H)),H<0&&(H=255+H+1),this[R]=H&255,R+1},c.prototype.writeInt16LE=function(H,R,P){return H=+H,R=R|0,P||pe(this,H,R,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[R]=H&255,this[R+1]=H>>>8):ge(this,H,R,!0),R+2},c.prototype.writeInt16BE=function(H,R,P){return H=+H,R=R|0,P||pe(this,H,R,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[R]=H>>>8,this[R+1]=H&255):ge(this,H,R,!1),R+2},c.prototype.writeInt32LE=function(H,R,P){return H=+H,R=R|0,P||pe(this,H,R,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[R]=H&255,this[R+1]=H>>>8,this[R+2]=H>>>16,this[R+3]=H>>>24):be(this,H,R,!0),R+4},c.prototype.writeInt32BE=function(H,R,P){return H=+H,R=R|0,P||pe(this,H,R,4,2147483647,-2147483648),H<0&&(H=4294967295+H+1),c.TYPED_ARRAY_SUPPORT?(this[R]=H>>>24,this[R+1]=H>>>16,this[R+2]=H>>>8,this[R+3]=H&255):be(this,H,R,!1),R+4};function Te(ne,H,R,P,ae,Q){if(R+P>ne.length)throw new RangeError("Index out of range");if(R<0)throw new RangeError("Index out of range")}function Ge(ne,H,R,P,ae){return ae||Te(ne,H,R,4,34028234663852886e22,-34028234663852886e22),o.write(ne,H,R,P,23,4),R+4}c.prototype.writeFloatLE=function(H,R,P){return Ge(this,H,R,!0,P)},c.prototype.writeFloatBE=function(H,R,P){return Ge(this,H,R,!1,P)};function qe(ne,H,R,P,ae){return ae||Te(ne,H,R,8,17976931348623157e292,-17976931348623157e292),o.write(ne,H,R,P,52,8),R+8}c.prototype.writeDoubleLE=function(H,R,P){return qe(this,H,R,!0,P)},c.prototype.writeDoubleBE=function(H,R,P){return qe(this,H,R,!1,P)},c.prototype.copy=function(H,R,P,ae){if(P||(P=0),!ae&&ae!==0&&(ae=this.length),R>=H.length&&(R=H.length),R||(R=0),ae>0&&ae=this.length)throw new RangeError("sourceStart out of bounds");if(ae<0)throw new RangeError("sourceEnd out of bounds");ae>this.length&&(ae=this.length),H.length-R=0;--ie)H[ie+R]=this[ie+P];else if(Q<1e3||!c.TYPED_ARRAY_SUPPORT)for(ie=0;ie>>0,P=P===void 0?this.length:P>>>0,H||(H=0);var ie;if(typeof H=="number")for(ie=R;ie55295&&R<57344){if(!ae){if(R>56319){(H-=3)>-1&&Q.push(239,191,189);continue}else if(ie+1===P){(H-=3)>-1&&Q.push(239,191,189);continue}ae=R;continue}if(R<56320){(H-=3)>-1&&Q.push(239,191,189),ae=R;continue}R=(ae-55296<<10|R-56320)+65536}else ae&&(H-=3)>-1&&Q.push(239,191,189);if(ae=null,R<128){if((H-=1)<0)break;Q.push(R)}else if(R<2048){if((H-=2)<0)break;Q.push(R>>6|192,R&63|128)}else if(R<65536){if((H-=3)<0)break;Q.push(R>>12|224,R>>6&63|128,R&63|128)}else if(R<1114112){if((H-=4)<0)break;Q.push(R>>18|240,R>>12&63|128,R>>6&63|128,R&63|128)}else throw new Error("Invalid code point")}return Q}function $e(ne){for(var H=[],R=0;R>8,ae=R%256,Q.push(ae),Q.push(P);return Q}function rt(ne){return t.toByteArray(ht(ne))}function Ke(ne,H,R,P){for(var ae=0;ae=H.length||ae>=ne.length);++ae)H[ae+R]=ne[ae];return ae}function ye(ne){return ne!==ne}},87608:function(b,y){var e,a;(function(){"use strict";var t={}.hasOwnProperty,o="[native code]";function s(){for(var n=[],d=0;d1?arguments[1]:void 0,k=j>2?arguments[2]:void 0;return new(M("Promise"))(function(te){var Y=o(D);G!==void 0&&(G=a(G,k));var q=m(Y,C),le=q?void 0:c(Y)||N,X=s(T)?new T:[],W=q?n(Y,q):new S(l(d(Y,le)));te(w(W,G,X))})}},50112:function(b,y,e){var a=e(89122);b.exports=function(t,o){for(var s=0,n=a(o),d=new t(n);n>s;)d[s]=o[s++];return d}},59765:function(b,y,e){"use strict";var a=e(34066),t=e(11700),o=e(42414),s=e(64441),n=e(89122),d=e(85623),l=d.Map,c=d.get,m=d.has,g=d.set,M=t([].push);b.exports=function(S){for(var w=s(this),C=o(w),z=a(S,arguments.length>1?arguments[1]:void 0),Z=new l,N=n(C),L=0,$,D;N>L;L++)D=C[L],$=z(D,L,w),m(Z,$)?M(c(Z,$),D):g(Z,$,[D]);return Z}},69093:function(b,y,e){var a=e(34066),t=e(11700),o=e(42414),s=e(64441),n=e(76846),d=e(89122),l=e(34552),c=e(50112),m=Array,g=t([].push);b.exports=function(M,h,S,w){for(var C=s(M),z=o(C),Z=a(h,S),N=l(null),L=d(z),$=0,D,T,j;L>$;$++)j=z[$],T=n(Z(j,$,C)),T in N?g(N[T],j):N[T]=[j];if(w&&(D=w(C),D!==m))for(T in N)N[T]=c(D,N[T]);return N}},63795:function(b,y,e){var a=e(514),t=e(71410),o=e(89122),s=function(n){return function(d,l,c){var m=a(d),g=o(m),M=t(c,g),h;if(n&&l!=l){for(;g>M;)if(h=m[M++],h!=h)return!0}else for(;g>M;M++)if((n||M in m)&&m[M]===l)return n||M||0;return!n&&-1}};b.exports={includes:s(!0),indexOf:s(!1)}},17464:function(b,y,e){var a=e(34066),t=e(42414),o=e(64441),s=e(89122),n=function(d){var l=d==1;return function(c,m,g){for(var M=o(c),h=t(M),S=a(m,g),w=s(h),C,z;w-- >0;)if(C=h[w],z=S(C,w,M),z)switch(d){case 0:return C;case 1:return w}return l?-1:void 0}};b.exports={findLast:n(0),findLastIndex:n(1)}},44708:function(b,y,e){var a=e(34066),t=e(11700),o=e(42414),s=e(64441),n=e(89122),d=e(70850),l=t([].push),c=function(m){var g=m==1,M=m==2,h=m==3,S=m==4,w=m==6,C=m==7,z=m==5||w;return function(Z,N,L,$){for(var D=s(Z),T=o(D),j=a(N,L),G=n(T),k=0,te=$||d,Y=g?te(Z,G):M||C?te(Z,0):void 0,q,le;G>k;k++)if((z||k in T)&&(q=T[k],le=j(q,k,D),m))if(g)Y[k]=le;else if(le)switch(m){case 3:return!0;case 5:return q;case 6:return k;case 2:l(Y,q)}else switch(m){case 4:return!1;case 7:l(Y,q)}return w?-1:h||S?S:Y}};b.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterReject:c(7)}},83242:function(b,y,e){"use strict";var a=e(77149);b.exports=function(t,o){var s=[][t];return!!s&&a(function(){s.call(null,o||function(){return 1},1)})}},82565:function(b,y,e){var a=e(31927),t=e(64441),o=e(42414),s=e(89122),n=TypeError,d=function(l){return function(c,m,g,M){a(m);var h=t(c),S=o(h),w=s(h),C=l?w-1:0,z=l?-1:1;if(g<2)for(;;){if(C in S){M=S[C],C+=z;break}if(C+=z,l?C<0:w<=C)throw n("Reduce of empty array with no initial value")}for(;l?C>=0:w>C;C+=z)C in S&&(M=m(M,S[C],C,h));return M}};b.exports={left:d(!1),right:d(!0)}},77060:function(b,y,e){"use strict";var a=e(57759),t=e(190),o=TypeError,s=Object.getOwnPropertyDescriptor,n=a&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(d){return d instanceof TypeError}}();b.exports=n?function(d,l){if(t(d)&&!s(d,"length").writable)throw o("Cannot set read only .length");return d.length=l}:function(d,l){return d.length=l}},81469:function(b,y,e){var a=e(71410),t=e(89122),o=e(46509),s=Array,n=Math.max;b.exports=function(d,l,c){for(var m=t(d),g=a(l,m),M=a(c===void 0?m:c,m),h=s(n(M-g,0)),S=0;g=c||g<0)throw o("Incorrect index");for(var M=new n(c),h=0;h1?arguments[1]:void 0,h,S,w,C;return s(this),h=M!==void 0,h&&o(M),n(m)?new this:(S=[],h?(w=0,C=a(M,g>2?arguments[2]:void 0),d(m,function(z){t(l,S,C(z,w++))})):d(m,l,{that:S}),new this(S))}},55042:function(b,y,e){"use strict";var a=e(66322);b.exports=function(){return new this(a(arguments))}},42710:function(b,y,e){"use strict";var a=e(34552),t=e(2265),o=e(3313),s=e(34066),n=e(92453),d=e(74883),l=e(95815),c=e(94636),m=e(76835),g=e(51309),M=e(57759),h=e(80787).fastKey,S=e(71584),w=S.set,C=S.getterFor;b.exports={getConstructor:function(z,Z,N,L){var $=z(function(k,te){n(k,D),w(k,{type:Z,index:a(null),first:void 0,last:void 0,size:0}),M||(k.size=0),d(te)||l(te,k[L],{that:k,AS_ENTRIES:N})}),D=$.prototype,T=C(Z),j=function(k,te,Y){var q=T(k),le=G(k,te),X,W;return le?le.value=Y:(q.last=le={index:W=h(te,!0),key:te,value:Y,previous:X=q.last,next:void 0,removed:!1},q.first||(q.first=le),X&&(X.next=le),M?q.size++:k.size++,W!=="F"&&(q.index[W]=le)),k},G=function(k,te){var Y=T(k),q=h(te),le;if(q!=="F")return Y.index[q];for(le=Y.first;le;le=le.next)if(le.key==te)return le};return o(D,{clear:function(){for(var te=this,Y=T(te),q=Y.index,le=Y.first;le;)le.removed=!0,le.previous&&(le.previous=le.previous.next=void 0),delete q[le.index],le=le.next;Y.first=Y.last=void 0,M?Y.size=0:te.size=0},delete:function(k){var te=this,Y=T(te),q=G(te,k);if(q){var le=q.next,X=q.previous;delete Y.index[q.index],q.removed=!0,X&&(X.next=le),le&&(le.previous=X),Y.first==q&&(Y.first=le),Y.last==q&&(Y.last=X),M?Y.size--:te.size--}return!!q},forEach:function(te){for(var Y=T(this),q=s(te,arguments.length>1?arguments[1]:void 0),le;le=le?le.next:Y.first;)for(q(le.value,le.key,this);le&&le.removed;)le=le.previous},has:function(te){return!!G(this,te)}}),o(D,N?{get:function(te){var Y=G(this,te);return Y&&Y.value},set:function(te,Y){return j(this,te===0?0:te,Y)}}:{add:function(te){return j(this,te=te===0?0:te,te)}}),M&&t(D,"size",{configurable:!0,get:function(){return T(this).size}}),$},setStrong:function(z,Z,N){var L=Z+" Iterator",$=C(Z),D=C(L);c(z,Z,function(T,j){w(this,{type:L,target:T,state:$(T),kind:j,last:void 0})},function(){for(var T=D(this),j=T.kind,G=T.last;G&&G.removed;)G=G.previous;return!T.target||!(T.last=G=G?G.next:T.state.first)?(T.target=void 0,m(void 0,!0)):j=="keys"?m(G.key,!1):j=="values"?m(G.value,!1):m([G.key,G.value],!1)},N?"entries":"values",!N,!0),g(Z)}}},90253:function(b,y,e){"use strict";var a=e(11700),t=e(3313),o=e(80787).getWeakData,s=e(92453),n=e(78958),d=e(74883),l=e(33225),c=e(95815),m=e(44708),g=e(26583),M=e(71584),h=M.set,S=M.getterFor,w=m.find,C=m.findIndex,z=a([].splice),Z=0,N=function(D){return D.frozen||(D.frozen=new L)},L=function(){this.entries=[]},$=function(D,T){return w(D.entries,function(j){return j[0]===T})};L.prototype={get:function(D){var T=$(this,D);if(T)return T[1]},has:function(D){return!!$(this,D)},set:function(D,T){var j=$(this,D);j?j[1]=T:this.entries.push([D,T])},delete:function(D){var T=C(this.entries,function(j){return j[0]===D});return~T&&z(this.entries,T,1),!!~T}},b.exports={getConstructor:function(D,T,j,G){var k=D(function(le,X){s(le,te),h(le,{type:T,id:Z++,frozen:void 0}),d(X)||c(X,le[G],{that:le,AS_ENTRIES:j})}),te=k.prototype,Y=S(T),q=function(le,X,W){var x=Y(le),O=o(n(X),!0);return O===!0?N(x).set(X,W):O[x.id]=W,le};return t(te,{delete:function(le){var X=Y(this);if(!l(le))return!1;var W=o(le);return W===!0?N(X).delete(le):W&&g(W,X.id)&&delete W[X.id]},has:function(X){var W=Y(this);if(!l(X))return!1;var x=o(X);return x===!0?N(W).has(X):x&&g(x,W.id)}}),t(te,j?{get:function(X){var W=Y(this);if(l(X)){var x=o(X);return x===!0?N(W).get(X):x?x[W.id]:void 0}},set:function(X,W){return q(this,X,W)}}:{add:function(X){return q(this,X,!0)}}),k}}},91821:function(b,y,e){"use strict";var a=e(13354),t=e(53065),o=e(11700),s=e(29206),n=e(28621),d=e(80787),l=e(95815),c=e(92453),m=e(6508),g=e(74883),M=e(33225),h=e(77149),S=e(44277),w=e(68156),C=e(95173);b.exports=function(z,Z,N){var L=z.indexOf("Map")!==-1,$=z.indexOf("Weak")!==-1,D=L?"set":"add",T=t[z],j=T&&T.prototype,G=T,k={},te=function(O){var _=o(j[O]);n(j,O,O=="add"?function(A){return _(this,A===0?0:A),this}:O=="delete"?function(U){return $&&!M(U)?!1:_(this,U===0?0:U)}:O=="get"?function(A){return $&&!M(A)?void 0:_(this,A===0?0:A)}:O=="has"?function(A){return $&&!M(A)?!1:_(this,A===0?0:A)}:function(A,V){return _(this,A===0?0:A,V),this})},Y=s(z,!m(T)||!($||j.forEach&&!h(function(){new T().entries().next()})));if(Y)G=N.getConstructor(Z,z,L,D),d.enable();else if(s(z,!0)){var q=new G,le=q[D]($?{}:-0,1)!=q,X=h(function(){q.has(1)}),W=S(function(O){new T(O)}),x=!$&&h(function(){for(var O=new T,_=5;_--;)O[D](_,_);return!O.has(-0)});W||(G=Z(function(O,_){c(O,j);var U=C(new T,O,G);return g(_)||l(_,U[D],{that:U,AS_ENTRIES:L}),U}),G.prototype=j,j.constructor=G),(X||x)&&(te("delete"),te("has"),L&&te("get")),(x||le)&&te(D),$&&j.clear&&delete j.clear}return k[z]=G,a({global:!0,constructor:!0,forced:G!=T},k),w(G,z),$||N.setStrong(G,z,L),G}},95249:function(b,y,e){e(72660),e(11995);var a=e(42725),t=e(34552),o=e(33225),s=Object,n=TypeError,d=a("Map"),l=a("WeakMap"),c=function(){this.object=null,this.symbol=null,this.primitives=null,this.objectsByIndex=t(null)};c.prototype.get=function(g,M){return this[g]||(this[g]=M())},c.prototype.next=function(g,M,h){var S=h?this.objectsByIndex[g]||(this.objectsByIndex[g]=new l):this.primitives||(this.primitives=new d),w=S.get(M);return w||S.set(M,w=new c),w};var m=new c;b.exports=function(){var g=m,M=arguments.length,h,S;for(h=0;he)throw y("Maximum allowed index exceeded");return a}},73443:function(b){b.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},83051:function(b,y,e){var a=e(79132),t=e(79727);b.exports=!a&&!t&&typeof window=="object"&&typeof document=="object"},8266:function(b){b.exports=typeof Bun=="function"&&Bun&&typeof Bun.version=="string"},79132:function(b){b.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"},72833:function(b,y,e){var a=e(47048);b.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(a)},79727:function(b,y,e){var a=e(73656),t=e(88596);b.exports=typeof a!="undefined"&&t(a)=="process"},47048:function(b){b.exports=typeof navigator!="undefined"&&String(navigator.userAgent)||""},8783:function(b,y,e){var a=e(53065),t=e(47048),o=a.process,s=a.Deno,n=o&&o.versions||s&&s.version,d=n&&n.v8,l,c;d&&(l=d.split("."),c=l[0]>0&&l[0]<4?1:+(l[0]+l[1])),!c&&t&&(l=t.match(/Edge\/(\d+)/),(!l||l[1]>=74)&&(l=t.match(/Chrome\/(\d+)/),l&&(c=+l[1]))),b.exports=c},70721:function(b,y,e){var a=e(53065);b.exports=function(t){return a[t].prototype}},68150:function(b){b.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},68488:function(b,y,e){var a=e(11700),t=Error,o=a("".replace),s=function(l){return String(t(l).stack)}("zxcasd"),n=/\n\s*at [^:]*:[^\n]*/,d=n.test(s);b.exports=function(l,c){if(d&&typeof l=="string"&&!t.prepareStackTrace)for(;c--;)l=o(l,n,"");return l}},96410:function(b,y,e){var a=e(5927),t=e(68488),o=e(39728),s=Error.captureStackTrace;b.exports=function(n,d,l,c){o&&(s?s(n,d):a(n,"stack",t(l,c)))}},39728:function(b,y,e){var a=e(77149),t=e(87971);b.exports=!a(function(){var o=Error("a");return"stack"in o?(Object.defineProperty(o,"stack",t(1,7)),o.stack!==7):!0})},13354:function(b,y,e){var a=e(53065),t=e(91042).f,o=e(5927),s=e(28621),n=e(40194),d=e(81732),l=e(29206);b.exports=function(c,m){var g=c.target,M=c.global,h=c.stat,S,w,C,z,Z,N;if(M?w=a:h?w=a[g]||n(g,{}):w=(a[g]||{}).prototype,w)for(C in m){if(Z=m[C],c.dontCallGetSet?(N=t(w,C),z=N&&N.value):z=w[C],S=l(M?C:g+(h?".":"#")+C,c.forced),!S&&z!==void 0){if(typeof Z==typeof z)continue;d(Z,z)}(c.sham||z&&z.sham)&&o(Z,"sham",!0),s(w,C,Z,c)}}},77149:function(b){b.exports=function(y){try{return!!y()}catch(e){return!0}}},81506:function(b,y,e){var a=e(77149);b.exports=!a(function(){return Object.isExtensible(Object.preventExtensions({}))})},59178:function(b,y,e){var a=e(34300),t=Function.prototype,o=t.apply,s=t.call;b.exports=typeof Reflect=="object"&&Reflect.apply||(a?s.bind(o):function(){return s.apply(o,arguments)})},34066:function(b,y,e){var a=e(39338),t=e(31927),o=e(34300),s=a(a.bind);b.exports=function(n,d){return t(n),d===void 0?n:o?s(n,d):function(){return n.apply(d,arguments)}}},34300:function(b,y,e){var a=e(77149);b.exports=!a(function(){var t=function(){}.bind();return typeof t!="function"||t.hasOwnProperty("prototype")})},68029:function(b,y,e){var a=e(34300),t=Function.prototype.call;b.exports=a?t.bind(t):function(){return t.apply(t,arguments)}},44761:function(b,y,e){"use strict";var a=e(11700),t=e(31927);b.exports=function(){return a(t(this))}},27593:function(b,y,e){var a=e(57759),t=e(26583),o=Function.prototype,s=a&&Object.getOwnPropertyDescriptor,n=t(o,"name"),d=n&&function(){}.name==="something",l=n&&(!a||a&&s(o,"name").configurable);b.exports={EXISTS:n,PROPER:d,CONFIGURABLE:l}},12719:function(b,y,e){var a=e(11700),t=e(31927);b.exports=function(o,s,n){try{return a(t(Object.getOwnPropertyDescriptor(o,s)[n]))}catch(d){}}},39338:function(b,y,e){var a=e(88596),t=e(11700);b.exports=function(o){if(a(o)==="Function")return t(o)}},11700:function(b,y,e){var a=e(34300),t=Function.prototype,o=t.call,s=a&&t.bind.bind(o,o);b.exports=a?s:function(n){return function(){return o.apply(n,arguments)}}},83658:function(b,y,e){var a=e(68029),t=e(6508),o=e(78958),s=e(55086),n=e(56071),d=e(15931),l=e(77740),c=e(66219),m=l("asyncIterator");b.exports=function(M){var h=o(M),S=!0,w=d(h,m),C;return t(w)||(w=n(h),S=!1),t(w)?C=a(w,h):(C=h,S=!0),o(C),s(S?C:new c(s(C)))}},85231:function(b,y,e){var a=e(68029),t=e(66219),o=e(78958),s=e(64712),n=e(55086),d=e(15931),l=e(77740),c=l("asyncIterator");b.exports=function(m,g){var M=arguments.length<2?d(m,c):g;return M?o(a(M,m)):new t(n(s(m)))}},42725:function(b,y,e){var a=e(53065),t=e(6508),o=function(s){return t(s)?s:void 0};b.exports=function(s,n){return arguments.length<2?o(a[s]):a[s]&&a[s][n]}},55086:function(b,y,e){var a=e(31927),t=e(78958);b.exports=function(o){return{iterator:o,next:a(t(o).next)}}},69896:function(b,y,e){var a=e(68029),t=e(6508),o=e(78958),s=e(55086),n=e(56071);b.exports=function(d){var l=o(d),c=n(l);return s(o(t(c)?a(c,l):l))}},56071:function(b,y,e){var a=e(56834),t=e(15931),o=e(74883),s=e(43125),n=e(77740),d=n("iterator");b.exports=function(l){if(!o(l))return t(l,d)||t(l,"@@iterator")||s[a(l)]}},64712:function(b,y,e){var a=e(68029),t=e(31927),o=e(78958),s=e(30238),n=e(56071),d=TypeError;b.exports=function(l,c){var m=arguments.length<2?n(l):c;if(t(m))return o(a(m,l));throw d(s(l)+" is not iterable")}},75126:function(b,y,e){var a=e(11700),t=e(190),o=e(6508),s=e(88596),n=e(68424),d=a([].push);b.exports=function(l){if(o(l))return l;if(t(l)){for(var c=l.length,m=[],g=0;g]*>)/g,c=/\$([$&'`]|\d{1,2})/g;b.exports=function(m,g,M,h,S,w){var C=M+m.length,z=h.length,Z=c;return S!==void 0&&(S=t(S),Z=l),n(w,Z,function(N,L){var $;switch(s(L,0)){case"$":return"$";case"&":return m;case"`":return d(g,0,M);case"'":return d(g,C);case"<":$=S[d(L,1,-1)];break;default:var D=+L;if(D===0)return N;if(D>z){var T=o(D/10);return T===0?N:T<=z?h[T-1]===void 0?s(L,1):h[T-1]+s(L,1):N}$=h[D-1]}return $===void 0?"":$})}},53065:function(b,y,e){var a=function(t){return t&&t.Math==Math&&t};b.exports=a(typeof globalThis=="object"&&globalThis)||a(typeof window=="object"&&window)||a(typeof self=="object"&&self)||a(typeof e.g=="object"&&e.g)||function(){return this}()||Function("return this")()},26583:function(b,y,e){var a=e(11700),t=e(64441),o=a({}.hasOwnProperty);b.exports=Object.hasOwn||function(n,d){return o(t(n),d)}},17859:function(b){b.exports={}},3234:function(b){b.exports=function(y,e){try{arguments.length==1?console.error(y):console.error(y,e)}catch(a){}}},8199:function(b,y,e){var a=e(42725);b.exports=a("document","documentElement")},96335:function(b,y,e){var a=e(57759),t=e(77149),o=e(75074);b.exports=!a&&!t(function(){return Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a!=7})},42414:function(b,y,e){var a=e(11700),t=e(77149),o=e(88596),s=Object,n=a("".split);b.exports=t(function(){return!s("z").propertyIsEnumerable(0)})?function(d){return o(d)=="String"?n(d,""):s(d)}:s},95173:function(b,y,e){var a=e(6508),t=e(33225),o=e(63332);b.exports=function(s,n,d){var l,c;return o&&a(l=n.constructor)&&l!==d&&t(c=l.prototype)&&c!==d.prototype&&o(s,c),s}},45274:function(b,y,e){var a=e(11700),t=e(6508),o=e(1396),s=a(Function.toString);t(o.inspectSource)||(o.inspectSource=function(n){return s(n)}),b.exports=o.inspectSource},13719:function(b,y,e){var a=e(33225),t=e(5927);b.exports=function(o,s){a(s)&&"cause"in s&&t(o,"cause",s.cause)}},80787:function(b,y,e){var a=e(13354),t=e(11700),o=e(17859),s=e(33225),n=e(26583),d=e(38248).f,l=e(94561),c=e(56647),m=e(50175),g=e(89669),M=e(81506),h=!1,S=g("meta"),w=0,C=function(D){d(D,S,{value:{objectID:"O"+w++,weakData:{}}})},z=function(D,T){if(!s(D))return typeof D=="symbol"?D:(typeof D=="string"?"S":"P")+D;if(!n(D,S)){if(!m(D))return"F";if(!T)return"E";C(D)}return D[S].objectID},Z=function(D,T){if(!n(D,S)){if(!m(D))return!0;if(!T)return!1;C(D)}return D[S].weakData},N=function(D){return M&&h&&m(D)&&!n(D,S)&&C(D),D},L=function(){$.enable=function(){},h=!0;var D=l.f,T=t([].splice),j={};j[S]=1,D(j).length&&(l.f=function(G){for(var k=D(G),te=0,Y=k.length;tek;k++)if(Y=W(w[k]),Y&&l(S,Y))return Y;return new h(!1)}j=c(w,G)}for(q=L?w.next:j.next;!(le=t(q,j)).done;){try{Y=W(le.value)}catch(x){g(j,"throw",x)}if(typeof Y=="object"&&Y&&l(S,Y))return Y}return new h(!1)}},40164:function(b,y,e){var a=e(68029),t=e(78958),o=e(15931);b.exports=function(s,n,d){var l,c;t(s);try{if(l=o(s,"return"),!l){if(n==="throw")throw d;return d}l=a(l,s)}catch(m){c=!0,l=m}if(n==="throw")throw d;if(c)throw l;return t(l),d}},87821:function(b,y,e){"use strict";var a=e(41019).IteratorPrototype,t=e(34552),o=e(87971),s=e(68156),n=e(43125),d=function(){return this};b.exports=function(l,c,m,g){var M=c+" Iterator";return l.prototype=t(a,{next:o(+!g,m)}),s(l,M,!1,!0),n[M]=d,l}},36911:function(b,y,e){"use strict";var a=e(68029),t=e(34552),o=e(5927),s=e(3313),n=e(77740),d=e(71584),l=e(15931),c=e(41019).IteratorPrototype,m=e(76835),g=e(40164),M=n("toStringTag"),h="IteratorHelper",S="WrapForValidIterator",w=d.set,C=function(N){var L=d.getterFor(N?S:h);return s(t(c),{next:function(){var D=L(this);if(N)return D.nextHandler();try{var T=D.done?void 0:D.nextHandler();return m(T,D.done)}catch(j){throw D.done=!0,j}},return:function(){var $=L(this),D=$.iterator;if($.done=!0,N){var T=l(D,"return");return T?a(T,D):m(void 0,!0)}if($.inner)try{g($.inner.iterator,"normal")}catch(j){return g(D,"throw",j)}return g(D,"normal"),m(void 0,!0)}})},z=C(!0),Z=C(!1);o(Z,M,"Iterator Helper"),b.exports=function(N,L){var $=function(T,j){j?(j.iterator=T.iterator,j.next=T.next):j=T,j.type=L?S:h,j.nextHandler=N,j.counter=0,j.done=!1,w(this,j)};return $.prototype=L?z:Z,$}},94636:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(77449),s=e(27593),n=e(6508),d=e(87821),l=e(77767),c=e(63332),m=e(68156),g=e(5927),M=e(28621),h=e(77740),S=e(43125),w=e(41019),C=s.PROPER,z=s.CONFIGURABLE,Z=w.IteratorPrototype,N=w.BUGGY_SAFARI_ITERATORS,L=h("iterator"),$="keys",D="values",T="entries",j=function(){return this};b.exports=function(G,k,te,Y,q,le,X){d(te,k,Y);var W=function(be){if(be===q&&A)return A;if(!N&&be in _)return _[be];switch(be){case $:return function(){return new te(this,be)};case D:return function(){return new te(this,be)};case T:return function(){return new te(this,be)}}return function(){return new te(this)}},x=k+" Iterator",O=!1,_=G.prototype,U=_[L]||_["@@iterator"]||q&&_[q],A=!N&&U||W(q),V=k=="Array"&&_.entries||U,fe,pe,ge;if(V&&(fe=l(V.call(new G)),fe!==Object.prototype&&fe.next&&(!o&&l(fe)!==Z&&(c?c(fe,Z):n(fe[L])||M(fe,L,j)),m(fe,x,!0,!0),o&&(S[x]=j))),C&&q==D&&U&&U.name!==D&&(!o&&z?g(_,"name",D):(O=!0,A=function(){return t(U,this)})),q)if(pe={values:W(D),keys:le?A:W($),entries:W(T)},X)for(ge in pe)(N||O||!(ge in _))&&M(_,ge,pe[ge]);else a({target:k,proto:!0,forced:N||O},pe);return(!o||X)&&_[L]!==A&&M(_,L,A,{name:q}),S[k]=A,pe}},45656:function(b,y,e){"use strict";var a=e(68029),t=e(87931),o=function(s,n){return[n,s]};b.exports=function(){return a(t,this,o)}},87931:function(b,y,e){"use strict";var a=e(68029),t=e(31927),o=e(78958),s=e(55086),n=e(36911),d=e(74031),l=n(function(){var c=this.iterator,m=o(a(this.next,c)),g=this.done=!!m.done;if(!g)return d(c,this.mapper,[m.value,this.counter++],!0)});b.exports=function(m){return new l(s(this),{mapper:t(m)})}},41019:function(b,y,e){"use strict";var a=e(77149),t=e(6508),o=e(33225),s=e(34552),n=e(77767),d=e(28621),l=e(77740),c=e(77449),m=l("iterator"),g=!1,M,h,S;[].keys&&(S=[].keys(),"next"in S?(h=n(n(S)),h!==Object.prototype&&(M=h)):g=!0);var w=!o(M)||a(function(){var C={};return M[m].call(C)!==C});w?M={}:c&&(M=s(M)),t(M[m])||d(M,m,function(){return this}),b.exports={IteratorPrototype:M,BUGGY_SAFARI_ITERATORS:g}},43125:function(b){b.exports={}},89122:function(b,y,e){var a=e(25010);b.exports=function(t){return a(t.length)}},70377:function(b,y,e){var a=e(11700),t=e(77149),o=e(6508),s=e(26583),n=e(57759),d=e(27593).CONFIGURABLE,l=e(45274),c=e(71584),m=c.enforce,g=c.get,M=String,h=Object.defineProperty,S=a("".slice),w=a("".replace),C=a([].join),z=n&&!t(function(){return h(function(){},"length",{value:8}).length!==8}),Z=String(String).split("String"),N=b.exports=function(L,$,D){S(M($),0,7)==="Symbol("&&($="["+w(M($),/^Symbol\(([^)]*)\)/,"$1")+"]"),D&&D.getter&&($="get "+$),D&&D.setter&&($="set "+$),(!s(L,"name")||d&&L.name!==$)&&(n?h(L,"name",{value:$,configurable:!0}):L.name=$),z&&D&&s(D,"arity")&&L.length!==D.arity&&h(L,"length",{value:D.arity});try{D&&s(D,"constructor")&&D.constructor?n&&h(L,"prototype",{writable:!1}):L.prototype&&(L.prototype=void 0)}catch(j){}var T=m(L);return s(T,"source")||(T.source=C(Z,typeof $=="string"?$:"")),L};Function.prototype.toString=N(function(){return o(this)&&g(this).source||l(this)},"toString")},85623:function(b,y,e){var a=e(11700),t=Map.prototype;b.exports={Map,set:a(t.set),get:a(t.get),has:a(t.has),remove:a(t.delete),proto:t}},46782:function(b,y,e){var a=e(11700),t=e(95060),o=e(85623),s=o.Map,n=o.proto,d=a(n.forEach),l=a(n.entries),c=l(new s).next;b.exports=function(m,g,M){return M?t(l(m),function(h){return g(h[1],h[0])},c):d(m,g)}},32171:function(b,y,e){"use strict";var a=e(68029),t=e(31927),o=e(6508),s=e(78958),n=TypeError;b.exports=function(l,c){var m=s(this),g=t(m.get),M=t(m.has),h=t(m.set),S=arguments.length>2?arguments[2]:void 0,w;if(!o(c)&&!o(S))throw n("At least one callback required");return a(M,m,l)?(w=a(g,m,l),o(c)&&(w=c(w),a(h,m,l,w))):o(S)&&(w=S(),a(h,m,l,w)),w}},18749:function(b,y,e){var a=e(75169),t=Math.abs,o=Math.pow,s=o(2,-52),n=o(2,-23),d=o(2,127)*(2-n),l=o(2,-126),c=function(m){return m+1/s-1/s};b.exports=Math.fround||function(g){var M=+g,h=t(M),S=a(M),w,C;return hd||C!=C?S*(1/0):S*C)}},15129:function(b){b.exports=Math.scale||function(e,a,t,o,s){var n=+e,d=+a,l=+t,c=+o,m=+s;return n!=n||d!=d||l!=l||c!=c||m!=m?NaN:n===1/0||n===-1/0?n:(n-d)*(m-c)/(l-d)+c}},75169:function(b){b.exports=Math.sign||function(e){var a=+e;return a==0||a!=a?a:a<0?-1:1}},18243:function(b){var y=Math.ceil,e=Math.floor;b.exports=Math.trunc||function(t){var o=+t;return(o>0?e:y)(o)}},66286:function(b,y,e){var a=e(77149);b.exports=!a(function(){var t="9007199254740993",o=JSON.rawJSON(t);return!JSON.isRawJSON(o)||JSON.stringify(o)!==t})},71440:function(b,y,e){"use strict";var a=e(31927),t=TypeError,o=function(s){var n,d;this.promise=new s(function(l,c){if(n!==void 0||d!==void 0)throw t("Bad Promise constructor");n=l,d=c}),this.resolve=a(n),this.reject=a(d)};b.exports.f=function(s){return new o(s)}},9280:function(b,y,e){var a=e(68424);b.exports=function(t,o){return t===void 0?arguments.length<2?"":o:a(t)}},29597:function(b){var y=RangeError;b.exports=function(e){if(e===e)return e;throw y("NaN is not allowed")}},54633:function(b,y,e){var a=e(53065),t=a.isFinite;b.exports=Number.isFinite||function(s){return typeof s=="number"&&t(s)}},35323:function(b,y,e){var a=e(53065),t=e(77149),o=e(11700),s=e(68424),n=e(53761).trim,d=e(91289),l=a.parseInt,c=a.Symbol,m=c&&c.iterator,g=/^[+-]?0x/i,M=o(g.exec),h=l(d+"08")!==8||l(d+"0x16")!==22||m&&!t(function(){l(Object(m))});b.exports=h?function(w,C){var z=n(s(w));return l(z,C>>>0||(M(g,z)?16:10))}:l},73126:function(b,y,e){"use strict";var a=e(71584),t=e(87821),o=e(76835),s=e(74883),n=e(33225),d=e(97867).f,l=e(57759),c="Incorrect Iterator.range arguments",m="NumericRangeIterator",g=a.set,M=a.getterFor(m),h=RangeError,S=TypeError,w=t(function(Z,N,L,$,D,T){if(typeof Z!=$||N!==1/0&&N!==-1/0&&typeof N!=$)throw S(c);if(Z===1/0||Z===-1/0)throw h(c);var j=N>Z,G=!1,k;if(L===void 0)k=void 0;else if(n(L))k=L.step,G=!!L.inclusive;else if(typeof L==$)k=L;else throw S(c);if(s(k)&&(k=j?T:-T),typeof k!=$)throw S(c);if(k===1/0||k===-1/0||k===D&&Z!==N)throw h(c);var te=Z!=Z||N!=N||k!=k||N>Z!=k>D;g(this,{type:m,start:Z,end:N,step:k,inclusiveEnd:G,hitsEnd:te,currentCount:D,zero:D}),l||(this.start=Z,this.end=N,this.step=k,this.inclusive=G)},m,function(){var Z=M(this);if(Z.hitsEnd)return o(void 0,!0);var N=Z.start,L=Z.end,$=Z.step,D=N+$*Z.currentCount++;D===L&&(Z.hitsEnd=!0);var T=Z.inclusiveEnd,j;return L>N?j=T?D>L:D>=L:j=T?L>D:L>=D,j?(Z.hitsEnd=!0,o(void 0,!0)):o(D,!1)}),C=function(z){return{get:z,set:function(){},configurable:!0,enumerable:!1}};l&&d(w.prototype,{start:C(function(){return M(this).start}),end:C(function(){return M(this).end}),inclusive:C(function(){return M(this).inclusiveEnd}),step:C(function(){return M(this).step})}),b.exports=w},34552:function(b,y,e){var a=e(78958),t=e(97867),o=e(68150),s=e(17859),n=e(8199),d=e(75074),l=e(39376),c=">",m="<",g="prototype",M="script",h=l("IE_PROTO"),S=function(){},w=function(L){return m+M+c+L+m+"/"+M+c},C=function(L){L.write(w("")),L.close();var $=L.parentWindow.Object;return L=null,$},z=function(){var L=d("iframe"),$="java"+M+":",D;return L.style.display="none",n.appendChild(L),L.src=String($),D=L.contentWindow.document,D.open(),D.write(w("document.F=Object")),D.close(),D.F},Z,N=function(){try{Z=new ActiveXObject("htmlfile")}catch($){}N=typeof document!="undefined"?document.domain&&Z?C(Z):z():C(Z);for(var L=o.length;L--;)delete N[g][o[L]];return N()};s[h]=!0,b.exports=Object.create||function($,D){var T;return $!==null?(S[g]=a($),T=new S,S[g]=null,T[h]=$):T=N(),D===void 0?T:t.f(T,D)}},97867:function(b,y,e){var a=e(57759),t=e(63980),o=e(38248),s=e(78958),n=e(514),d=e(71691);y.f=a&&!t?Object.defineProperties:function(c,m){s(c);for(var g=n(m),M=d(m),h=M.length,S=0,w;h>S;)o.f(c,w=M[S++],g[w]);return c}},38248:function(b,y,e){var a=e(57759),t=e(96335),o=e(63980),s=e(78958),n=e(76846),d=TypeError,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor,m="enumerable",g="configurable",M="writable";y.f=a?o?function(S,w,C){if(s(S),w=n(w),s(C),typeof S=="function"&&w==="prototype"&&"value"in C&&M in C&&!C[M]){var z=c(S,w);z&&z[M]&&(S[w]=C.value,C={configurable:g in C?C[g]:z[g],enumerable:m in C?C[m]:z[m],writable:!1})}return l(S,w,C)}:l:function(S,w,C){if(s(S),w=n(w),s(C),t)try{return l(S,w,C)}catch(z){}if("get"in C||"set"in C)throw d("Accessors not supported");return"value"in C&&(S[w]=C.value),S}},91042:function(b,y,e){var a=e(57759),t=e(68029),o=e(83688),s=e(87971),n=e(514),d=e(76846),l=e(26583),c=e(96335),m=Object.getOwnPropertyDescriptor;y.f=a?m:function(M,h){if(M=n(M),h=d(h),c)try{return m(M,h)}catch(S){}if(l(M,h))return s(!t(o.f,M,h),M[h])}},56647:function(b,y,e){var a=e(88596),t=e(514),o=e(94561).f,s=e(81469),n=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],d=function(l){try{return o(l)}catch(c){return s(n)}};b.exports.f=function(c){return n&&a(c)=="Window"?d(c):o(t(c))}},94561:function(b,y,e){var a=e(4482),t=e(68150),o=t.concat("length","prototype");y.f=Object.getOwnPropertyNames||function(n){return a(n,o)}},10290:function(b,y){y.f=Object.getOwnPropertySymbols},77767:function(b,y,e){var a=e(26583),t=e(6508),o=e(64441),s=e(39376),n=e(80978),d=s("IE_PROTO"),l=Object,c=l.prototype;b.exports=n?l.getPrototypeOf:function(m){var g=o(m);if(a(g,d))return g[d];var M=g.constructor;return t(M)&&g instanceof M?M.prototype:g instanceof l?c:null}},50175:function(b,y,e){var a=e(77149),t=e(33225),o=e(88596),s=e(23932),n=Object.isExtensible,d=a(function(){n(1)});b.exports=d||s?function(c){return!t(c)||s&&o(c)=="ArrayBuffer"?!1:n?n(c):!0}:n},72901:function(b,y,e){var a=e(11700);b.exports=a({}.isPrototypeOf)},65556:function(b,y,e){"use strict";var a=e(71584),t=e(87821),o=e(76835),s=e(26583),n=e(71691),d=e(64441),l="Object Iterator",c=a.set,m=a.getterFor(l);b.exports=t(function(M,h){var S=d(M);c(this,{type:l,mode:h,object:S,keys:n(S),index:0})},"Object",function(){for(var M=m(this),h=M.keys;;){if(h===null||M.index>=h.length)return M.object=M.keys=null,o(void 0,!0);var S=h[M.index++],w=M.object;if(s(w,S)){switch(M.mode){case"keys":return o(S,!1);case"values":return o(w[S],!1)}return o([S,w[S]],!1)}}})},4482:function(b,y,e){var a=e(11700),t=e(26583),o=e(514),s=e(63795).indexOf,n=e(17859),d=a([].push);b.exports=function(l,c){var m=o(l),g=0,M=[],h;for(h in m)!t(n,h)&&t(m,h)&&d(M,h);for(;c.length>g;)t(m,h=c[g++])&&(~s(M,h)||d(M,h));return M}},71691:function(b,y,e){var a=e(4482),t=e(68150);b.exports=Object.keys||function(s){return a(s,t)}},83688:function(b,y){"use strict";var e={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,t=a&&!e.call({1:2},1);y.f=t?function(s){var n=a(this,s);return!!n&&n.enumerable}:e},63332:function(b,y,e){var a=e(12719),t=e(78958),o=e(66961);b.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var s=!1,n={},d;try{d=a(Object.prototype,"__proto__","set"),d(n,[]),s=n instanceof Array}catch(l){}return function(c,m){return t(c),o(m),s?d(c,m):c.__proto__=m,c}}():void 0)},88818:function(b,y,e){var a=e(53065),t=e(6508),o=e(77740),s=o("observable"),n=a.Observable,d=n&&n.prototype;b.exports=!t(n)||!t(n.from)||!t(n.of)||!t(d.subscribe)||!t(d[s])},54026:function(b,y,e){var a=e(68029),t=e(6508),o=e(33225),s=TypeError;b.exports=function(n,d){var l,c;if(d==="string"&&t(l=n.toString)&&!o(c=a(l,n))||t(l=n.valueOf)&&!o(c=a(l,n))||d!=="string"&&t(l=n.toString)&&!o(c=a(l,n)))return c;throw s("Can't convert object to primitive value")}},60999:function(b,y,e){var a=e(42725),t=e(11700),o=e(94561),s=e(10290),n=e(78958),d=t([].concat);b.exports=a("Reflect","ownKeys")||function(c){var m=o.f(n(c)),g=s.f;return g?d(m,g(c)):m}},12539:function(b,y,e){var a=e(11700),t=e(26583),o=SyntaxError,s=parseInt,n=String.fromCharCode,d=a("".charAt),l=a("".slice),c=a(/./.exec),m={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` +`,"\\r":"\r","\\t":" "},g=/^[\da-f]{4}$/i,M=/^[\u0000-\u001F]$/;b.exports=function(h,S){for(var w=!0,C="";Sh,z=o(S)?S:c(S),Z=C?d(arguments,h):[],N=C?function(){t(z,this,Z)}:z;return M?g(N,w):g(N)}:g}},38684:function(b,y,e){var a=e(23313),t=e(22731),o=a.Set,s=a.add;b.exports=function(n){var d=new o;return t(n,function(l){s(d,l)}),d}},53505:function(b,y,e){"use strict";var a=e(77318),t=e(23313),o=e(38684),s=e(17085),n=e(35710),d=e(22731),l=e(95060),c=t.has,m=t.remove;b.exports=function(M){var h=a(this),S=n(M),w=o(h);return s(h)<=S.size?d(h,function(C){S.includes(C)&&m(w,C)}):l(S.getIterator(),function(C){c(h,C)&&m(w,C)}),w}},23313:function(b,y,e){var a=e(11700),t=Set.prototype;b.exports={Set,add:a(t.add),has:a(t.has),remove:a(t.delete),proto:t,$has:t.has,$keys:t.keys}},51737:function(b,y,e){"use strict";var a=e(77318),t=e(23313),o=e(17085),s=e(35710),n=e(22731),d=e(95060),l=t.Set,c=t.add,m=t.has,g=t.$has,M=t.$keys,h=function(S){return S.has===g&&S.keys===M};b.exports=function(w){var C=a(this),z=s(w),Z=new l;if(!h(z)&&o(C)>z.size){if(d(z.getIterator(),function(L){m(C,L)&&c(Z,L)}),o(Z)<2)return Z;var N=Z;Z=new l,n(C,function(L){m(N,L)&&c(Z,L)})}else n(C,function(L){z.includes(L)&&c(Z,L)});return Z}},46149:function(b,y,e){"use strict";var a=e(77318),t=e(23313).has,o=e(17085),s=e(35710),n=e(22731),d=e(95060),l=e(40164);b.exports=function(m){var g=a(this),M=s(m);if(o(g)<=M.size)return n(g,function(S){if(M.includes(S))return!1},!0)!==!1;var h=M.getIterator();return d(h,function(S){if(t(g,S))return l(h,"normal",!1)})!==!1}},99527:function(b,y,e){"use strict";var a=e(77318),t=e(17085),o=e(22731),s=e(35710);b.exports=function(d){var l=a(this),c=s(d);return t(l)>c.size?!1:o(l,function(m){if(!c.includes(m))return!1},!0)!==!1}},20698:function(b,y,e){"use strict";var a=e(77318),t=e(23313).has,o=e(17085),s=e(35710),n=e(95060),d=e(40164);b.exports=function(c){var m=a(this),g=s(c);if(o(m)=w?m?"":void 0:(C=d(h,S),C<55296||C>56319||S+1===w||(z=d(h,S+1))<56320||z>57343?m?n(h,S):C:m?l(h,S,S+2):(C-55296<<10)+(z-56320)+65536)}};b.exports={codeAt:c(!1),charAt:c(!0)}},81089:function(b,y,e){var a=e(42725),t=e(11700),o=String.fromCharCode,s=a("String","fromCodePoint"),n=t("".charAt),d=t("".charCodeAt),l=t("".indexOf),c=t("".slice),m=48,g=57,M=97,h=102,S=65,w=70,C=function(N,L){var $=d(N,L);return $>=m&&$<=g},z=function(N,L,$){if($>=N.length)return-1;for(var D=0;L<$;L++){var T=Z(d(N,L));if(T===-1)return-1;D=D*16+T}return D},Z=function(N){return N>=m&&N<=g?N-m:N>=M&&N<=h?N-M+10:N>=S&&N<=w?N-S+10:-1};b.exports=function(N){for(var L="",$=0,D=0,T;(D=l(N,"\\",D))>-1;){if(L+=c(N,$,D),++D===N.length)return;var j=n(N,D++);switch(j){case"b":L+="\b";break;case"t":L+=" ";break;case"n":L+=` +`;break;case"v":L+="\v";break;case"f":L+="\f";break;case"r":L+="\r";break;case"\r":D1114111)return;L+=s(T);break;default:if(C(j,0))return;L+=j}$=D}return L+c(N,$)}},53761:function(b,y,e){var a=e(11700),t=e(12105),o=e(68424),s=e(91289),n=a("".replace),d=RegExp("^["+s+"]+"),l=RegExp("(^|[^"+s+"])["+s+"]+$"),c=function(m){return function(g){var M=o(t(g));return m&1&&(M=n(M,d,"")),m&2&&(M=n(M,l,"$1")),M}};b.exports={start:c(1),end:c(2),trim:c(3)}},27698:function(b,y,e){var a=e(53065),t=e(77149),o=e(8783),s=e(83051),n=e(79132),d=e(79727),l=a.structuredClone;b.exports=!!l&&!t(function(){if(n&&o>92||d&&o>94||s&&o>97)return!1;var c=new ArrayBuffer(8),m=l(c,{transfer:[c]});return c.byteLength!=0||m.byteLength!=8})},18680:function(b,y,e){var a=e(8783),t=e(77149);b.exports=!!Object.getOwnPropertySymbols&&!t(function(){var o=Symbol();return!String(o)||!(Object(o)instanceof Symbol)||!Symbol.sham&&a&&a<41})},56912:function(b,y,e){var a=e(53065),t=e(59178),o=e(34066),s=e(6508),n=e(26583),d=e(77149),l=e(8199),c=e(66322),m=e(75074),g=e(87486),M=e(72833),h=e(79727),S=a.setImmediate,w=a.clearImmediate,C=a.process,z=a.Dispatch,Z=a.Function,N=a.MessageChannel,L=a.String,$=0,D={},T="onreadystatechange",j,G,k,te;d(function(){j=a.location});var Y=function(W){if(n(D,W)){var x=D[W];delete D[W],x()}},q=function(W){return function(){Y(W)}},le=function(W){Y(W.data)},X=function(W){a.postMessage(L(W),j.protocol+"//"+j.host)};(!S||!w)&&(S=function(x){g(arguments.length,1);var O=s(x)?x:Z(x),_=c(arguments,1);return D[++$]=function(){t(O,void 0,_)},G($),$},w=function(x){delete D[x]},h?G=function(W){C.nextTick(q(W))}:z&&z.now?G=function(W){z.now(q(W))}:N&&!M?(k=new N,te=k.port2,k.port1.onmessage=le,G=o(te.postMessage,te)):a.addEventListener&&s(a.postMessage)&&!a.importScripts&&j&&j.protocol!=="file:"&&!d(X)?(G=X,a.addEventListener("message",le,!1)):T in m("script")?G=function(W){l.appendChild(m("script"))[T]=function(){l.removeChild(this),Y(W)}}:G=function(W){setTimeout(q(W),0)}),b.exports={set:S,clear:w}},71410:function(b,y,e){var a=e(68345),t=Math.max,o=Math.min;b.exports=function(s,n){var d=a(s);return d<0?t(d+n,0):o(d,n)}},28046:function(b,y,e){var a=e(54845),t=TypeError;b.exports=function(o){var s=a(o,"number");if(typeof s=="number")throw t("Can't convert number to bigint");return BigInt(s)}},92503:function(b,y,e){var a=e(68345),t=e(25010),o=RangeError;b.exports=function(s){if(s===void 0)return 0;var n=a(s),d=t(n);if(n!==d)throw o("Wrong length or index");return d}},514:function(b,y,e){var a=e(42414),t=e(12105);b.exports=function(o){return a(t(o))}},68345:function(b,y,e){var a=e(18243);b.exports=function(t){var o=+t;return o!==o||o===0?0:a(o)}},25010:function(b,y,e){var a=e(68345),t=Math.min;b.exports=function(o){return o>0?t(a(o),9007199254740991):0}},64441:function(b,y,e){var a=e(12105),t=Object;b.exports=function(o){return t(a(o))}},5561:function(b,y,e){var a=e(82053),t=RangeError;b.exports=function(o,s){var n=a(o);if(n%s)throw t("Wrong offset");return n}},82053:function(b,y,e){var a=e(68345),t=RangeError;b.exports=function(o){var s=a(o);if(s<0)throw t("The argument can't be less than 0");return s}},54845:function(b,y,e){var a=e(68029),t=e(33225),o=e(59549),s=e(15931),n=e(54026),d=e(77740),l=TypeError,c=d("toPrimitive");b.exports=function(m,g){if(!t(m)||o(m))return m;var M=s(m,c),h;if(M){if(g===void 0&&(g="default"),h=a(M,m,g),!t(h)||o(h))return h;throw l("Can't convert object to primitive value")}return g===void 0&&(g="number"),n(m,g)}},76846:function(b,y,e){var a=e(54845),t=e(59549);b.exports=function(o){var s=a(o,"string");return t(s)?s:s+""}},74089:function(b,y,e){var a=e(42725),t=e(6508),o=e(94653),s=e(33225),n=a("Set"),d=function(l){return s(l)&&typeof l.size=="number"&&t(l.has)&&t(l.keys)};b.exports=function(l){if(d(l))return l;if(o(l))return new n(l)}},64726:function(b,y,e){var a=e(77740),t=a("toStringTag"),o={};o[t]="z",b.exports=String(o)==="[object z]"},68424:function(b,y,e){var a=e(56834),t=String;b.exports=function(o){if(a(o)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return t(o)}},30238:function(b){var y=String;b.exports=function(e){try{return y(e)}catch(a){return"Object"}}},64395:function(b,y,e){var a=e(50112),t=e(93947);b.exports=function(o,s){return a(t(o),s)}},93947:function(b,y,e){var a=e(94641),t=e(23473),o=a.aTypedArrayConstructor,s=a.getTypedArrayConstructor;b.exports=function(n){return o(t(n,s(n)))}},89669:function(b,y,e){var a=e(11700),t=0,o=Math.random(),s=a(1 .toString);b.exports=function(n){return"Symbol("+(n===void 0?"":n)+")_"+s(++t+o,36)}},61037:function(b,y,e){var a=e(18680);b.exports=a&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},63980:function(b,y,e){var a=e(57759),t=e(77149);b.exports=a&&t(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})},87486:function(b){var y=TypeError;b.exports=function(e,a){if(eL&&g(le,arguments[L]),le});if(k.prototype=j,D!=="Error"?n?n(k,G):d(k,G,{name:!0}):h&&N in T&&(l(k,T,N),l(k,T,"prepareStackTrace")),d(k,T),!S)try{j.name!==D&&o(j,"name",D),j.constructor=k}catch(te){}return k}}},74503:function(b,y,e){var a=e(13354),t=e(42725),o=e(59178),s=e(77149),n=e(69485),d="AggregateError",l=t(d),c=!s(function(){return l([1]).errors[0]!==1})&&s(function(){return l([1],d,{cause:7}).cause!==7});a({global:!0,constructor:!0,arity:2,forced:c},{AggregateError:n(d,function(m){return function(M,h){return o(m,this,arguments)}},c,!0)})},90570:function(b,y,e){"use strict";var a=e(13354),t=e(72901),o=e(77767),s=e(63332),n=e(81732),d=e(34552),l=e(5927),c=e(87971),m=e(13719),g=e(96410),M=e(95815),h=e(9280),S=e(77740),w=S("toStringTag"),C=Error,z=[].push,Z=function($,D){var T=t(N,this),j;s?j=s(C(),T?o(this):N):(j=T?this:d(N),l(j,w,"Error")),D!==void 0&&l(j,"message",h(D)),g(j,Z,j.stack,1),arguments.length>2&&m(j,arguments[2]);var G=[];return M($,z,{that:G}),l(j,"errors",G),j};s?s(Z,C):n(Z,C,{name:!0});var N=Z.prototype=d(C.prototype,{constructor:c(1,Z),message:c(1,""),name:c(1,"AggregateError")});a({global:!0,constructor:!0,arity:2},{AggregateError:Z})},511:function(b,y,e){e(90570)},65591:function(b,y,e){"use strict";var a=e(13354),t=e(64441),o=e(89122),s=e(68345),n=e(22054);a({target:"Array",proto:!0},{at:function(l){var c=t(this),m=o(c),g=s(l),M=g>=0?g:m+g;return M<0||M>=m?void 0:c[M]}}),n("at")},33356:function(b,y,e){"use strict";var a=e(13354),t=e(17464).findLastIndex,o=e(22054);a({target:"Array",proto:!0},{findLastIndex:function(n){return t(this,n,arguments.length>1?arguments[1]:void 0)}}),o("findLastIndex")},56082:function(b,y,e){"use strict";var a=e(13354),t=e(17464).findLast,o=e(22054);a({target:"Array",proto:!0},{findLast:function(n){return t(this,n,arguments.length>1?arguments[1]:void 0)}}),o("findLast")},73034:function(b,y,e){"use strict";var a=e(13354),t=e(64441),o=e(89122),s=e(77060),n=e(12262),d=e(77149),l=d(function(){return[].push.call({length:4294967296},1)!==4294967297}),c=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(g){return g instanceof TypeError}},m=l||!c();a({target:"Array",proto:!0,arity:1,forced:m},{push:function(M){var h=t(this),S=o(h),w=arguments.length;n(S+w);for(var C=0;C79&&s<83,l=d||!o("reduceRight");a({target:"Array",proto:!0,forced:l},{reduceRight:function(m){return t(this,m,arguments.length,arguments.length>1?arguments[1]:void 0)}})},62083:function(b,y,e){"use strict";var a=e(13354),t=e(82565).left,o=e(83242),s=e(8783),n=e(79727),d=!n&&s>79&&s<83,l=d||!o("reduce");a({target:"Array",proto:!0,forced:l},{reduce:function(m){var g=arguments.length;return t(this,m,g,g>1?arguments[1]:void 0)}})},36021:function(b,y,e){"use strict";var a=e(13354),t=e(2333),o=e(514),s=e(22054),n=Array;a({target:"Array",proto:!0},{toReversed:function(){return t(o(this),n)}}),s("toReversed")},38122:function(b,y,e){"use strict";var a=e(13354),t=e(11700),o=e(31927),s=e(514),n=e(50112),d=e(70721),l=e(22054),c=Array,m=t(d("Array").sort);a({target:"Array",proto:!0},{toSorted:function(M){M!==void 0&&o(M);var h=s(this),S=n(c,h);return m(S,M)}}),l("toSorted")},37116:function(b,y,e){"use strict";var a=e(13354),t=e(22054),o=e(12262),s=e(89122),n=e(71410),d=e(514),l=e(68345),c=Array,m=Math.max,g=Math.min;a({target:"Array",proto:!0},{toSpliced:function(h,S){var w=d(this),C=s(w),z=n(h,C),Z=arguments.length,N=0,L,$,D,T;for(Z===0?L=$=0:Z===1?(L=0,$=C-z):(L=Z-2,$=g(m(l(S),0),C-z)),D=o(C+L-$),T=c(D);N=0?S:h+S;return w<0||w>=h?void 0:l(M,w)}})},97390:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(11700),s=e(12105),n=e(6508),d=e(74883),l=e(42854),c=e(68424),m=e(15931),g=e(50533),M=e(47947),h=e(77740),S=e(77449),w=h("replace"),C=TypeError,z=o("".indexOf),Z=o("".replace),N=o("".slice),L=Math.max,$=function(D,T,j){return j>D.length?-1:T===""?j:z(D,T,j)};a({target:"String",proto:!0},{replaceAll:function(T,j){var G=s(this),k,te,Y,q,le,X,W,x,O,_=0,U=0,A="";if(!d(T)){if(k=l(T),k&&(te=c(s(g(T))),!~z(te,"g")))throw C("`.replaceAll` does not allow non-global regexes");if(Y=m(T,w),Y)return t(Y,T,G,j);if(S&&k)return Z(c(G),T,j)}for(q=c(G),le=c(T),X=n(j),X||(j=c(j)),W=le.length,x=L(1,W),_=$(q,le,0);_!==-1;)O=X?c(j(le,_,q)):M(le,q,_,[],void 0,j),A+=N(q,U,_)+O,U=_+W,_=$(q,le,_+x);return U=0?g:m+g;return M<0||M>=m?void 0:c[M]})},55759:function(b,y,e){"use strict";var a=e(94641),t=e(17464).findLastIndex,o=a.aTypedArray,s=a.exportTypedArrayMethod;s("findLastIndex",function(d){return t(o(this),d,arguments.length>1?arguments[1]:void 0)})},23239:function(b,y,e){"use strict";var a=e(94641),t=e(17464).findLast,o=a.aTypedArray,s=a.exportTypedArrayMethod;s("findLast",function(d){return t(o(this),d,arguments.length>1?arguments[1]:void 0)})},53289:function(b,y,e){"use strict";var a=e(53065),t=e(68029),o=e(94641),s=e(89122),n=e(5561),d=e(64441),l=e(77149),c=a.RangeError,m=a.Int8Array,g=m&&m.prototype,M=g&&g.set,h=o.aTypedArray,S=o.exportTypedArrayMethod,w=!l(function(){var z=new Uint8ClampedArray(2);return t(M,z,{length:1,0:3},1),z[1]!==3}),C=w&&o.NATIVE_ARRAY_BUFFER_VIEWS&&l(function(){var z=new m(2);return z.set(1),z.set("2",1),z[0]!==0||z[1]!==2});S("set",function(Z){h(this);var N=n(arguments.length>1?arguments[1]:void 0,1),L=d(Z);if(w)return t(M,this,L,N);var $=this.length,D=s(L),T=0;if(D+N>$)throw c("Wrong length");for(;T1?arguments[1]:void 0)}}),o("filterOut")},6719:function(b,y,e){"use strict";var a=e(13354),t=e(44708).filterReject,o=e(22054);a({target:"Array",proto:!0,forced:!0},{filterReject:function(n){return t(this,n,arguments.length>1?arguments[1]:void 0)}}),o("filterReject")},85590:function(b,y,e){var a=e(13354),t=e(44594);a({target:"Array",stat:!0},{fromAsync:t})},84602:function(b,y,e){var a=e(13354),t=e(83242),o=e(22054),s=e(59765),n=e(77449);a({target:"Array",proto:!0,name:"groupToMap",forced:n||!t("groupByToMap")},{groupByToMap:s}),o("groupByToMap")},56179:function(b,y,e){"use strict";var a=e(13354),t=e(69093),o=e(83242),s=e(22054);a({target:"Array",proto:!0,forced:!o("groupBy")},{groupBy:function(d){var l=arguments.length>1?arguments[1]:void 0;return t(this,d,l)}}),s("groupBy")},68765:function(b,y,e){var a=e(13354),t=e(22054),o=e(59765),s=e(77449);a({target:"Array",proto:!0,forced:s},{groupToMap:o}),t("groupToMap")},68090:function(b,y,e){"use strict";var a=e(13354),t=e(69093),o=e(22054);a({target:"Array",proto:!0},{group:function(n){var d=arguments.length>1?arguments[1]:void 0;return t(this,n,d)}}),o("group")},46377:function(b,y,e){var a=e(13354),t=e(190),o=Object.isFrozen,s=function(n,d){if(!o||!t(n)||!o(n))return!1;for(var l=0,c=n.length,m;l1?arguments[1]:void 0);return s(l,function(m,g){if(!c(m,g,l))return!1},!0)!==!1}})},82412:function(b,y,e){"use strict";var a=e(13354),t=e(34066),o=e(7328),s=e(85623),n=e(46782),d=s.Map,l=s.set;a({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(m){var g=o(this),M=t(m,arguments.length>1?arguments[1]:void 0),h=new d;return n(g,function(S,w){M(S,w,g)&&l(h,w,S)}),h}})},69205:function(b,y,e){"use strict";var a=e(13354),t=e(34066),o=e(7328),s=e(46782);a({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(d){var l=o(this),c=t(d,arguments.length>1?arguments[1]:void 0),m=s(l,function(g,M){if(c(g,M,l))return{key:M}},!0);return m&&m.key}})},53677:function(b,y,e){"use strict";var a=e(13354),t=e(34066),o=e(7328),s=e(46782);a({target:"Map",proto:!0,real:!0,forced:!0},{find:function(d){var l=o(this),c=t(d,arguments.length>1?arguments[1]:void 0),m=s(l,function(g,M){if(c(g,M,l))return{value:g}},!0);return m&&m.value}})},55994:function(b,y,e){var a=e(13354),t=e(67640);a({target:"Map",stat:!0,forced:!0},{from:t})},96103:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(11700),s=e(6508),n=e(31927),d=e(95815),l=e(85623).Map,c=o([].push);a({target:"Map",stat:!0,forced:!0},{groupBy:function(g,M){var h=s(this)?this:l,S=new h;n(M);var w=n(S.has),C=n(S.get),z=n(S.set);return d(g,function(Z){var N=M(Z);t(w,S,N)?c(t(C,S,N),Z):t(z,S,N,[Z])}),S}})},13153:function(b,y,e){"use strict";var a=e(13354),t=e(53496),o=e(7328),s=e(46782);a({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(d){return s(o(this),function(l){if(t(l,d))return!0},!0)===!0}})},51331:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(95815),s=e(6508),n=e(31927),d=e(85623).Map;a({target:"Map",stat:!0,forced:!0},{keyBy:function(c,m){var g=s(this)?this:d,M=new g;n(m);var h=n(M.set);return o(c,function(S){t(h,M,m(S),S)}),M}})},31471:function(b,y,e){"use strict";var a=e(13354),t=e(7328),o=e(46782);a({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(n){var d=o(t(this),function(l,c){if(l===n)return{key:c}},!0);return d&&d.key}})},48008:function(b,y,e){"use strict";var a=e(13354),t=e(34066),o=e(7328),s=e(85623),n=e(46782),d=s.Map,l=s.set;a({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(m){var g=o(this),M=t(m,arguments.length>1?arguments[1]:void 0),h=new d;return n(g,function(S,w){l(h,M(S,w,g),S)}),h}})},72877:function(b,y,e){"use strict";var a=e(13354),t=e(34066),o=e(7328),s=e(85623),n=e(46782),d=s.Map,l=s.set;a({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(m){var g=o(this),M=t(m,arguments.length>1?arguments[1]:void 0),h=new d;return n(g,function(S,w){l(h,w,M(S,w,g))}),h}})},55778:function(b,y,e){"use strict";var a=e(13354),t=e(7328),o=e(95815),s=e(85623).set;a({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(d){for(var l=t(this),c=arguments.length,m=0;m1?arguments[1]:void 0);return s(l,function(m,g){if(c(m,g,l))return!0},!0)===!0}})},74613:function(b,y,e){"use strict";var a=e(13354),t=e(32171);a({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:t})},22252:function(b,y,e){"use strict";var a=e(13354),t=e(31927),o=e(7328),s=e(85623),n=TypeError,d=s.get,l=s.has,c=s.set;a({target:"Map",proto:!0,real:!0,forced:!0},{update:function(g,M){var h=o(this),S=arguments.length;t(M);var w=l(h,g);if(!w&&S<3)throw n("Updating absent value");var C=w?d(h,g):t(S>2?arguments[2]:void 0)(g,h);return c(h,g,M(C,g,h)),h}})},85890:function(b,y,e){"use strict";var a=e(13354),t=e(32171);a({target:"Map",proto:!0,real:!0,forced:!0},{upsert:t})},49489:function(b,y,e){var a=e(13354),t=Math.min,o=Math.max;a({target:"Math",stat:!0,forced:!0},{clamp:function(n,d,l){return t(l,o(d,n))}})},63478:function(b,y,e){var a=e(13354);a({target:"Math",stat:!0,nonConfigurable:!0,nonWritable:!0},{DEG_PER_RAD:Math.PI/180})},88126:function(b,y,e){var a=e(13354),t=180/Math.PI;a({target:"Math",stat:!0,forced:!0},{degrees:function(s){return s*t}})},24760:function(b,y,e){var a=e(13354),t=e(15129),o=e(18749);a({target:"Math",stat:!0,forced:!0},{fscale:function(n,d,l,c,m){return o(t(n,d,l,c,m))}})},37877:function(b,y,e){var a=e(13354);a({target:"Math",stat:!0,forced:!0},{iaddh:function(o,s,n,d){var l=o>>>0,c=s>>>0,m=n>>>0;return c+(d>>>0)+((l&m|(l|m)&~(l+m>>>0))>>>31)|0}})},99461:function(b,y,e){var a=e(13354);a({target:"Math",stat:!0,forced:!0},{imulh:function(o,s){var n=65535,d=+o,l=+s,c=d&n,m=l&n,g=d>>16,M=l>>16,h=(g*m>>>0)+(c*m>>>16);return g*M+(h>>16)+((c*M>>>0)+(h&n)>>16)}})},63746:function(b,y,e){var a=e(13354);a({target:"Math",stat:!0,forced:!0},{isubh:function(o,s,n,d){var l=o>>>0,c=s>>>0,m=n>>>0;return c-(d>>>0)-((~l&m|~(l^m)&l-m>>>0)>>>31)|0}})},8443:function(b,y,e){var a=e(13354);a({target:"Math",stat:!0,nonConfigurable:!0,nonWritable:!0},{RAD_PER_DEG:180/Math.PI})},75738:function(b,y,e){var a=e(13354),t=Math.PI/180;a({target:"Math",stat:!0,forced:!0},{radians:function(s){return s*t}})},13322:function(b,y,e){var a=e(13354),t=e(15129);a({target:"Math",stat:!0,forced:!0},{scale:t})},64748:function(b,y,e){var a=e(13354),t=e(78958),o=e(54633),s=e(87821),n=e(76835),d=e(71584),l="Seeded Random",c=l+" Generator",m='Math.seededPRNG() argument should have a "seed" field with a finite value.',g=d.set,M=d.getterFor(c),h=TypeError,S=s(function(C){g(this,{type:c,seed:C%2147483647})},l,function(){var C=M(this),z=C.seed=(C.seed*1103515245+12345)%2147483647;return n((z&1073741823)/1073741823,!1)});a({target:"Math",stat:!0,forced:!0},{seededPRNG:function(C){var z=t(C).seed;if(!o(z))throw h(m);return new S(z)}})},59048:function(b,y,e){var a=e(13354);a({target:"Math",stat:!0,forced:!0},{signbit:function(o){var s=+o;return s==s&&s==0?1/s==-1/0:s<0}})},25215:function(b,y,e){var a=e(13354);a({target:"Math",stat:!0,forced:!0},{umulh:function(o,s){var n=65535,d=+o,l=+s,c=d&n,m=l&n,g=d>>>16,M=l>>>16,h=(g*m>>>0)+(c*m>>>16);return g*M+(h>>>16)+((c*M>>>0)+(h&n)>>>16)}})},89495:function(b,y,e){"use strict";var a=e(13354),t=e(11700),o=e(68345),s=e(35323),n="Invalid number representation",d="Invalid radix",l=RangeError,c=SyntaxError,m=TypeError,g=/^[\da-z]+$/,M=t("".charAt),h=t(g.exec),S=t(1 .toString),w=t("".slice);a({target:"Number",stat:!0,forced:!0},{fromString:function(z,Z){var N=1,L,$;if(typeof z!="string")throw m(n);if(!z.length||M(z,0)=="-"&&(N=-1,z=w(z,1),!z.length))throw c(n);if(L=Z===void 0?10:o(Z),L<2||L>36)throw l(d);if(!h(g,z)||S($=s(z,L),L)!==z)throw c(n);return N*$}})},78490:function(b,y,e){"use strict";var a=e(13354),t=e(73126);a({target:"Number",stat:!0,forced:!0},{range:function(s,n,d){return new t(s,n,d,"number",0,1)}})},11790:function(b,y,e){"use strict";var a=e(13354),t=e(65556);a({target:"Object",stat:!0,forced:!0},{iterateEntries:function(s){return new t(s,"entries")}})},52739:function(b,y,e){"use strict";var a=e(13354),t=e(65556);a({target:"Object",stat:!0,forced:!0},{iterateKeys:function(s){return new t(s,"keys")}})},96847:function(b,y,e){"use strict";var a=e(13354),t=e(65556);a({target:"Object",stat:!0,forced:!0},{iterateValues:function(s){return new t(s,"values")}})},8120:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(57759),s=e(51309),n=e(31927),d=e(78958),l=e(92453),c=e(6508),m=e(74883),g=e(33225),M=e(15931),h=e(28621),S=e(3313),w=e(2265),C=e(3234),z=e(77740),Z=e(71584),N=e(88818),L=z("observable"),$="Observable",D="Subscription",T="SubscriptionObserver",j=Z.getterFor,G=Z.set,k=j($),te=j(D),Y=j(T),q=function(O){this.observer=d(O),this.cleanup=void 0,this.subscriptionObserver=void 0};q.prototype={type:D,clean:function(){var O=this.cleanup;if(O){this.cleanup=void 0;try{O()}catch(_){C(_)}}},close:function(){if(!o){var O=this.facade,_=this.subscriptionObserver;O.closed=!0,_&&(_.closed=!0)}this.observer=void 0},isClosed:function(){return this.observer===void 0}};var le=function(O,_){var U=G(this,new q(O)),A;o||(this.closed=!1);try{(A=M(O,"start"))&&t(A,O,this)}catch(ge){C(ge)}if(!U.isClosed()){var V=U.subscriptionObserver=new X(U);try{var fe=_(V),pe=fe;m(fe)||(U.cleanup=c(fe.unsubscribe)?function(){pe.unsubscribe()}:n(fe))}catch(ge){V.error(ge);return}U.isClosed()&&U.clean()}};le.prototype=S({},{unsubscribe:function(){var _=te(this);_.isClosed()||(_.close(),_.clean())}}),o&&w(le.prototype,"closed",{configurable:!0,get:function(){return te(this).isClosed()}});var X=function(O){G(this,{type:T,subscriptionState:O}),o||(this.closed=!1)};X.prototype=S({},{next:function(_){var U=Y(this).subscriptionState;if(!U.isClosed()){var A=U.observer;try{var V=M(A,"next");V&&t(V,A,_)}catch(fe){C(fe)}}},error:function(_){var U=Y(this).subscriptionState;if(!U.isClosed()){var A=U.observer;U.close();try{var V=M(A,"error");V?t(V,A,_):C(_)}catch(fe){C(fe)}U.clean()}},complete:function(){var _=Y(this).subscriptionState;if(!_.isClosed()){var U=_.observer;_.close();try{var A=M(U,"complete");A&&t(A,U)}catch(V){C(V)}_.clean()}}}),o&&w(X.prototype,"closed",{configurable:!0,get:function(){return Y(this).subscriptionState.isClosed()}});var W=function(_){l(this,x),G(this,{type:$,subscriber:n(_)})},x=W.prototype;S(x,{subscribe:function(_){var U=arguments.length;return new le(c(_)?{next:_,error:U>1?arguments[1]:void 0,complete:U>2?arguments[2]:void 0}:g(_)?_:{},k(this).subscriber)}}),h(x,L,function(){return this}),a({global:!0,constructor:!0,forced:N},{Observable:W}),s($)},11341:function(b,y,e){"use strict";var a=e(13354),t=e(42725),o=e(68029),s=e(78958),n=e(13893),d=e(64712),l=e(15931),c=e(95815),m=e(77740),g=e(88818),M=m("observable");a({target:"Observable",stat:!0,forced:g},{from:function(S){var w=n(this)?this:t("Observable"),C=l(s(S),M);if(C){var z=s(o(C,S));return z.constructor===w?z:new w(function(N){return z.subscribe(N)})}var Z=d(S);return new w(function(N){c(Z,function(L,$){if(N.next(L),N.closed)return $()},{IS_ITERATOR:!0,INTERRUPTED:!0}),N.complete()})}})},57099:function(b,y,e){e(8120),e(11341),e(21720)},21720:function(b,y,e){"use strict";var a=e(13354),t=e(42725),o=e(13893),s=e(88818),n=t("Array");a({target:"Observable",stat:!0,forced:s},{of:function(){for(var l=o(this)?this:t("Observable"),c=arguments.length,m=n(c),g=0;g1?arguments[1]:void 0);return s(l,function(m){if(!c(m,m,l))return!1},!0)!==!1}})},17960:function(b,y,e){"use strict";var a=e(13354),t=e(34066),o=e(77318),s=e(23313),n=e(22731),d=s.Set,l=s.add;a({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(m){var g=o(this),M=t(m,arguments.length>1?arguments[1]:void 0),h=new d;return n(g,function(S){M(S,S,g)&&l(h,S)}),h}})},25823:function(b,y,e){"use strict";var a=e(13354),t=e(34066),o=e(77318),s=e(22731);a({target:"Set",proto:!0,real:!0,forced:!0},{find:function(d){var l=o(this),c=t(d,arguments.length>1?arguments[1]:void 0),m=s(l,function(g){if(c(g,g,l))return{value:g}},!0);return m&&m.value}})},56133:function(b,y,e){var a=e(13354),t=e(67640);a({target:"Set",stat:!0,forced:!0},{from:t})},6762:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(74089),s=e(51737);a({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(d){return t(s,this,o(d))}})},60682:function(b,y,e){var a=e(13354),t=e(51737),o=e(82493);a({target:"Set",proto:!0,real:!0,forced:!o("intersection")},{intersection:t})},36925:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(74089),s=e(46149);a({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(d){return t(s,this,o(d))}})},65107:function(b,y,e){var a=e(13354),t=e(46149),o=e(82493);a({target:"Set",proto:!0,real:!0,forced:!o("isDisjointFrom")},{isDisjointFrom:t})},9882:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(74089),s=e(99527);a({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(d){return t(s,this,o(d))}})},31772:function(b,y,e){var a=e(13354),t=e(99527),o=e(82493);a({target:"Set",proto:!0,real:!0,forced:!o("isSubsetOf")},{isSubsetOf:t})},95344:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(74089),s=e(20698);a({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(d){return t(s,this,o(d))}})},19453:function(b,y,e){var a=e(13354),t=e(20698),o=e(82493);a({target:"Set",proto:!0,real:!0,forced:!o("isSupersetOf")},{isSupersetOf:t})},51301:function(b,y,e){"use strict";var a=e(13354),t=e(11700),o=e(77318),s=e(22731),n=e(68424),d=t([].join),l=t([].push);a({target:"Set",proto:!0,real:!0,forced:!0},{join:function(m){var g=o(this),M=m===void 0?",":n(m),h=[];return s(g,function(S){l(h,S)}),d(h,M)}})},71395:function(b,y,e){"use strict";var a=e(13354),t=e(34066),o=e(77318),s=e(23313),n=e(22731),d=s.Set,l=s.add;a({target:"Set",proto:!0,real:!0,forced:!0},{map:function(m){var g=o(this),M=t(m,arguments.length>1?arguments[1]:void 0),h=new d;return n(g,function(S){l(h,M(S,S,g))}),h}})},38054:function(b,y,e){var a=e(13354),t=e(55042);a({target:"Set",stat:!0,forced:!0},{of:t})},92141:function(b,y,e){"use strict";var a=e(13354),t=e(31927),o=e(77318),s=e(22731),n=TypeError;a({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(l){var c=o(this),m=arguments.length<2,g=m?void 0:arguments[1];if(t(l),s(c,function(M){m?(m=!1,g=M):g=l(g,M,M,c)}),m)throw n("Reduce of empty set with no initial value");return g}})},95396:function(b,y,e){"use strict";var a=e(13354),t=e(34066),o=e(77318),s=e(22731);a({target:"Set",proto:!0,real:!0,forced:!0},{some:function(d){var l=o(this),c=t(d,arguments.length>1?arguments[1]:void 0);return s(l,function(m){if(c(m,m,l))return!0},!0)===!0}})},11859:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(74089),s=e(52100);a({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(d){return t(s,this,o(d))}})},13409:function(b,y,e){var a=e(13354),t=e(52100),o=e(82493);a({target:"Set",proto:!0,real:!0,forced:!o("symmetricDifference")},{symmetricDifference:t})},4681:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(74089),s=e(45953);a({target:"Set",proto:!0,real:!0,forced:!0},{union:function(d){return t(s,this,o(d))}})},51113:function(b,y,e){var a=e(13354),t=e(45953),o=e(82493);a({target:"Set",proto:!0,real:!0,forced:!o("union")},{union:t})},15307:function(b,y,e){"use strict";var a=e(13354),t=e(81673).charAt,o=e(12105),s=e(68345),n=e(68424);a({target:"String",proto:!0,forced:!0},{at:function(l){var c=n(o(this)),m=c.length,g=s(l),M=g>=0?g:m+g;return M<0||M>=m?void 0:t(c,M)}})},36879:function(b,y,e){"use strict";var a=e(13354),t=e(87821),o=e(76835),s=e(12105),n=e(68424),d=e(71584),l=e(81673),c=l.codeAt,m=l.charAt,g="String Iterator",M=d.set,h=d.getterFor(g),S=t(function(C){M(this,{type:g,string:C,index:0})},"String",function(){var C=h(this),z=C.string,Z=C.index,N;return Z>=z.length?o(void 0,!0):(N=m(z,Z),C.index+=N.length,o({codePoint:c(N,0),position:Z},!1))});a({target:"String",proto:!0,forced:!0},{codePoints:function(){return new S(n(s(this)))}})},27008:function(b,y,e){var a=e(13354),t=e(85650);a({target:"String",stat:!0,forced:!0},{cooked:t})},91345:function(b,y,e){"use strict";var a=e(81506),t=e(13354),o=e(71980),s=e(42725),n=e(70377),d=e(11700),l=e(59178),c=e(78958),m=e(64441),g=e(6508),M=e(89122),h=e(38248).f,S=e(81469),w=e(85650),C=e(81089),z=e(91289),Z=s("WeakMap"),N=o("GlobalDedentRegistry",new Z);N.has=N.has,N.get=N.get,N.set=N.set;var L=Array,$=TypeError,D=Object.freeze||Object,T=Object.isFrozen,j=Math.min,G=d("".charAt),k=d("".slice),te=d("".split),Y=d(/./.exec),q=/([\n\u2028\u2029]|\r\n?)/g,le=RegExp("^["+z+"]*"),X=RegExp("[^"+z+"]"),W="Invalid tag",x="Invalid opening line",O="Invalid closing line",_=function(ge){var be=ge.raw;if(a&&!T(be))throw $("Raw template should be frozen");if(N.has(be))return N.get(be);var Te=U(be),Ge=V(Te);return h(Ge,"raw",{value:D(Te)}),D(Ge),N.set(be,Ge),Ge},U=function(ge){var be=m(ge),Te=M(be),Ge=L(Te),qe=L(Te),Qe=0,ht,Et;if(!Te)throw $(W);for(;Qe0)throw $(x);ht[1]=""}if(Ht){if(ht.length===1||Y(X,ht[ht.length-1]))throw $(O);ht[ht.length-2]="",ht[ht.length-1]=""}for(var $e=2;$e=56320||++m>=c||(n(l,m)&64512)!=56320))return!1}return!0}})},5744:function(b,y,e){"use strict";var a=e(13354),t=e(68029),o=e(11700),s=e(12105),n=e(68424),d=e(77149),l=Array,c=o("".charAt),m=o("".charCodeAt),g=o([].join),M="".toWellFormed,h="\uFFFD",S=M&&d(function(){return t(M,1)!=="1"});a({target:"String",proto:!0,forced:S},{toWellFormed:function(){var C=n(s(this));if(S)return t(M,C);for(var z=C.length,Z=l(z),N=0;N=56320||N+1>=z||(m(C,N+1)&64512)!=56320?Z[N]=h:(Z[N]=c(C,N),Z[++N]=c(C,N))}return g(Z,"")}})},2017:function(b,y,e){"use strict";var a=e(13354),t=e(72901),o=e(77767),s=e(63332),n=e(81732),d=e(34552),l=e(5927),c=e(87971),m=e(96410),g=e(9280),M=e(77740),h=M("toStringTag"),S=Error,w=function(Z,N,L){var $=t(C,this),D;return s?D=s(S(),$?o(this):C):(D=$?this:d(C),l(D,h,"Error")),L!==void 0&&l(D,"message",g(L)),m(D,w,D.stack,1),l(D,"error",Z),l(D,"suppressed",N),D};s?s(w,S):n(w,S,{name:!0});var C=w.prototype=d(S.prototype,{constructor:c(1,w),message:c(1,""),name:c(1,"SuppressedError")});a({global:!0,constructor:!0,arity:3},{SuppressedError:w})},12447:function(b,y,e){var a=e(78186);a("asyncDispose")},50706:function(b,y,e){var a=e(78186);a("dispose")},80593:function(b,y,e){var a=e(13354),t=e(42725),o=e(11700),s=t("Symbol"),n=s.keyFor,d=o(s.prototype.valueOf);a({target:"Symbol",stat:!0},{isRegistered:function(c){try{return n(d(c))!==void 0}catch(m){return!1}}})},41693:function(b,y,e){for(var a=e(13354),t=e(71980),o=e(42725),s=e(11700),n=e(59549),d=e(77740),l=o("Symbol"),c=l.isWellKnown,m=o("Object","getOwnPropertyNames"),g=s(l.prototype.valueOf),M=t("wks"),h=0,S=m(l),w=S.length;h1?arguments[1]:void 0);return o(this,c)},!0)},73165:function(b,y,e){"use strict";var a=e(94641),t=e(44708).filterReject,o=e(64395),s=a.aTypedArray,n=a.exportTypedArrayMethod;n("filterReject",function(l){var c=t(s(this),l,arguments.length>1?arguments[1]:void 0);return o(this,c)},!0)},56390:function(b,y,e){"use strict";var a=e(42725),t=e(89764),o=e(44594),s=e(94641),n=e(50112),d=s.aTypedArrayConstructor,l=s.exportTypedArrayStaticMethod;l("fromAsync",function(m){var g=this,M=arguments.length,h=M>1?arguments[1]:void 0,S=M>2?arguments[2]:void 0;return new(a("Promise"))(function(w){t(g),w(o(m,h,S))}).then(function(w){return n(d(g),w)})},!0)},20233:function(b,y,e){"use strict";var a=e(94641),t=e(69093),o=e(93947),s=a.aTypedArray,n=a.exportTypedArrayMethod;n("groupBy",function(l){var c=arguments.length>1?arguments[1]:void 0;return t(s(this),l,c,o)},!0)},18444:function(b,y,e){"use strict";var a=e(94641),t=e(89122),o=e(30879),s=e(71410),n=e(28046),d=e(68345),l=e(77149),c=a.aTypedArray,m=a.getTypedArrayConstructor,g=a.exportTypedArrayMethod,M=Math.max,h=Math.min,S=!l(function(){var w=new Int8Array([1]),C=w.toSpliced(1,0,{valueOf:function(){return w[0]=2,3}});return C[0]!==2||C[1]!==3});g("toSpliced",function(C,z){var Z=c(this),N=m(Z),L=t(Z),$=s(C,L),D=arguments.length,T=0,j,G,k,te,Y,q,le;if(D===0)j=G=0;else if(D===1)j=0,G=L-$;else if(G=h(M(d(z),0),L-$),j=D-2,j){te=new N(j),k=o(te);for(var X=2;X1&&!g(arguments[1])?w(arguments[1]):void 0,ce=xe?xe.transfer:void 0,Ne;return ce!==void 0&&(Ne=new Te,se(ce,Ne)),re(de,Ne)}})},81474:function(b,y,e){"use strict";var a=e(90894),t=e(8197),o=e(56265),s=e(20610),n=e(13),d=b.exports=function(l,c){var m,g,M,h,S;return arguments.length<2||typeof l!="string"?(h=c,c=l,l=null):h=arguments[2],a(l)?(m=n.call(l,"c"),g=n.call(l,"e"),M=n.call(l,"w")):(m=M=!0,g=!1),S={value:c,configurable:m,enumerable:g,writable:M},h?o(s(h),S):S};d.gs=function(l,c,m){var g,M,h,S;return typeof l!="string"?(h=m,m=c,c=l,l=null):h=arguments[3],a(c)?t(c)?a(m)?t(m)||(h=m,m=void 0):m=void 0:(h=c,c=m=void 0):c=void 0,a(l)?(g=n.call(l,"c"),M=n.call(l,"e")):(g=!0,M=!1),S={get:c,set:m,configurable:g,enumerable:M},h?o(s(h),S):S}},65140:function(b){"use strict";var y="%[a-f0-9]{2}",e=new RegExp("("+y+")|([^%]+?)","gi"),a=new RegExp("("+y+")+","gi");function t(n,d){try{return[decodeURIComponent(n.join(""))]}catch(m){}if(n.length===1)return n;d=d||1;var l=n.slice(0,d),c=n.slice(d);return Array.prototype.concat.call([],t(l),t(c))}function o(n){try{return decodeURIComponent(n)}catch(c){for(var d=n.match(e)||[],l=1;l1&&arguments[1]!==void 0?arguments[1]:s;if(t){var m={match:function(){l&&l(!0)},unmatch:function(){l&&l()}};return t.register(c,m),m}}function d(l){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s;t&&t.unregister(c,l)}a=t},20699:function(b,y,e){var a=e(66835),t=e(54802).each;function o(s,n){this.query=s,this.isUnconditional=n,this.handlers=[],this.mql=window.matchMedia(s);var d=this;this.listener=function(l){d.mql=l.currentTarget||l,d.assess()},this.mql.addListener(this.listener)}o.prototype={constuctor:o,addHandler:function(s){var n=new a(s);this.handlers.push(n),this.matches()&&n.on()},removeHandler:function(s){var n=this.handlers;t(n,function(d,l){if(d.equals(s))return d.destroy(),!n.splice(l,1)})},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){t(this.handlers,function(s){s.destroy()}),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var s=this.matches()?"on":"off";t(this.handlers,function(n){n[s]()})}},b.exports=o},68323:function(b,y,e){var a=e(20699),t=e(54802),o=t.each,s=t.isFunction,n=t.isArray;function d(){if(!window.matchMedia)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!window.matchMedia("only all").matches}d.prototype={constructor:d,register:function(l,c,m){var g=this.queries,M=m&&this.browserIsIncapable;return g[l]||(g[l]=new a(l,M)),s(c)&&(c={match:c}),n(c)||(c=[c]),o(c,function(h){s(h)&&(h={match:h}),g[l].addHandler(h)}),this},unregister:function(l,c){var m=this.queries[l];return m&&(c?m.removeHandler(c):(m.clear(),delete this.queries[l])),this}},b.exports=d},66835:function(b){function y(e){this.options=e,!e.deferSetup&&this.setup()}y.prototype={constructor:y,setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(e){return this.options===e||this.options.match===e}},b.exports=y},54802:function(b){function y(t,o){var s=0,n=t.length,d;for(s;s-1}},87308:function(b,y,e){"use strict";var a=e(81474),t=e(54550),o=Function.prototype.apply,s=Function.prototype.call,n=Object.create,d=Object.defineProperty,l=Object.defineProperties,c=Object.prototype.hasOwnProperty,m={configurable:!0,enumerable:!1,writable:!0},g,M,h,S,w,C,z;g=function(Z,N){var L;return t(N),c.call(this,"__ee__")?L=this.__ee__:(L=m.value=n(null),d(this,"__ee__",m),m.value=null),L[Z]?typeof L[Z]=="object"?L[Z].push(N):L[Z]=[L[Z],N]:L[Z]=N,this},M=function(Z,N){var L,$;return t(N),$=this,g.call(this,Z,L=function(){h.call($,Z,L),o.call(N,this,arguments)}),L.__eeOnceListener__=N,this},h=function(Z,N){var L,$,D,T;if(t(N),!c.call(this,"__ee__"))return this;if(L=this.__ee__,!L[Z])return this;if($=L[Z],typeof $=="object")for(T=0;D=$[T];++T)(D===N||D.__eeOnceListener__===N)&&($.length===2?L[Z]=$[T?0:1]:$.splice(T,1));else($===N||$.__eeOnceListener__===N)&&delete L[Z];return this},S=function(Z){var N,L,$,D,T;if(c.call(this,"__ee__")&&(D=this.__ee__[Z],!!D))if(typeof D=="object"){for(L=arguments.length,T=new Array(L-1),N=1;N=0&&(N.hash=Z.substr(L),Z=Z.substr(0,L));var $=Z.indexOf("?");$>=0&&(N.search=Z.substr($),Z=Z.substr(0,$)),Z&&(N.pathname=Z)}return N}},10063:function(b,y,e){"use strict";var a=e(99415),t={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},s={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},n={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},d={};d[a.ForwardRef]=s,d[a.Memo]=n;function l(C){return a.isMemo(C)?n:d[C.$$typeof]||t}var c=Object.defineProperty,m=Object.getOwnPropertyNames,g=Object.getOwnPropertySymbols,M=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,S=Object.prototype;function w(C,z,Z){if(typeof z!="string"){if(S){var N=h(z);N&&N!==S&&w(C,N,Z)}var L=m(z);g&&(L=L.concat(g(z)));for(var $=l(C),D=l(z),T=0;T>1,g=-7,M=t?s-1:0,h=t?-1:1,S=e[a+M];for(M+=h,n=S&(1<<-g)-1,S>>=-g,g+=l;g>0;n=n*256+e[a+M],M+=h,g-=8);for(d=n&(1<<-g)-1,n>>=-g,g+=o;g>0;d=d*256+e[a+M],M+=h,g-=8);if(n===0)n=1-m;else{if(n===c)return d?NaN:(S?-1:1)*(1/0);d=d+Math.pow(2,o),n=n-m}return(S?-1:1)*d*Math.pow(2,n-o)},y.write=function(e,a,t,o,s,n){var d,l,c,m=n*8-s-1,g=(1<>1,h=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,S=o?0:n-1,w=o?1:-1,C=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(l=isNaN(a)?1:0,d=g):(d=Math.floor(Math.log(a)/Math.LN2),a*(c=Math.pow(2,-d))<1&&(d--,c*=2),d+M>=1?a+=h/c:a+=h*Math.pow(2,1-M),a*c>=2&&(d++,c/=2),d+M>=g?(l=0,d=g):d+M>=1?(l=(a*c-1)*Math.pow(2,s),d=d+M):(l=a*Math.pow(2,M-1)*Math.pow(2,s),d=0));s>=8;e[t+S]=l&255,S+=w,l/=256,s-=8);for(d=d<0;e[t+S]=d&255,S+=w,d/=256,m-=8);e[t+S-w]|=C*128}},21700:function(b){"use strict";var y=function(e,a,t,o,s,n,d,l){if(!e){var c;if(a===void 0)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var m=[t,o,s,n,d,l],g=0;c=new Error(a.replace(/%s/g,function(){return m[g++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}};b.exports=y},23161:function(b){var y={}.toString;b.exports=Array.isArray||function(e){return y.call(e)=="[object Array]"}},61012:function(b,y,e){var a=1/0,t="[object Symbol]",o=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,s=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,n="\\ud800-\\udfff",d="\\u0300-\\u036f\\ufe20-\\ufe23",l="\\u20d0-\\u20f0",c="\\u2700-\\u27bf",m="a-z\\xdf-\\xf6\\xf8-\\xff",g="\\xac\\xb1\\xd7\\xf7",M="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",h="\\u2000-\\u206f",S=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",w="A-Z\\xc0-\\xd6\\xd8-\\xde",C="\\ufe0e\\ufe0f",z=g+M+h+S,Z="['\u2019]",N="["+n+"]",L="["+z+"]",$="["+d+l+"]",D="\\d+",T="["+c+"]",j="["+m+"]",G="[^"+n+z+D+c+m+w+"]",k="\\ud83c[\\udffb-\\udfff]",te="(?:"+$+"|"+k+")",Y="[^"+n+"]",q="(?:\\ud83c[\\udde6-\\uddff]){2}",le="[\\ud800-\\udbff][\\udc00-\\udfff]",X="["+w+"]",W="\\u200d",x="(?:"+j+"|"+G+")",O="(?:"+X+"|"+G+")",_="(?:"+Z+"(?:d|ll|m|re|s|t|ve))?",U="(?:"+Z+"(?:D|LL|M|RE|S|T|VE))?",A=te+"?",V="["+C+"]?",fe="(?:"+W+"(?:"+[Y,q,le].join("|")+")"+V+A+")*",pe=V+A+fe,ge="(?:"+[T,q,le].join("|")+")"+pe,be="(?:"+[Y+$+"?",$,q,le,N].join("|")+")",Te=RegExp(Z,"g"),Ge=RegExp($,"g"),qe=RegExp(k+"(?="+k+")|"+be+pe,"g"),Qe=RegExp([X+"?"+j+"+"+_+"(?="+[L,X,"$"].join("|")+")",O+"+"+U+"(?="+[L,X+x,"$"].join("|")+")",X+"?"+x+"+"+_,X+"+"+U,D,ge].join("|"),"g"),ht=RegExp("["+W+n+d+l+C+"]"),Et=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,gt={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},Ht=typeof e.g=="object"&&e.g&&e.g.Object===Object&&e.g,$e=typeof self=="object"&&self&&self.Object===Object&&self,Xe=Ht||$e||Function("return this")();function rt(ke,Be,it,Ve){var xt=-1,_t=ke?ke.length:0;for(Ve&&_t&&(it=ke[++xt]);++xt<_t;)it=Be(it,ke[xt],xt,ke);return it}function Ke(ke){return ke.split("")}function ye(ke){return ke.match(o)||[]}function ne(ke){return function(Be){return ke==null?void 0:ke[Be]}}var H=ne(gt);function R(ke){return ht.test(ke)}function P(ke){return Et.test(ke)}function ae(ke){return R(ke)?Q(ke):Ke(ke)}function Q(ke){return ke.match(qe)||[]}function ie(ke){return ke.match(Qe)||[]}var me=Object.prototype,je=me.toString,Ce=Xe.Symbol,Se=Ce?Ce.prototype:void 0,We=Se?Se.toString:void 0;function re(ke,Be,it){var Ve=-1,xt=ke.length;Be<0&&(Be=-Be>xt?0:xt+Be),it=it>xt?xt:it,it<0&&(it+=xt),xt=Be>it?0:it-Be>>>0,Be>>>=0;for(var _t=Array(xt);++Ve=Ve?ke:re(ke,Be,it)}function de(ke){return function(Be){Be=Oe(Be);var it=R(Be)?ae(Be):void 0,Ve=it?it[0]:Be.charAt(0),xt=it?J(it,1).join(""):Be.slice(1);return Ve[ke]()+xt}}function xe(ke){return function(Be){return rt(Ye(st(Be).replace(Te,"")),ke,"")}}function ce(ke){return!!ke&&typeof ke=="object"}function Ne(ke){return typeof ke=="symbol"||ce(ke)&&je.call(ke)==t}function Oe(ke){return ke==null?"":se(ke)}var we=xe(function(ke,Be,it){return Be=Be.toLowerCase(),ke+(it?Re(Be):Be)});function Re(ke){return tt(Oe(ke).toLowerCase())}function st(ke){return ke=Oe(ke),ke&&ke.replace(s,H).replace(Ge,"")}var tt=de("toUpperCase");function Ye(ke,Be,it){return ke=Oe(ke),Be=it?void 0:Be,Be===void 0?P(ke)?ie(ke):ye(ke):ke.match(Be)||[]}b.exports=we},51899:function(b,y,e){var a="Expected a function",t=NaN,o="[object Symbol]",s=/^\s+|\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,d=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt,m=typeof e.g=="object"&&e.g&&e.g.Object===Object&&e.g,g=typeof self=="object"&&self&&self.Object===Object&&self,M=m||g||Function("return this")(),h=Object.prototype,S=h.toString,w=Math.max,C=Math.min,z=function(){return M.Date.now()};function Z(T,j,G){var k,te,Y,q,le,X,W=0,x=!1,O=!1,_=!0;if(typeof T!="function")throw new TypeError(a);j=D(j)||0,N(G)&&(x=!!G.leading,O="maxWait"in G,Y=O?w(D(G.maxWait)||0,j):Y,_="trailing"in G?!!G.trailing:_);function U(qe){var Qe=k,ht=te;return k=te=void 0,W=qe,q=T.apply(ht,Qe),q}function A(qe){return W=qe,le=setTimeout(pe,j),x?U(qe):q}function V(qe){var Qe=qe-X,ht=qe-W,Et=j-Qe;return O?C(Et,Y-ht):Et}function fe(qe){var Qe=qe-X,ht=qe-W;return X===void 0||Qe>=j||Qe<0||O&&ht>=Y}function pe(){var qe=z();if(fe(qe))return ge(qe);le=setTimeout(pe,V(qe))}function ge(qe){return le=void 0,_&&k?U(qe):(k=te=void 0,q)}function be(){le!==void 0&&clearTimeout(le),W=0,k=X=te=le=void 0}function Te(){return le===void 0?q:ge(z())}function Ge(){var qe=z(),Qe=fe(qe);if(k=arguments,te=this,X=qe,Qe){if(le===void 0)return A(X);if(O)return le=setTimeout(pe,j),U(X)}return le===void 0&&(le=setTimeout(pe,j)),q}return Ge.cancel=be,Ge.flush=Te,Ge}function N(T){var j=typeof T;return!!T&&(j=="object"||j=="function")}function L(T){return!!T&&typeof T=="object"}function $(T){return typeof T=="symbol"||L(T)&&S.call(T)==o}function D(T){if(typeof T=="number")return T;if($(T))return t;if(N(T)){var j=typeof T.valueOf=="function"?T.valueOf():T;T=N(j)?j+"":j}if(typeof T!="string")return T===0?T:+T;T=T.replace(s,"");var G=d.test(T);return G||l.test(T)?c(T.slice(2),G?2:8):n.test(T)?t:+T}b.exports=Z},14978:function(b,y,e){var a="Expected a function",t=NaN,o="[object Symbol]",s=/^\s+|\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,d=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt,m=typeof e.g=="object"&&e.g&&e.g.Object===Object&&e.g,g=typeof self=="object"&&self&&self.Object===Object&&self,M=m||g||Function("return this")(),h=Object.prototype,S=h.toString,w=Math.max,C=Math.min,z=function(){return M.Date.now()};function Z(j,G,k){var te,Y,q,le,X,W,x=0,O=!1,_=!1,U=!0;if(typeof j!="function")throw new TypeError(a);G=T(G)||0,L(k)&&(O=!!k.leading,_="maxWait"in k,q=_?w(T(k.maxWait)||0,G):q,U="trailing"in k?!!k.trailing:U);function A(Qe){var ht=te,Et=Y;return te=Y=void 0,x=Qe,le=j.apply(Et,ht),le}function V(Qe){return x=Qe,X=setTimeout(ge,G),O?A(Qe):le}function fe(Qe){var ht=Qe-W,Et=Qe-x,gt=G-ht;return _?C(gt,q-Et):gt}function pe(Qe){var ht=Qe-W,Et=Qe-x;return W===void 0||ht>=G||ht<0||_&&Et>=q}function ge(){var Qe=z();if(pe(Qe))return be(Qe);X=setTimeout(ge,fe(Qe))}function be(Qe){return X=void 0,U&&te?A(Qe):(te=Y=void 0,le)}function Te(){X!==void 0&&clearTimeout(X),x=0,te=W=Y=X=void 0}function Ge(){return X===void 0?le:be(z())}function qe(){var Qe=z(),ht=pe(Qe);if(te=arguments,Y=this,W=Qe,ht){if(X===void 0)return V(W);if(_)return X=setTimeout(ge,G),A(W)}return X===void 0&&(X=setTimeout(ge,G)),le}return qe.cancel=Te,qe.flush=Ge,qe}function N(j,G,k){var te=!0,Y=!0;if(typeof j!="function")throw new TypeError(a);return L(k)&&(te="leading"in k?!!k.leading:te,Y="trailing"in k?!!k.trailing:Y),Z(j,G,{leading:te,maxWait:G,trailing:Y})}function L(j){var G=typeof j;return!!j&&(G=="object"||G=="function")}function $(j){return!!j&&typeof j=="object"}function D(j){return typeof j=="symbol"||$(j)&&S.call(j)==o}function T(j){if(typeof j=="number")return j;if(D(j))return t;if(L(j)){var G=typeof j.valueOf=="function"?j.valueOf():j;j=L(G)?G+"":G}if(typeof j!="string")return j===0?j:+j;j=j.replace(s,"");var k=d.test(j);return k||l.test(j)?c(j.slice(2),k?2:8):n.test(j)?t:+j}b.exports=N},94466:function(b,y,e){var a=e(65234),t=e(83250),o=a(t,"DataView");b.exports=o},85208:function(b,y,e){var a=e(34440),t=e(84108),o=e(61085),s=e(77706),n=e(8636);function d(l){var c=-1,m=l==null?0:l.length;for(this.clear();++cw))return!1;var z=h.get(l),Z=h.get(c);if(z&&Z)return z==c&&Z==l;var N=-1,L=!0,$=m&n?new a:void 0;for(h.set(l,c),h.set(c,l);++N-1&&t%1==0&&t-1}b.exports=t},67690:function(b,y,e){var a=e(18498);function t(o,s){var n=this.__data__,d=a(n,o);return d<0?(++this.size,n.push([o,s])):n[d][1]=s,this}b.exports=t},39016:function(b,y,e){var a=e(85208),t=e(81998),o=e(72887);function s(){this.size=0,this.__data__={hash:new a,map:new(o||t),string:new a}}b.exports=s},62363:function(b,y,e){var a=e(77570);function t(o){var s=a(this,o).delete(o);return this.size-=s?1:0,s}b.exports=t},64348:function(b,y,e){var a=e(77570);function t(o){return a(this,o).get(o)}b.exports=t},53062:function(b,y,e){var a=e(77570);function t(o){return a(this,o).has(o)}b.exports=t},30262:function(b,y,e){var a=e(77570);function t(o,s){var n=a(this,o),d=n.size;return n.set(o,s),this.size+=n.size==d?0:1,this}b.exports=t},81140:function(b){function y(e){var a=-1,t=Array(e.size);return e.forEach(function(o,s){t[++a]=[s,o]}),t}b.exports=y},24545:function(b,y,e){var a=e(65234),t=a(Object,"create");b.exports=t},82825:function(b,y,e){var a=e(33540),t=a(Object.keys,Object);b.exports=t},8690:function(b,y,e){b=e.nmd(b);var a=e(20302),t=y&&!y.nodeType&&y,o=t&&!0&&b&&!b.nodeType&&b,s=o&&o.exports===t,n=s&&a.process,d=function(){try{var l=o&&o.require&&o.require("util").types;return l||n&&n.binding&&n.binding("util")}catch(c){}}();b.exports=d},25151:function(b){var y=Object.prototype,e=y.toString;function a(t){return e.call(t)}b.exports=a},33540:function(b){function y(e,a){return function(t){return e(a(t))}}b.exports=y},83250:function(b,y,e){var a=e(20302),t=typeof self=="object"&&self&&self.Object===Object&&self,o=a||t||Function("return this")();b.exports=o},83937:function(b){var y="__lodash_hash_undefined__";function e(a){return this.__data__.set(a,y),this}b.exports=e},15009:function(b){function y(e){return this.__data__.has(e)}b.exports=y},77969:function(b){function y(e){var a=-1,t=Array(e.size);return e.forEach(function(o){t[++a]=o}),t}b.exports=y},93210:function(b,y,e){var a=e(81998);function t(){this.__data__=new a,this.size=0}b.exports=t},48603:function(b){function y(e){var a=this.__data__,t=a.delete(e);return this.size=a.size,t}b.exports=y},38947:function(b){function y(e){return this.__data__.get(e)}b.exports=y},70885:function(b){function y(e){return this.__data__.has(e)}b.exports=y},98938:function(b,y,e){var a=e(81998),t=e(72887),o=e(95678),s=200;function n(d,l){var c=this.__data__;if(c instanceof a){var m=c.__data__;if(!t||m.length=m||W<0||L&&x>=S}function k(){var X=t();if(G(X))return te(X);C=setTimeout(k,j(X))}function te(X){return C=void 0,$&&M?D(X):(M=h=void 0,w)}function Y(){C!==void 0&&clearTimeout(C),Z=0,M=z=h=C=void 0}function q(){return C===void 0?w:te(t())}function le(){var X=t(),W=G(X);if(M=arguments,h=this,z=X,W){if(C===void 0)return T(z);if(L)return clearTimeout(C),C=setTimeout(k,m),D(z)}return C===void 0&&(C=setTimeout(k,m)),w}return le.cancel=Y,le.flush=q,le}b.exports=l},58260:function(b){function y(e,a){return e===a||e!==e&&a!==a}b.exports=y},79312:function(b,y,e){var a=e(33016),t=e(50440),o=Object.prototype,s=o.hasOwnProperty,n=o.propertyIsEnumerable,d=a(function(){return arguments}())?a:function(l){return t(l)&&s.call(l,"callee")&&!n.call(l,"callee")};b.exports=d},55589:function(b){var y=Array.isArray;b.exports=y},30568:function(b,y,e){var a=e(45563),t=e(66052);function o(s){return s!=null&&t(s.length)&&!a(s)}b.exports=o},85778:function(b,y,e){b=e.nmd(b);var a=e(83250),t=e(37999),o=y&&!y.nodeType&&y,s=o&&!0&&b&&!b.nodeType&&b,n=s&&s.exports===o,d=n?a.Buffer:void 0,l=d?d.isBuffer:void 0,c=l||t;b.exports=c},85466:function(b,y,e){var a=e(34662);function t(o,s){return a(o,s)}b.exports=t},45563:function(b,y,e){var a=e(69823),t=e(93702),o="[object AsyncFunction]",s="[object Function]",n="[object GeneratorFunction]",d="[object Proxy]";function l(c){if(!t(c))return!1;var m=a(c);return m==s||m==n||m==o||m==d}b.exports=l},66052:function(b){var y=9007199254740991;function e(a){return typeof a=="number"&&a>-1&&a%1==0&&a<=y}b.exports=e},93702:function(b){function y(e){var a=typeof e;return e!=null&&(a=="object"||a=="function")}b.exports=y},50440:function(b){function y(e){return e!=null&&typeof e=="object"}b.exports=y},52624:function(b,y,e){var a=e(69823),t=e(50440),o="[object Symbol]";function s(n){return typeof n=="symbol"||t(n)&&a(n)==o}b.exports=s},50922:function(b,y,e){var a=e(42448),t=e(31525),o=e(8690),s=o&&o.isTypedArray,n=s?t(s):a;b.exports=n},62096:function(b,y,e){var a=e(75825),t=e(41351),o=e(30568);function s(n){return o(n)?a(n):t(n)}b.exports=s},39378:function(b,y,e){b=e.nmd(b);var a;(function(){var t,o="4.17.21",s=200,n="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",d="Expected a function",l="Invalid `variable` option passed into `_.template`",c="__lodash_hash_undefined__",m=500,g="__lodash_placeholder__",M=1,h=2,S=4,w=1,C=2,z=1,Z=2,N=4,L=8,$=16,D=32,T=64,j=128,G=256,k=512,te=30,Y="...",q=800,le=16,X=1,W=2,x=3,O=1/0,_=9007199254740991,U=17976931348623157e292,A=0/0,V=4294967295,fe=V-1,pe=V>>>1,ge=[["ary",j],["bind",z],["bindKey",Z],["curry",L],["curryRight",$],["flip",k],["partial",D],["partialRight",T],["rearg",G]],be="[object Arguments]",Te="[object Array]",Ge="[object AsyncFunction]",qe="[object Boolean]",Qe="[object Date]",ht="[object DOMException]",Et="[object Error]",gt="[object Function]",Ht="[object GeneratorFunction]",$e="[object Map]",Xe="[object Number]",rt="[object Null]",Ke="[object Object]",ye="[object Promise]",ne="[object Proxy]",H="[object RegExp]",R="[object Set]",P="[object String]",ae="[object Symbol]",Q="[object Undefined]",ie="[object WeakMap]",me="[object WeakSet]",je="[object ArrayBuffer]",Ce="[object DataView]",Se="[object Float32Array]",We="[object Float64Array]",re="[object Int8Array]",se="[object Int16Array]",J="[object Int32Array]",de="[object Uint8Array]",xe="[object Uint8ClampedArray]",ce="[object Uint16Array]",Ne="[object Uint32Array]",Oe=/\b__p \+= '';/g,we=/\b(__p \+=) '' \+/g,Re=/(__e\(.*?\)|\b__t\)) \+\n'';/g,st=/&(?:amp|lt|gt|quot|#39);/g,tt=/[&<>"']/g,Ye=RegExp(st.source),ke=RegExp(tt.source),Be=/<%-([\s\S]+?)%>/g,it=/<%([\s\S]+?)%>/g,Ve=/<%=([\s\S]+?)%>/g,xt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_t=/^\w*$/,Ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,wt=/[\\^$.*+?()[\]{}|]/g,Yt=RegExp(wt.source),bt=/^\s+/,ze=/\s/,nt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,St=/\{\n\/\* \[wrapped with (.+)\] \*/,ut=/,? & /,Vt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Nt=/[()=,{}\[\]\/\s]/,At=/\\(\\)?/g,Ie=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ee=/\w*$/,Mt=/^[-+]0x[0-9a-f]+$/i,jt=/^0b[01]+$/i,He=/^\[object .+?Constructor\]$/,et=/^0o[0-7]+$/i,Zt=/^(?:0|[1-9]\d*)$/,Ut=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Jt=/($^)/,ln=/['\n\r\u2028\u2029\\]/g,Mn="\\ud800-\\udfff",gn="\\u0300-\\u036f",Yn="\\ufe20-\\ufe2f",Gn="\\u20d0-\\u20ff",ar=gn+Yn+Gn,gr="\\u2700-\\u27bf",zt="a-z\\xdf-\\xf6\\xf8-\\xff",qt="\\xac\\xb1\\xd7\\xf7",rn="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",dn="\\u2000-\\u206f",Cn=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",on="A-Z\\xc0-\\xd6\\xd8-\\xde",pt="\\ufe0e\\ufe0f",mt=qt+rn+dn+Cn,sn="['\u2019]",Kt="["+Mn+"]",tn="["+mt+"]",mn="["+ar+"]",fn="\\d+",kn="["+gr+"]",qn="["+zt+"]",ct="[^"+Mn+mt+fn+gr+zt+on+"]",dt="\\ud83c[\\udffb-\\udfff]",It="(?:"+mn+"|"+dt+")",Ct="[^"+Mn+"]",kt="(?:\\ud83c[\\udde6-\\uddff]){2}",un="[\\ud800-\\udbff][\\udc00-\\udfff]",nn="["+on+"]",xn="\\u200d",Rn="(?:"+qn+"|"+ct+")",Mr="(?:"+nn+"|"+ct+")",er="(?:"+sn+"(?:d|ll|m|re|s|t|ve))?",zn="(?:"+sn+"(?:D|LL|M|RE|S|T|VE))?",Ur=It+"?",pr="["+pt+"]?",sa="(?:"+xn+"(?:"+[Ct,kt,un].join("|")+")"+pr+Ur+")*",Nr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Zn="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",In=pr+Ur+sa,Pn="(?:"+[kn,kt,un].join("|")+")"+In,rr="(?:"+[Ct+mn+"?",mn,kt,un,Kt].join("|")+")",br=RegExp(sn,"g"),Gr=RegExp(mn,"g"),na=RegExp(dt+"(?="+dt+")|"+rr+In,"g"),pa=RegExp([nn+"?"+qn+"+"+er+"(?="+[tn,nn,"$"].join("|")+")",Mr+"+"+zn+"(?="+[tn,nn+Rn,"$"].join("|")+")",nn+"?"+Rn+"+"+er,nn+"+"+zn,Zn,Nr,fn,Pn].join("|"),"g"),cr=RegExp("["+xn+Mn+ar+pt+"]"),Zr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ea=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ha=-1,Wn={};Wn[Se]=Wn[We]=Wn[re]=Wn[se]=Wn[J]=Wn[de]=Wn[xe]=Wn[ce]=Wn[Ne]=!0,Wn[be]=Wn[Te]=Wn[je]=Wn[qe]=Wn[Ce]=Wn[Qe]=Wn[Et]=Wn[gt]=Wn[$e]=Wn[Xe]=Wn[Ke]=Wn[H]=Wn[R]=Wn[P]=Wn[ie]=!1;var Fn={};Fn[be]=Fn[Te]=Fn[je]=Fn[Ce]=Fn[qe]=Fn[Qe]=Fn[Se]=Fn[We]=Fn[re]=Fn[se]=Fn[J]=Fn[$e]=Fn[Xe]=Fn[Ke]=Fn[H]=Fn[R]=Fn[P]=Fn[ae]=Fn[de]=Fn[xe]=Fn[ce]=Fn[Ne]=!0,Fn[Et]=Fn[gt]=Fn[ie]=!1;var hr={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Kr={"&":"&","<":"<",">":">",'"':""","'":"'"},Ar={"&":"&","<":"<",">":">",""":'"',"'":"'"},Pt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},an=parseFloat,pn=parseInt,qa=typeof e.g=="object"&&e.g&&e.g.Object===Object&&e.g,Mo=typeof self=="object"&&self&&self.Object===Object&&self,Ua=qa||Mo||Function("return this")(),Wa=y&&!y.nodeType&&y,Xa=Wa&&!0&&b&&!b.nodeType&&b,No=Xa&&Xa.exports===Wa,$o=No&&qa.process,So=function(){try{var Vn=Xa&&Xa.require&&Xa.require("util").types;return Vn||$o&&$o.binding&&$o.binding("util")}catch(Vr){}}(),ft=So&&So.isArrayBuffer,Rt=So&&So.isDate,Ae=So&&So.isMap,cn=So&&So.isRegExp,An=So&&So.isSet,hn=So&&So.isTypedArray;function Xn(Vn,Vr,Or){switch(Or.length){case 0:return Vn.call(Vr);case 1:return Vn.call(Vr,Or[0]);case 2:return Vn.call(Vr,Or[0],Or[1]);case 3:return Vn.call(Vr,Or[0],Or[1],Or[2])}return Vn.apply(Vr,Or)}function nr(Vn,Vr,Or,Br){for(var aa=-1,Ta=Vn==null?0:Vn.length;++aa-1}function jr(Vn,Vr,Or){for(var Br=-1,aa=Vn==null?0:Vn.length;++Br-1;);return Or}function ei(Vn,Vr){for(var Or=Vn.length;Or--&&kr(Vr,Vn[Or],0)>-1;);return Or}function ri(Vn,Vr){for(var Or=Vn.length,Br=0;Or--;)Vn[Or]===Vr&&++Br;return Br}var ao=Oa(hr),Mi=Oa(Kr);function ji(Vn){return"\\"+Pt[Vn]}function Xo(Vn,Vr){return Vn==null?t:Vn[Vr]}function Ho(Vn){return cr.test(Vn)}function ui(Vn){return Zr.test(Vn)}function li(Vn){for(var Vr,Or=[];!(Vr=Vn.next()).done;)Or.push(Vr.value);return Or}function Ci(Vn){var Vr=-1,Or=Array(Vn.size);return Vn.forEach(function(Br,aa){Or[++Vr]=[aa,Br]}),Or}function Ni(Vn,Vr){return function(Or){return Vn(Vr(Or))}}function xi(Vn,Vr){for(var Or=-1,Br=Vn.length,aa=0,Ta=[];++Or-1}function gu(p,E){var oe=this.__data__,Fe=Wi(oe,p);return Fe<0?(++this.size,oe.push([p,E])):oe[Fe][1]=E,this}yo.prototype.clear=el,yo.prototype.delete=ou,yo.prototype.get=Zi,yo.prototype.has=iu,yo.prototype.set=gu;function Ws(p){var E=-1,oe=p==null?0:p.length;for(this.clear();++E=E?p:E)),p}function ds(p,E,oe,Fe,yt,Xt){var yn,$n=E&M,lr=E&h,Ma=E&S;if(oe&&(yn=yt?oe(p,Fe,yt,Xt):oe(p)),yn!==t)return yn;if(!$s(p))return p;var Sa=vi(p);if(Sa){if(yn=Ti(p),!$n)return ea(p,yn)}else{var Pa=uo(p),eo=Pa==gt||Pa==Ht;if(ld(p))return Bn(p,$n);if(Pa==Ke||Pa==be||eo&&!yt){if(yn=lr||eo?{}:Fi(p),!$n)return lr?Sr(p,Kl(yn,p)):ir(p,wu(yn,p))}else{if(!Fn[Pa])return yt?p:{};yn=Os(p,Pa,$n)}}Xt||(Xt=new Gt);var Eo=Xt.get(p);if(Eo)return Eo;Xt.set(p,yn),wf(p)?p.forEach(function(Qo){yn.add(ds(Qo,E,oe,Qo,p,Xt))}):Of(p)&&p.forEach(function(Qo,wi){yn.set(wi,ds(Qo,E,oe,wi,p,Xt))});var Ko=Ma?lr?ta:wr:lr?$u:Wl,bi=Sa?t:Ko(p);return Wr(bi||p,function(Qo,wi){bi&&(wi=Qo,Qo=p[wi]),To(yn,wi,ds(Qo,E,oe,wi,p,Xt))}),yn}function Ic(p){var E=Wl(p);return function(oe){return nc(oe,p,E)}}function nc(p,E,oe){var Fe=oe.length;if(p==null)return!Fe;for(p=La(p);Fe--;){var yt=oe[Fe],Xt=E[yt],yn=p[yt];if(yn===t&&!(yt in p)||!Xt(yn))return!1}return!0}function ml(p,E,oe){if(typeof p!="function")throw new Yo(d);return cu(function(){p.apply(t,oe)},E)}function Ol(p,E,oe,Fe){var yt=-1,Xt=ra,yn=!0,$n=p.length,lr=[],Ma=E.length;if(!$n)return lr;oe&&(E=$r(E,co(oe))),Fe?(Xt=jr,yn=!1):E.length>=s&&(Xt=Za,yn=!1,E=new Hs(E));e:for(;++yt<$n;){var Sa=p[yt],Pa=oe==null?Sa:oe(Sa);if(Sa=Fe||Sa!==0?Sa:0,yn&&Pa===Pa){for(var eo=Ma;eo--;)if(E[eo]===Pa)continue e;lr.push(Sa)}else Xt(E,Pa,Fe)||lr.push(Sa)}return lr}var Rl=Kn(Xi),Wu=Kn(Ns,!0);function Ac(p,E){var oe=!0;return Rl(p,function(Fe,yt,Xt){return oe=!!E(Fe,yt,Xt),oe}),oe}function mu(p,E,oe){for(var Fe=-1,yt=p.length;++Feyt?0:yt+oe),Fe=Fe===t||Fe>yt?yt:hi(Fe),Fe<0&&(Fe+=yt),Fe=oe>Fe?0:Pf(Fe);oe0&&oe($n)?E>1?os($n,E-1,oe,Fe,yt):fa(yt,$n):Fe||(yt[yt.length]=$n)}return yt}var Pu=Yr(),bs=Yr(!0);function Xi(p,E){return p&&Pu(p,E,Wl)}function Ns(p,E){return p&&bs(p,E,Wl)}function tl(p,E){return Qr(E,function(oe){return Qc(p[oe])})}function Vo(p,E){E=Mu(E,p);for(var oe=0,Fe=E.length;p!=null&&oeE}function nl(p,E){return p!=null&&qo.call(p,E)}function pl(p,E){return p!=null&&E in La(p)}function Rs(p,E,oe){return p>=Si(E,oe)&&p=120&&Sa.length>=120)?new Hs(yn&&Sa):t}Sa=p[0];var Pa=-1,eo=$n[0];e:for(;++Pa-1;)$n!==p&&Ts.call($n,lr,1),Ts.call(p,lr,1);return p}function vc(p,E){for(var oe=p?E.length:0,Fe=oe-1;oe--;){var yt=E[oe];if(oe==Fe||yt!==Xt){var Xt=yt;Aa(yt)?Ts.call(p,yt,1):Dc(p,yt)}}return p}function gc(p,E){return p+la(Ja()*(E-p+1))}function lu(p,E,oe,Fe){for(var yt=-1,Xt=Po(dl((E-p)/(oe||1)),0),yn=Or(Xt);Xt--;)yn[Fe?Xt:++yt]=p,p+=oe;return yn}function Ui(p,E){var oe="";if(!p||E<1||E>_)return oe;do E%2&&(oe+=p),E=la(E/2),E&&(p+=p);while(E);return oe}function bo(p,E){return Zl(is(p,E,Zu),p+"")}function vs(p){return ns(Fd(p))}function mc(p,E){var oe=Fd(p);return Pc(oe,Ql(E,0,oe.length))}function bu(p,E,oe,Fe){if(!$s(p))return p;E=Mu(E,p);for(var yt=-1,Xt=E.length,yn=Xt-1,$n=p;$n!=null&&++ytyt?0:yt+E),oe=oe>yt?yt:oe,oe<0&&(oe+=yt),yt=E>oe?0:oe-E>>>0,E>>>=0;for(var Xt=Or(yt);++Fe>>1,yn=p[Xt];yn!==null&&!Xu(yn)&&(oe?yn<=E:yn=s){var Ma=E?null:Dt(p);if(Ma)return no(Ma);yn=!1,yt=Za,lr=new Hs}else lr=E?[]:$n;e:for(;++Fe=Fe?p:al(p,E,oe)}var Pe=Io||function(p){return Ua.clearTimeout(p)};function Bn(p,E){if(E)return p.slice();var oe=p.length,Fe=du?du(oe):new p.constructor(oe);return p.copy(Fe),Fe}function vt(p){var E=new p.constructor(p.byteLength);return new Tl(E).set(new Tl(p)),E}function Tn(p,E){var oe=E?vt(p.buffer):p.buffer;return new p.constructor(oe,p.byteOffset,p.byteLength)}function bn(p){var E=new p.constructor(p.source,Ee.exec(p));return E.lastIndex=p.lastIndex,E}function On(p){return Cl?La(Cl.call(p)):{}}function Nn(p,E){var oe=E?vt(p.buffer):p.buffer;return new p.constructor(oe,p.byteOffset,p.length)}function dr(p,E){if(p!==E){var oe=p!==t,Fe=p===null,yt=p===p,Xt=Xu(p),yn=E!==t,$n=E===null,lr=E===E,Ma=Xu(E);if(!$n&&!Ma&&!Xt&&p>E||Xt&&yn&&lr&&!$n&&!Ma||Fe&&yn&&lr||!oe&&lr||!yt)return 1;if(!Fe&&!Xt&&!Ma&&p=$n)return lr;var Ma=oe[Fe];return lr*(Ma=="desc"?-1:1)}}return p.index-E.index}function yr(p,E,oe,Fe){for(var yt=-1,Xt=p.length,yn=oe.length,$n=-1,lr=E.length,Ma=Po(Xt-yn,0),Sa=Or(lr+Ma),Pa=!Fe;++$n1?oe[yt-1]:t,yn=yt>2?oe[2]:t;for(Xt=p.length>3&&typeof Xt=="function"?(yt--,Xt):t,yn&&Wo(oe[0],oe[1],yn)&&(Xt=yt<3?t:Xt,yt=1),E=La(E);++Fe-1?yt[Xt?E[yn]:yn]:t}}function Fr(p){return ga(function(E){var oe=E.length,Fe=oe,yt=$i.prototype.thru;for(p&&E.reverse();Fe--;){var Xt=E[Fe];if(typeof Xt!="function")throw new Yo(d);if(yt&&!yn&&vo(Xt)=="wrapper")var yn=new $i([],!0)}for(Fe=yn?Fe:oe;++Fe1&&Li.reverse(),Sa&&lr$n))return!1;var Ma=Xt.get(p),Sa=Xt.get(E);if(Ma&&Sa)return Ma==E&&Sa==p;var Pa=-1,eo=!0,Eo=oe&C?new Hs:t;for(Xt.set(p,E),Xt.set(E,p);++Pa<$n;){var Ko=p[Pa],bi=E[Pa];if(Fe)var Qo=yn?Fe(bi,Ko,Pa,E,p,Xt):Fe(Ko,bi,Pa,p,E,Xt);if(Qo!==t){if(Qo)continue;eo=!1;break}if(Eo){if(!Ka(E,function(wi,Li){if(!Za(Eo,Li)&&(Ko===wi||yt(Ko,wi,oe,Fe,Xt)))return Eo.push(Li)})){eo=!1;break}}else if(!(Ko===bi||yt(Ko,bi,oe,Fe,Xt))){eo=!1;break}}return Xt.delete(p),Xt.delete(E),eo}function vr(p,E,oe,Fe,yt,Xt,yn){switch(oe){case Ce:if(p.byteLength!=E.byteLength||p.byteOffset!=E.byteOffset)return!1;p=p.buffer,E=E.buffer;case je:return!(p.byteLength!=E.byteLength||!Xt(new Tl(p),new Tl(E)));case qe:case Qe:case Xe:return Cc(+p,+E);case Et:return p.name==E.name&&p.message==E.message;case H:case P:return p==E+"";case $e:var $n=Ci;case R:var lr=Fe&w;if($n||($n=no),p.size!=E.size&&!lr)return!1;var Ma=yn.get(p);if(Ma)return Ma==E;Fe|=C,yn.set(p,E);var Sa=_n($n(p),$n(E),Fe,yt,Xt,yn);return yn.delete(p),Sa;case ae:if(Cl)return Cl.call(p)==Cl.call(E)}return!1}function Lr(p,E,oe,Fe,yt,Xt){var yn=oe&w,$n=wr(p),lr=$n.length,Ma=wr(E),Sa=Ma.length;if(lr!=Sa&&!yn)return!1;for(var Pa=lr;Pa--;){var eo=$n[Pa];if(!(yn?eo in E:qo.call(E,eo)))return!1}var Eo=Xt.get(p),Ko=Xt.get(E);if(Eo&&Ko)return Eo==E&&Ko==p;var bi=!0;Xt.set(p,E),Xt.set(E,p);for(var Qo=yn;++Pa1?"& ":"")+E[Fe],E=E.join(oe>2?", ":" "),p.replace(nt,`{ +/* [wrapped with `+E+`] */ +`)}function pi(p){return vi(p)||Md(p)||!!(nu&&p&&p[nu])}function Aa(p,E){var oe=typeof p;return E=E==null?_:E,!!E&&(oe=="number"||oe!="symbol"&&Zt.test(p))&&p>-1&&p%1==0&&p0){if(++E>=q)return arguments[0]}else E=0;return p.apply(t,arguments)}}function Pc(p,E){var oe=-1,Fe=p.length,yt=Fe-1;for(E=E===t?Fe:E;++oe1?p[E-1]:t;return oe=typeof oe=="function"?(p.pop(),oe):t,ls(p,oe)});function Dd(p){var E=Wt(p);return E.__chain__=!0,E}function af(p,E){return E(p),p}function Qu(p,E){return E(p)}var wd=ga(function(p){var E=p.length,oe=E?p[0]:0,Fe=this.__wrapped__,yt=function(Xt){return ju(Xt,p)};return E>1||this.__actions__.length||!(Fe instanceof _o)||!Aa(oe)?this.thru(yt):(Fe=Fe.slice(oe,+oe+(E?1:0)),Fe.__actions__.push({func:Qu,args:[yt],thisArg:t}),new $i(Fe,this.__chain__).thru(function(Xt){return E&&!Xt.length&&Xt.push(t),Xt}))});function Gc(){return Dd(this)}function jd(){return new $i(this.value(),this.__chain__)}function $d(){this.__values__===t&&(this.__values__=jf(this.value()));var p=this.__index__>=this.__values__.length,E=p?t:this.__values__[this.__index__++];return{done:p,value:E}}function Zd(){return this}function of(p){for(var E,oe=this;oe instanceof Gl;){var Fe=Cu(oe);Fe.__index__=0,Fe.__values__=t,E?yt.__wrapped__=Fe:E=Fe;var yt=Fe;oe=oe.__wrapped__}return yt.__wrapped__=p,E}function Ud(){var p=this.__wrapped__;if(p instanceof _o){var E=p;return this.__actions__.length&&(E=new _o(this)),E=E.reverse(),E.__actions__.push({func:Qu,args:[rd],thisArg:t}),new $i(E,this.__chain__)}return this.thru(rd)}function sf(){return Bc(this.__wrapped__,this.__actions__)}var Vd=Ir(function(p,E,oe){qo.call(p,oe)?++p[oe]:cs(p,oe,1)});function Gd(p,E,oe){var Fe=vi(p)?oa:Ac;return oe&&Wo(p,E,oe)&&(E=t),Fe(p,da(E,3))}function Pd(p,E){var oe=vi(p)?Qr:hu;return oe(p,da(E,3))}var Td=zr(kc),Kd=zr(ss);function kd(p,E){return os(Kc(p,E),1)}function lf(p,E){return os(Kc(p,E),O)}function Qd(p,E,oe){return oe=oe===t?1:hi(oe),os(Kc(p,E),oe)}function Ld(p,E){var oe=vi(p)?Wr:Rl;return oe(p,da(E,3))}function yd(p,E){var oe=vi(p)?Da:Wu;return oe(p,da(E,3))}var Wd=Ir(function(p,E,oe){qo.call(p,oe)?p[oe].push(E):cs(p,oe,[E])});function Nd(p,E,oe,Fe){p=Bu(p)?p:Fd(p),oe=oe&&!Fe?hi(oe):0;var yt=p.length;return oe<0&&(oe=Po(yt+oe,0)),qd(p)?oe<=yt&&p.indexOf(E,oe)>-1:!!yt&&kr(p,E,oe)>-1}var Xd=bo(function(p,E,oe){var Fe=-1,yt=typeof E=="function",Xt=Bu(p)?Or(p.length):[];return Rl(p,function(yn){Xt[++Fe]=yt?Xn(E,yn,oe):yu(yn,E,oe)}),Xt}),uf=Ir(function(p,E,oe){cs(p,oe,E)});function Kc(p,E){var oe=vi(p)?$r:lo;return oe(p,da(E,3))}function cf(p,E,oe,Fe){return p==null?[]:(vi(E)||(E=E==null?[]:[E]),oe=Fe?t:oe,vi(oe)||(oe=oe==null?[]:[oe]),ac(p,E,oe))}var bd=Ir(function(p,E,oe){p[oe?0:1].push(E)},function(){return[[],[]]});function df(p,E,oe){var Fe=vi(p)?Na:Ia,yt=arguments.length<3;return Fe(p,da(E,4),oe,yt,Rl)}function Rd(p,E,oe){var Fe=vi(p)?to:Ia,yt=arguments.length<3;return Fe(p,da(E,4),oe,yt,Wu)}function i(p,E){var oe=vi(p)?Qr:hu;return oe(p,Ba(da(E,3)))}function v(p){var E=vi(p)?ns:vs;return E(p)}function I(p,E,oe){(oe?Wo(p,E,oe):E===t)?E=1:E=hi(E);var Fe=vi(p)?oi:mc;return Fe(p,E)}function ee(p){var E=vi(p)?gi:_s;return E(p)}function De(p){if(p==null)return 0;if(Bu(p))return qd(p)?jo(p):p.length;var E=uo(p);return E==$e||E==R?p.size:Lt(p).length}function _e(p,E,oe){var Fe=vi(p)?Ka:Oc;return oe&&Wo(p,E,oe)&&(E=t),Fe(p,da(E,3))}var $t=bo(function(p,E){if(p==null)return[];var oe=E.length;return oe>1&&Wo(p,E[0],E[1])?E=[]:oe>2&&Wo(E[0],E[1],E[2])&&(E=[E[0]]),ac(p,os(E,1),[])}),vn=Us||function(){return Ua.Date.now()};function Un(p,E){if(typeof E!="function")throw new Yo(d);return p=hi(p),function(){if(--p<1)return E.apply(this,arguments)}}function Pr(p,E,oe){return E=oe?t:E,E=p&&E==null?p.length:E,lt(p,j,t,t,t,t,E)}function xa(p,E){var oe;if(typeof E!="function")throw new Yo(d);return p=hi(p),function(){return--p>0&&(oe=E.apply(this,arguments)),p<=1&&(E=t),oe}}var Ga=bo(function(p,E,oe){var Fe=z;if(oe.length){var yt=xi(oe,Fa(Ga));Fe|=D}return lt(p,Fe,E,oe,yt)}),va=bo(function(p,E,oe){var Fe=z|Z;if(oe.length){var yt=xi(oe,Fa(va));Fe|=D}return lt(E,Fe,p,oe,yt)});function ro(p,E,oe){E=oe?t:E;var Fe=lt(p,L,t,t,t,t,t,E);return Fe.placeholder=ro.placeholder,Fe}function _a(p,E,oe){E=oe?t:E;var Fe=lt(p,$,t,t,t,t,t,E);return Fe.placeholder=_a.placeholder,Fe}function si(p,E,oe){var Fe,yt,Xt,yn,$n,lr,Ma=0,Sa=!1,Pa=!1,eo=!0;if(typeof p!="function")throw new Yo(d);E=cc(E)||0,$s(oe)&&(Sa=!!oe.leading,Pa="maxWait"in oe,Xt=Pa?Po(cc(oe.maxWait)||0,E):Xt,eo="trailing"in oe?!!oe.trailing:eo);function Eo(ll){var xc=Fe,Jc=yt;return Fe=yt=t,Ma=ll,yn=p.apply(Jc,xc),yn}function Ko(ll){return Ma=ll,$n=cu(wi,E),Sa?Eo(ll):yn}function bi(ll){var xc=ll-lr,Jc=ll-Ma,Wf=E-xc;return Pa?Si(Wf,Xt-Jc):Wf}function Qo(ll){var xc=ll-lr,Jc=ll-Ma;return lr===t||xc>=E||xc<0||Pa&&Jc>=Xt}function wi(){var ll=vn();if(Qo(ll))return Li(ll);$n=cu(wi,bi(ll))}function Li(ll){return $n=t,eo&&Fe?Eo(ll):(Fe=yt=t,yn)}function Ju(){$n!==t&&Pe($n),Ma=0,Fe=lr=yt=$n=t}function xu(){return $n===t?yn:Li(vn())}function qu(){var ll=vn(),xc=Qo(ll);if(Fe=arguments,yt=this,lr=ll,xc){if($n===t)return Ko(lr);if(Pa)return Pe($n),$n=cu(wi,E),Eo(lr)}return $n===t&&($n=cu(wi,E)),yn}return qu.cancel=Ju,qu.flush=xu,qu}var Bs=bo(function(p,E){return ml(p,1,E)}),Er=bo(function(p,E,oe){return ml(p,cc(E)||0,oe)});function Qn(p){return lt(p,k)}function Dr(p,E){if(typeof p!="function"||E!=null&&typeof E!="function")throw new Yo(d);var oe=function(){var Fe=arguments,yt=E?E.apply(this,Fe):Fe[0],Xt=oe.cache;if(Xt.has(yt))return Xt.get(yt);var yn=p.apply(this,Fe);return oe.cache=Xt.set(yt,yn)||Xt,yn};return oe.cache=new(Dr.Cache||Ws),oe}Dr.Cache=Ws;function Ba(p){if(typeof p!="function")throw new Yo(d);return function(){var E=arguments;switch(E.length){case 0:return!p.call(this);case 1:return!p.call(this,E[0]);case 2:return!p.call(this,E[0],E[1]);case 3:return!p.call(this,E[0],E[1],E[2])}return!p.apply(this,E)}}function mo(p){return xa(2,p)}var zo=Ue(function(p,E){E=E.length==1&&vi(E[0])?$r(E[0],co(da())):$r(os(E,1),co(da()));var oe=E.length;return bo(function(Fe){for(var yt=-1,Xt=Si(Fe.length,oe);++yt=E}),Md=Tu(function(){return arguments}())?Tu:function(p){return Gs(p)&&qo.call(p,"callee")&&!Zs.call(p,"callee")},vi=Or.isArray,nv=ft?co(ft):hl;function Bu(p){return p!=null&&Jd(p.length)&&!Qc(p)}function sl(p){return Gs(p)&&Bu(p)}function rv(p){return p===!0||p===!1||Gs(p)&&fs(p)==qe}var ld=ru||Cf,av=Rt?co(Rt):Hu;function ov(p){return Gs(p)&&p.nodeType===1&&!Hd(p)}function iv(p){if(p==null)return!0;if(Bu(p)&&(vi(p)||typeof p=="string"||typeof p.splice=="function"||ld(p)||zd(p)||Md(p)))return!p.length;var E=uo(p);if(E==$e||E==R)return!p.size;if(Vi(p))return!Lt(p).length;for(var oe in p)if(qo.call(p,oe))return!1;return!0}function sv(p,E){return Lu(p,E)}function lv(p,E,oe){oe=typeof oe=="function"?oe:t;var Fe=oe?oe(p,E):t;return Fe===t?Lu(p,E,t,oe):!!Fe}function vf(p){if(!Gs(p))return!1;var E=fs(p);return E==Et||E==ht||typeof p.message=="string"&&typeof p.name=="string"&&!Hd(p)}function uv(p){return typeof p=="number"&&qs(p)}function Qc(p){if(!$s(p))return!1;var E=fs(p);return E==gt||E==Ht||E==Ge||E==ne}function Af(p){return typeof p=="number"&&p==hi(p)}function Jd(p){return typeof p=="number"&&p>-1&&p%1==0&&p<=_}function $s(p){var E=typeof p;return p!=null&&(E=="object"||E=="function")}function Gs(p){return p!=null&&typeof p=="object"}var Of=Ae?co(Ae):Dl;function cv(p,E){return p===E||Fl(p,E,$a(E))}function dv(p,E,oe){return oe=typeof oe=="function"?oe:t,Fl(p,E,$a(E),oe)}function fv(p){return Df(p)&&p!=+p}function vv(p){if(il(p))throw new aa(n);return ni(p)}function gv(p){return p===null}function mv(p){return p==null}function Df(p){return typeof p=="number"||Gs(p)&&fs(p)==Xe}function Hd(p){if(!Gs(p)||fs(p)!=Ke)return!1;var E=rs(p);if(E===null)return!0;var oe=qo.call(E,"constructor")&&E.constructor;return typeof oe=="function"&&oe instanceof oe&&qi.call(oe)==Au}var gf=cn?co(cn):F;function pv(p){return Af(p)&&p>=-_&&p<=_}var wf=An?co(An):ve;function qd(p){return typeof p=="string"||!vi(p)&&Gs(p)&&fs(p)==P}function Xu(p){return typeof p=="symbol"||Gs(p)&&fs(p)==ae}var zd=hn?co(hn):Ze;function hv(p){return p===t}function yv(p){return Gs(p)&&uo(p)==ie}function bv(p){return Gs(p)&&fs(p)==me}var Mv=Me(Rr),Sv=Me(function(p,E){return p<=E});function jf(p){if(!p)return[];if(Bu(p))return qd(p)?Zo(p):ea(p);if(_l&&p[_l])return li(p[_l]());var E=uo(p),oe=E==$e?Ci:E==R?no:Fd;return oe(p)}function Xc(p){if(!p)return p===0?p:0;if(p=cc(p),p===O||p===-O){var E=p<0?-1:1;return E*U}return p===p?p:0}function hi(p){var E=Xc(p),oe=E%1;return E===E?oe?E-oe:E:0}function Pf(p){return p?Ql(hi(p),0,V):0}function cc(p){if(typeof p=="number")return p;if(Xu(p))return A;if($s(p)){var E=typeof p.valueOf=="function"?p.valueOf():p;p=$s(E)?E+"":E}if(typeof p!="string")return p===0?p:+p;p=Co(p);var oe=jt.test(p);return oe||et.test(p)?pn(p.slice(2),oe?2:8):Mt.test(p)?A:+p}function Tf(p){return Cr(p,$u(p))}function Ev(p){return p?Ql(hi(p),-_,_):p===0?p:0}function Ki(p){return p==null?"":Ys(p)}var Cv=ia(function(p,E){if(Vi(E)||Bu(E)){Cr(E,Wl(E),p);return}for(var oe in E)qo.call(E,oe)&&To(p,oe,E[oe])}),Lf=ia(function(p,E){Cr(E,$u(E),p)}),ef=ia(function(p,E,oe,Fe){Cr(E,$u(E),p,Fe)}),xv=ia(function(p,E,oe,Fe){Cr(E,Wl(E),p,Fe)}),Iv=ga(ju);function Av(p,E){var oe=Oi(p);return E==null?oe:wu(oe,E)}var Ov=bo(function(p,E){p=La(p);var oe=-1,Fe=E.length,yt=Fe>2?E[2]:t;for(yt&&Wo(E[0],E[1],yt)&&(Fe=1);++oe1),Xt}),Cr(p,ta(p),oe),Fe&&(oe=ds(oe,M|h|S,wn));for(var yt=E.length;yt--;)Dc(oe,E[yt]);return oe});function _v(p,E){return Rf(p,Ba(da(E)))}var Yv=ga(function(p,E){return p==null?{}:Ji(p,E)});function Rf(p,E){if(p==null)return{};var oe=$r(ta(p),function(Fe){return[Fe]});return E=da(E),Nu(p,oe,function(Fe,yt){return E(Fe,yt[0])})}function Vv(p,E,oe){E=Mu(E,p);var Fe=-1,yt=E.length;for(yt||(yt=1,p=t);++FeE){var Fe=p;p=E,E=Fe}if(oe||p%1||E%1){var yt=Ja();return Si(p+yt*(E-p+an("1e-"+((yt+"").length-1))),E)}return gc(p,E)}var a0=tr(function(p,E,oe){return E=E.toLowerCase(),p+(oe?Bf(E):E)});function Bf(p){return hf(Ki(p).toLowerCase())}function $f(p){return p=Ki(p),p&&p.replace(Ut,ao).replace(Gr,"")}function o0(p,E,oe){p=Ki(p),E=Ys(E);var Fe=p.length;oe=oe===t?Fe:Ql(hi(oe),0,Fe);var yt=oe;return oe-=E.length,oe>=0&&p.slice(oe,yt)==E}function i0(p){return p=Ki(p),p&&ke.test(p)?p.replace(tt,Mi):p}function s0(p){return p=Ki(p),p&&Yt.test(p)?p.replace(wt,"\\$&"):p}var l0=tr(function(p,E,oe){return p+(oe?"-":"")+E.toLowerCase()}),u0=tr(function(p,E,oe){return p+(oe?" ":"")+E.toLowerCase()}),c0=ua("toLowerCase");function d0(p,E,oe){p=Ki(p),E=hi(E);var Fe=E?jo(p):0;if(!E||Fe>=E)return p;var yt=(E-Fe)/2;return K(la(yt),oe)+p+K(dl(yt),oe)}function f0(p,E,oe){p=Ki(p),E=hi(E);var Fe=E?jo(p):0;return E&&Fe>>0,oe?(p=Ki(p),p&&(typeof E=="string"||E!=null&&!gf(E))&&(E=Ys(E),!E&&Ho(p))?he(Zo(p),0,oe):p.split(E,oe)):[]}var b0=tr(function(p,E,oe){return p+(oe?" ":"")+hf(E)});function M0(p,E,oe){return p=Ki(p),oe=oe==null?0:Ql(hi(oe),0,p.length),E=Ys(E),p.slice(oe,oe+E.length)==E}function S0(p,E,oe){var Fe=Wt.templateSettings;oe&&Wo(p,E,oe)&&(E=t),p=Ki(p),E=ef({},E,Fe,en);var yt=ef({},E.imports,Fe.imports,en),Xt=Wl(yt),yn=Ca(yt,Xt),$n,lr,Ma=0,Sa=E.interpolate||Jt,Pa="__p += '",eo=Fo((E.escape||Jt).source+"|"+Sa.source+"|"+(Sa===Ve?Ie:Jt).source+"|"+(E.evaluate||Jt).source+"|$","g"),Eo="//# sourceURL="+(qo.call(E,"sourceURL")?(E.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++ha+"]")+` +`;p.replace(eo,function(Qo,wi,Li,Ju,xu,qu){return Li||(Li=Ju),Pa+=p.slice(Ma,qu).replace(ln,ji),wi&&($n=!0,Pa+=`' + +__e(`+wi+`) + +'`),xu&&(lr=!0,Pa+=`'; +`+xu+`; +__p += '`),Li&&(Pa+=`' + +((__t = (`+Li+`)) == null ? '' : __t) + +'`),Ma=qu+Qo.length,Qo}),Pa+=`'; +`;var Ko=qo.call(E,"variable")&&E.variable;if(!Ko)Pa=`with (obj) { +`+Pa+` +} +`;else if(Nt.test(Ko))throw new aa(l);Pa=(lr?Pa.replace(Oe,""):Pa).replace(we,"$1").replace(Re,"$1;"),Pa="function("+(Ko||"obj")+`) { +`+(Ko?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+($n?", __e = _.escape":"")+(lr?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Pa+`return __p +}`;var bi=Uf(function(){return Ta(Xt,Eo+"return "+Pa).apply(t,yn)});if(bi.source=Pa,vf(bi))throw bi;return bi}function E0(p){return Ki(p).toLowerCase()}function C0(p){return Ki(p).toUpperCase()}function x0(p,E,oe){if(p=Ki(p),p&&(oe||E===t))return Co(p);if(!p||!(E=Ys(E)))return p;var Fe=Zo(p),yt=Zo(E),Xt=xo(Fe,yt),yn=ei(Fe,yt)+1;return he(Fe,Xt,yn).join("")}function I0(p,E,oe){if(p=Ki(p),p&&(oe||E===t))return p.slice(0,Ii(p)+1);if(!p||!(E=Ys(E)))return p;var Fe=Zo(p),yt=ei(Fe,Zo(E))+1;return he(Fe,0,yt).join("")}function A0(p,E,oe){if(p=Ki(p),p&&(oe||E===t))return p.replace(bt,"");if(!p||!(E=Ys(E)))return p;var Fe=Zo(p),yt=xo(Fe,Zo(E));return he(Fe,yt).join("")}function O0(p,E){var oe=te,Fe=Y;if($s(E)){var yt="separator"in E?E.separator:yt;oe="length"in E?hi(E.length):oe,Fe="omission"in E?Ys(E.omission):Fe}p=Ki(p);var Xt=p.length;if(Ho(p)){var yn=Zo(p);Xt=yn.length}if(oe>=Xt)return p;var $n=oe-jo(Fe);if($n<1)return Fe;var lr=yn?he(yn,0,$n).join(""):p.slice(0,$n);if(yt===t)return lr+Fe;if(yn&&($n+=lr.length-$n),gf(yt)){if(p.slice($n).search(yt)){var Ma,Sa=lr;for(yt.global||(yt=Fo(yt.source,Ki(Ee.exec(yt))+"g")),yt.lastIndex=0;Ma=yt.exec(Sa);)var Pa=Ma.index;lr=lr.slice(0,Pa===t?$n:Pa)}}else if(p.indexOf(Ys(yt),$n)!=$n){var eo=lr.lastIndexOf(yt);eo>-1&&(lr=lr.slice(0,eo))}return lr+Fe}function D0(p){return p=Ki(p),p&&Ye.test(p)?p.replace(st,Ri):p}var w0=tr(function(p,E,oe){return p+(oe?" ":"")+E.toUpperCase()}),hf=ua("toUpperCase");function Zf(p,E,oe){return p=Ki(p),E=oe?t:E,E===t?ui(p)?ms(p):Dn(p):p.match(E)||[]}var Uf=bo(function(p,E){try{return Xn(p,t,E)}catch(oe){return vf(oe)?oe:new aa(oe)}}),j0=ga(function(p,E){return Wr(E,function(oe){oe=Eu(oe),cs(p,oe,Ga(p[oe],p))}),p});function P0(p){var E=p==null?0:p.length,oe=da();return p=E?$r(p,function(Fe){if(typeof Fe[1]!="function")throw new Yo(d);return[oe(Fe[0]),Fe[1]]}):[],bo(function(Fe){for(var yt=-1;++yt_)return[];var oe=V,Fe=Si(p,V);E=da(E),p-=V;for(var yt=wo(Fe,E);++oe0||E<0)?new _o(oe):(p<0?oe=oe.takeRight(-p):p&&(oe=oe.drop(p)),E!==t&&(E=hi(E),oe=E<0?oe.dropRight(-E):oe.take(E-p)),oe)},_o.prototype.takeRightWhile=function(p){return this.reverse().takeWhile(p).reverse()},_o.prototype.toArray=function(){return this.take(V)},Xi(_o.prototype,function(p,E){var oe=/^(?:filter|find|map|reject)|While$/.test(E),Fe=/^(?:head|last)$/.test(E),yt=Wt[Fe?"take"+(E=="last"?"Right":""):E],Xt=Fe||/^find/.test(E);yt&&(Wt.prototype[E]=function(){var yn=this.__wrapped__,$n=Fe?[1]:arguments,lr=yn instanceof _o,Ma=$n[0],Sa=lr||vi(yn),Pa=function(wi){var Li=yt.apply(Wt,fa([wi],$n));return Fe&&eo?Li[0]:Li};Sa&&oe&&typeof Ma=="function"&&Ma.length!=1&&(lr=Sa=!1);var eo=this.__chain__,Eo=!!this.__actions__.length,Ko=Xt&&!eo,bi=lr&&!Eo;if(!Xt&&Sa){yn=bi?yn:new _o(this);var Qo=p.apply(yn,$n);return Qo.__actions__.push({func:Qu,args:[Pa],thisArg:t}),new $i(Qo,eo)}return Ko&&bi?p.apply(this,$n):(Qo=this.thru(Pa),Ko?Fe?Qo.value()[0]:Qo.value():Qo)})}),Wr(["pop","push","shift","sort","splice","unshift"],function(p){var E=zi[p],oe=/^(?:push|sort|unshift)$/.test(p)?"tap":"thru",Fe=/^(?:pop|shift)$/.test(p);Wt.prototype[p]=function(){var yt=arguments;if(Fe&&!this.__chain__){var Xt=this.value();return E.apply(vi(Xt)?Xt:[],yt)}return this[oe](function(yn){return E.apply(vi(yn)?yn:[],yt)})}}),Xi(_o.prototype,function(p,E){var oe=Wt[E];if(oe){var Fe=oe.name+"";qo.call(Nl,Fe)||(Nl[Fe]=[]),Nl[Fe].push({name:E,func:oe})}}),Nl[xr(t,Z).name]=[{name:"wrapper",func:t}],_o.prototype.clone=go,_o.prototype.reverse=ku,_o.prototype.value=vu,Wt.prototype.at=wd,Wt.prototype.chain=Gc,Wt.prototype.commit=jd,Wt.prototype.next=$d,Wt.prototype.plant=of,Wt.prototype.reverse=Ud,Wt.prototype.toJSON=Wt.prototype.valueOf=Wt.prototype.value=sf,Wt.prototype.first=Wt.prototype.head,_l&&(Wt.prototype[_l]=Zd),Wt},Ml=Qs();Ua._=Ml,a=function(){return Ml}.call(y,e,y,b),a!==t&&(b.exports=a)}).call(this)},80231:function(b,y,e){var a=e(83250),t=function(){return a.Date.now()};b.exports=t},84506:function(b){function y(){return[]}b.exports=y},37999:function(b){function y(){return!1}b.exports=y},14633:function(b,y,e){var a=e(77837),t=e(93702),o="Expected a function";function s(n,d,l){var c=!0,m=!0;if(typeof n!="function")throw new TypeError(o);return t(l)&&(c="leading"in l?!!l.leading:c,m="trailing"in l?!!l.trailing:m),a(n,d,{leading:c,maxWait:d,trailing:m})}b.exports=s},29153:function(b,y,e){var a=e(21656),t=e(93702),o=e(52624),s=0/0,n=/^[-+]0x[0-9a-f]+$/i,d=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;function m(g){if(typeof g=="number")return g;if(o(g))return s;if(t(g)){var M=typeof g.valueOf=="function"?g.valueOf():g;g=t(M)?M+"":M}if(typeof g!="string")return g===0?g:+g;g=a(g);var h=d.test(g);return h||l.test(g)?c(g.slice(2),h?2:8):n.test(g)?s:+g}b.exports=m},85417:function(b,y,e){(function(a,t){t(e(6901))})(this,function(a){"use strict";var t=a.defineLocale("zh-cn",{months:"\u4E00\u6708_\u4E8C\u6708_\u4E09\u6708_\u56DB\u6708_\u4E94\u6708_\u516D\u6708_\u4E03\u6708_\u516B\u6708_\u4E5D\u6708_\u5341\u6708_\u5341\u4E00\u6708_\u5341\u4E8C\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661F\u671F\u65E5_\u661F\u671F\u4E00_\u661F\u671F\u4E8C_\u661F\u671F\u4E09_\u661F\u671F\u56DB_\u661F\u671F\u4E94_\u661F\u671F\u516D".split("_"),weekdaysShort:"\u5468\u65E5_\u5468\u4E00_\u5468\u4E8C_\u5468\u4E09_\u5468\u56DB_\u5468\u4E94_\u5468\u516D".split("_"),weekdaysMin:"\u65E5_\u4E00_\u4E8C_\u4E09_\u56DB_\u4E94_\u516D".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5E74M\u6708D\u65E5",LLL:"YYYY\u5E74M\u6708D\u65E5Ah\u70B9mm\u5206",LLLL:"YYYY\u5E74M\u6708D\u65E5ddddAh\u70B9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5E74M\u6708D\u65E5",lll:"YYYY\u5E74M\u6708D\u65E5 HH:mm",llll:"YYYY\u5E74M\u6708D\u65E5dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(o,s){return o===12&&(o=0),s==="\u51CC\u6668"||s==="\u65E9\u4E0A"||s==="\u4E0A\u5348"?o:s==="\u4E0B\u5348"||s==="\u665A\u4E0A"?o+12:o>=11?o:o+12},meridiem:function(o,s,n){var d=o*100+s;return d<600?"\u51CC\u6668":d<900?"\u65E9\u4E0A":d<1130?"\u4E0A\u5348":d<1230?"\u4E2D\u5348":d<1800?"\u4E0B\u5348":"\u665A\u4E0A"},calendar:{sameDay:"[\u4ECA\u5929]LT",nextDay:"[\u660E\u5929]LT",nextWeek:function(o){return o.week()!==this.week()?"[\u4E0B]dddLT":"[\u672C]dddLT"},lastDay:"[\u6628\u5929]LT",lastWeek:function(o){return this.week()!==o.week()?"[\u4E0A]dddLT":"[\u672C]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(o,s){switch(s){case"d":case"D":case"DDD":return o+"\u65E5";case"M":return o+"\u6708";case"w":case"W":return o+"\u5468";default:return o}},relativeTime:{future:"%s\u540E",past:"%s\u524D",s:"\u51E0\u79D2",ss:"%d \u79D2",m:"1 \u5206\u949F",mm:"%d \u5206\u949F",h:"1 \u5C0F\u65F6",hh:"%d \u5C0F\u65F6",d:"1 \u5929",dd:"%d \u5929",w:"1 \u5468",ww:"%d \u5468",M:"1 \u4E2A\u6708",MM:"%d \u4E2A\u6708",y:"1 \u5E74",yy:"%d \u5E74"},week:{dow:1,doy:4}});return t})},6901:function(b,y,e){b=e.nmd(b);(function(a,t){b.exports=t()})(this,function(){"use strict";var a;function t(){return a.apply(null,arguments)}function o(F){a=F}function s(F){return F instanceof Array||Object.prototype.toString.call(F)==="[object Array]"}function n(F){return F!=null&&Object.prototype.toString.call(F)==="[object Object]"}function d(F,ve){return Object.prototype.hasOwnProperty.call(F,ve)}function l(F){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(F).length===0;var ve;for(ve in F)if(d(F,ve))return!1;return!0}function c(F){return F===void 0}function m(F){return typeof F=="number"||Object.prototype.toString.call(F)==="[object Number]"}function g(F){return F instanceof Date||Object.prototype.toString.call(F)==="[object Date]"}function M(F,ve){var Ze=[],ot,Lt=F.length;for(ot=0;ot>>0,ot;for(ot=0;ot0)for(Ze=0;Ze=0;return(jn?Ze?"+":"":"-")+Math.pow(10,Math.max(0,Lt)).toString().substr(1)+ot}var A=/(\[[^\[]*\])|(\\)?([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,V=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,fe={},pe={};function ge(F,ve,Ze,ot){var Lt=ot;typeof ot=="string"&&(Lt=function(){return this[ot]()}),F&&(pe[F]=Lt),ve&&(pe[ve[0]]=function(){return U(Lt.apply(this,arguments),ve[1],ve[2])}),Ze&&(pe[Ze]=function(){return this.localeData().ordinal(Lt.apply(this,arguments),F)})}function be(F){return F.match(/\[[\s\S]/)?F.replace(/^\[|\]$/g,""):F.replace(/\\/g,"")}function Te(F){var ve=F.match(A),Ze,ot;for(Ze=0,ot=ve.length;Ze=0&&V.test(F);)F=F.replace(V,ot),V.lastIndex=0,Ze-=1;return F}var Qe={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"};function ht(F){var ve=this._longDateFormat[F],Ze=this._longDateFormat[F.toUpperCase()];return ve||!Ze?ve:(this._longDateFormat[F]=Ze.match(A).map(function(ot){return ot==="MMMM"||ot==="MM"||ot==="DD"||ot==="dddd"?ot.slice(1):ot}).join(""),this._longDateFormat[F])}var Et="Invalid date";function gt(){return this._invalidDate}var Ht="%d",$e=/\d{1,2}/;function Xe(F){return this._ordinal.replace("%d",F)}var rt={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"};function Ke(F,ve,Ze,ot){var Lt=this._relativeTime[Ze];return q(Lt)?Lt(F,ve,Ze,ot):Lt.replace(/%d/i,F)}function ye(F,ve){var Ze=this._relativeTime[F>0?"future":"past"];return q(Ze)?Ze(ve):Ze.replace(/%s/i,ve)}var ne={};function H(F,ve){var Ze=F.toLowerCase();ne[Ze]=ne[Ze+"s"]=ne[ve]=F}function R(F){return typeof F=="string"?ne[F]||ne[F.toLowerCase()]:void 0}function P(F){var ve={},Ze,ot;for(ot in F)d(F,ot)&&(Ze=R(ot),Ze&&(ve[Ze]=F[ot]));return ve}var ae={};function Q(F,ve){ae[F]=ve}function ie(F){var ve=[],Ze;for(Ze in F)d(F,Ze)&&ve.push({unit:Ze,priority:ae[Ze]});return ve.sort(function(ot,Lt){return ot.priority-Lt.priority}),ve}function me(F){return F%4===0&&F%100!==0||F%400===0}function je(F){return F<0?Math.ceil(F)||0:Math.floor(F)}function Ce(F){var ve=+F,Ze=0;return ve!==0&&isFinite(ve)&&(Ze=je(ve)),Ze}function Se(F,ve){return function(Ze){return Ze!=null?(re(this,F,Ze),t.updateOffset(this,ve),this):We(this,F)}}function We(F,ve){return F.isValid()?F._d["get"+(F._isUTC?"UTC":"")+ve]():NaN}function re(F,ve,Ze){F.isValid()&&!isNaN(Ze)&&(ve==="FullYear"&&me(F.year())&&F.month()===1&&F.date()===29?(Ze=Ce(Ze),F._d["set"+(F._isUTC?"UTC":"")+ve](Ze,F.month(),Mn(Ze,F.month()))):F._d["set"+(F._isUTC?"UTC":"")+ve](Ze))}function se(F){return F=R(F),q(this[F])?this[F]():this}function J(F,ve){if(typeof F=="object"){F=P(F);var Ze=ie(F),ot,Lt=Ze.length;for(ot=0;ot68?1900:2e3)};var mn=Se("FullYear",!0);function fn(){return me(this.year())}function kn(F,ve,Ze,ot,Lt,jn,Rr){var lo;return F<100&&F>=0?(lo=new Date(F+400,ve,Ze,ot,Lt,jn,Rr),isFinite(lo.getFullYear())&&lo.setFullYear(F)):lo=new Date(F,ve,Ze,ot,Lt,jn,Rr),lo}function qn(F){var ve,Ze;return F<100&&F>=0?(Ze=Array.prototype.slice.call(arguments),Ze[0]=F+400,ve=new Date(Date.UTC.apply(null,Ze)),isFinite(ve.getUTCFullYear())&&ve.setUTCFullYear(F)):ve=new Date(Date.UTC.apply(null,arguments)),ve}function ct(F,ve,Ze){var ot=7+ve-Ze,Lt=(7+qn(F,0,ot).getUTCDay()-ve)%7;return-Lt+ot-1}function dt(F,ve,Ze,ot,Lt){var jn=(7+Ze-ot)%7,Rr=ct(F,ot,Lt),lo=1+7*(ve-1)+jn+Rr,Ro,di;return lo<=0?(Ro=F-1,di=tn(Ro)+lo):lo>tn(F)?(Ro=F+1,di=lo-tn(F)):(Ro=F,di=lo),{year:Ro,dayOfYear:di}}function It(F,ve,Ze){var ot=ct(F.year(),ve,Ze),Lt=Math.floor((F.dayOfYear()-ot-1)/7)+1,jn,Rr;return Lt<1?(Rr=F.year()-1,jn=Lt+Ct(Rr,ve,Ze)):Lt>Ct(F.year(),ve,Ze)?(jn=Lt-Ct(F.year(),ve,Ze),Rr=F.year()+1):(Rr=F.year(),jn=Lt),{week:jn,year:Rr}}function Ct(F,ve,Ze){var ot=ct(F,ve,Ze),Lt=ct(F+1,ve,Ze);return(tn(F)-ot+Lt)/7}ge("w",["ww",2],"wo","week"),ge("W",["WW",2],"Wo","isoWeek"),H("week","w"),H("isoWeek","W"),Q("week",5),Q("isoWeek",5),Yt("w",we),Yt("ww",we,xe),Yt("W",we),Yt("WW",we,xe),Vt(["w","ww","W","WW"],function(F,ve,Ze,ot){ve[ot.substr(0,1)]=Ce(F)});function kt(F){return It(F,this._week.dow,this._week.doy).week}var un={dow:0,doy:6};function nn(){return this._week.dow}function xn(){return this._week.doy}function Rn(F){var ve=this.localeData().week(this);return F==null?ve:this.add((F-ve)*7,"d")}function Mr(F){var ve=It(this,1,4).week;return F==null?ve:this.add((F-ve)*7,"d")}ge("d",0,"do","day"),ge("dd",0,0,function(F){return this.localeData().weekdaysMin(this,F)}),ge("ddd",0,0,function(F){return this.localeData().weekdaysShort(this,F)}),ge("dddd",0,0,function(F){return this.localeData().weekdays(this,F)}),ge("e",0,0,"weekday"),ge("E",0,0,"isoWeekday"),H("day","d"),H("weekday","e"),H("isoWeekday","E"),Q("day",11),Q("weekday",11),Q("isoWeekday",11),Yt("d",we),Yt("e",we),Yt("E",we),Yt("dd",function(F,ve){return ve.weekdaysMinRegex(F)}),Yt("ddd",function(F,ve){return ve.weekdaysShortRegex(F)}),Yt("dddd",function(F,ve){return ve.weekdaysRegex(F)}),Vt(["dd","ddd","dddd"],function(F,ve,Ze,ot){var Lt=Ze._locale.weekdaysParse(F,ot,Ze._strict);Lt!=null?ve.d=Lt:C(Ze).invalidWeekday=F}),Vt(["d","e","E"],function(F,ve,Ze,ot){ve[ot]=Ce(F)});function er(F,ve){return typeof F!="string"?F:isNaN(F)?(F=ve.weekdaysParse(F),typeof F=="number"?F:null):parseInt(F,10)}function zn(F,ve){return typeof F=="string"?ve.weekdaysParse(F)%7||7:isNaN(F)?null:F}function Ur(F,ve){return F.slice(ve,7).concat(F.slice(0,ve))}var pr="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),sa="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Nr="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Zn=Ot,In=Ot,Pn=Ot;function rr(F,ve){var Ze=s(this._weekdays)?this._weekdays:this._weekdays[F&&F!==!0&&this._weekdays.isFormat.test(ve)?"format":"standalone"];return F===!0?Ur(Ze,this._week.dow):F?Ze[F.day()]:Ze}function br(F){return F===!0?Ur(this._weekdaysShort,this._week.dow):F?this._weekdaysShort[F.day()]:this._weekdaysShort}function Gr(F){return F===!0?Ur(this._weekdaysMin,this._week.dow):F?this._weekdaysMin[F.day()]:this._weekdaysMin}function na(F,ve,Ze){var ot,Lt,jn,Rr=F.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],ot=0;ot<7;++ot)jn=S([2e3,1]).day(ot),this._minWeekdaysParse[ot]=this.weekdaysMin(jn,"").toLocaleLowerCase(),this._shortWeekdaysParse[ot]=this.weekdaysShort(jn,"").toLocaleLowerCase(),this._weekdaysParse[ot]=this.weekdays(jn,"").toLocaleLowerCase();return Ze?ve==="dddd"?(Lt=ln.call(this._weekdaysParse,Rr),Lt!==-1?Lt:null):ve==="ddd"?(Lt=ln.call(this._shortWeekdaysParse,Rr),Lt!==-1?Lt:null):(Lt=ln.call(this._minWeekdaysParse,Rr),Lt!==-1?Lt:null):ve==="dddd"?(Lt=ln.call(this._weekdaysParse,Rr),Lt!==-1||(Lt=ln.call(this._shortWeekdaysParse,Rr),Lt!==-1)?Lt:(Lt=ln.call(this._minWeekdaysParse,Rr),Lt!==-1?Lt:null)):ve==="ddd"?(Lt=ln.call(this._shortWeekdaysParse,Rr),Lt!==-1||(Lt=ln.call(this._weekdaysParse,Rr),Lt!==-1)?Lt:(Lt=ln.call(this._minWeekdaysParse,Rr),Lt!==-1?Lt:null)):(Lt=ln.call(this._minWeekdaysParse,Rr),Lt!==-1||(Lt=ln.call(this._weekdaysParse,Rr),Lt!==-1)?Lt:(Lt=ln.call(this._shortWeekdaysParse,Rr),Lt!==-1?Lt:null))}function pa(F,ve,Ze){var ot,Lt,jn;if(this._weekdaysParseExact)return na.call(this,F,ve,Ze);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),ot=0;ot<7;ot++){if(Lt=S([2e3,1]).day(ot),Ze&&!this._fullWeekdaysParse[ot]&&(this._fullWeekdaysParse[ot]=new RegExp("^"+this.weekdays(Lt,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[ot]=new RegExp("^"+this.weekdaysShort(Lt,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[ot]=new RegExp("^"+this.weekdaysMin(Lt,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[ot]||(jn="^"+this.weekdays(Lt,"")+"|^"+this.weekdaysShort(Lt,"")+"|^"+this.weekdaysMin(Lt,""),this._weekdaysParse[ot]=new RegExp(jn.replace(".",""),"i")),Ze&&ve==="dddd"&&this._fullWeekdaysParse[ot].test(F))return ot;if(Ze&&ve==="ddd"&&this._shortWeekdaysParse[ot].test(F))return ot;if(Ze&&ve==="dd"&&this._minWeekdaysParse[ot].test(F))return ot;if(!Ze&&this._weekdaysParse[ot].test(F))return ot}}function cr(F){if(!this.isValid())return F!=null?this:NaN;var ve=this._isUTC?this._d.getUTCDay():this._d.getDay();return F!=null?(F=er(F,this.localeData()),this.add(F-ve,"d")):ve}function Zr(F){if(!this.isValid())return F!=null?this:NaN;var ve=(this.day()+7-this.localeData()._week.dow)%7;return F==null?ve:this.add(F-ve,"d")}function Ea(F){if(!this.isValid())return F!=null?this:NaN;if(F!=null){var ve=zn(F,this.localeData());return this.day(this.day()%7?ve:ve-7)}else return this.day()||7}function ha(F){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||hr.call(this),F?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=Zn),this._weekdaysStrictRegex&&F?this._weekdaysStrictRegex:this._weekdaysRegex)}function Wn(F){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||hr.call(this),F?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=In),this._weekdaysShortStrictRegex&&F?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Fn(F){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||hr.call(this),F?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Pn),this._weekdaysMinStrictRegex&&F?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function hr(){function F(Yi,rl){return rl.length-Yi.length}var ve=[],Ze=[],ot=[],Lt=[],jn,Rr,lo,Ro,di;for(jn=0;jn<7;jn++)Rr=S([2e3,1]).day(jn),lo=nt(this.weekdaysMin(Rr,"")),Ro=nt(this.weekdaysShort(Rr,"")),di=nt(this.weekdays(Rr,"")),ve.push(lo),Ze.push(Ro),ot.push(di),Lt.push(lo),Lt.push(Ro),Lt.push(di);ve.sort(F),Ze.sort(F),ot.sort(F),Lt.sort(F),this._weekdaysRegex=new RegExp("^("+Lt.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+ot.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+Ze.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+ve.join("|")+")","i")}function Kr(){return this.hours()%12||12}function Ar(){return this.hours()||24}ge("H",["HH",2],0,"hour"),ge("h",["hh",2],0,Kr),ge("k",["kk",2],0,Ar),ge("hmm",0,0,function(){return""+Kr.apply(this)+U(this.minutes(),2)}),ge("hmmss",0,0,function(){return""+Kr.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)}),ge("Hmm",0,0,function(){return""+this.hours()+U(this.minutes(),2)}),ge("Hmmss",0,0,function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)});function Pt(F,ve){ge(F,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),ve)})}Pt("a",!0),Pt("A",!1),H("hour","h"),Q("hour",13);function an(F,ve){return ve._meridiemParse}Yt("a",an),Yt("A",an),Yt("H",we),Yt("h",we),Yt("k",we),Yt("HH",we,xe),Yt("hh",we,xe),Yt("kk",we,xe),Yt("hmm",Re),Yt("hmmss",st),Yt("Hmm",Re),Yt("Hmmss",st),ut(["H","HH"],Mt),ut(["k","kk"],function(F,ve,Ze){var ot=Ce(F);ve[Mt]=ot===24?0:ot}),ut(["a","A"],function(F,ve,Ze){Ze._isPm=Ze._locale.isPM(F),Ze._meridiem=F}),ut(["h","hh"],function(F,ve,Ze){ve[Mt]=Ce(F),C(Ze).bigHour=!0}),ut("hmm",function(F,ve,Ze){var ot=F.length-2;ve[Mt]=Ce(F.substr(0,ot)),ve[jt]=Ce(F.substr(ot)),C(Ze).bigHour=!0}),ut("hmmss",function(F,ve,Ze){var ot=F.length-4,Lt=F.length-2;ve[Mt]=Ce(F.substr(0,ot)),ve[jt]=Ce(F.substr(ot,2)),ve[He]=Ce(F.substr(Lt)),C(Ze).bigHour=!0}),ut("Hmm",function(F,ve,Ze){var ot=F.length-2;ve[Mt]=Ce(F.substr(0,ot)),ve[jt]=Ce(F.substr(ot))}),ut("Hmmss",function(F,ve,Ze){var ot=F.length-4,Lt=F.length-2;ve[Mt]=Ce(F.substr(0,ot)),ve[jt]=Ce(F.substr(ot,2)),ve[He]=Ce(F.substr(Lt))});function pn(F){return(F+"").toLowerCase().charAt(0)==="p"}var qa=/[ap]\.?m?\.?/i,Mo=Se("Hours",!0);function Ua(F,ve,Ze){return F>11?Ze?"pm":"PM":Ze?"am":"AM"}var Wa={calendar:O,longDateFormat:Qe,invalidDate:Et,ordinal:Ht,dayOfMonthOrdinalParse:$e,relativeTime:rt,months:gn,monthsShort:Yn,week:un,weekdays:pr,weekdaysMin:Nr,weekdaysShort:sa,meridiemParse:qa},Xa={},No={},$o;function So(F,ve){var Ze,ot=Math.min(F.length,ve.length);for(Ze=0;Ze0;){if(Lt=cn(jn.slice(0,Ze).join("-")),Lt)return Lt;if(ot&&ot.length>=Ze&&So(jn,ot)>=Ze-1)break;Ze--}ve++}return $o}function Ae(F){return F.match("^[^/\\\\]*$")!=null}function cn(F){var ve=null,Ze;if(Xa[F]===void 0&&b&&b.exports&&Ae(F))try{ve=$o._abbr,Ze=void 0,Object(function(){var Lt=new Error("Cannot find module 'undefined'");throw Lt.code="MODULE_NOT_FOUND",Lt}()),An(ve)}catch(ot){Xa[F]=null}return Xa[F]}function An(F,ve){var Ze;return F&&(c(ve)?Ze=nr(F):Ze=hn(F,ve),Ze?$o=Ze:typeof console!="undefined"&&console.warn&&console.warn("Locale "+F+" not found. Did you forget to load it?")),$o._abbr}function hn(F,ve){if(ve!==null){var Ze,ot=Wa;if(ve.abbr=F,Xa[F]!=null)Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),ot=Xa[F]._config;else if(ve.parentLocale!=null)if(Xa[ve.parentLocale]!=null)ot=Xa[ve.parentLocale]._config;else if(Ze=cn(ve.parentLocale),Ze!=null)ot=Ze._config;else return No[ve.parentLocale]||(No[ve.parentLocale]=[]),No[ve.parentLocale].push({name:F,config:ve}),null;return Xa[F]=new W(X(ot,ve)),No[F]&&No[F].forEach(function(Lt){hn(Lt.name,Lt.config)}),An(F),Xa[F]}else return delete Xa[F],null}function Xn(F,ve){if(ve!=null){var Ze,ot,Lt=Wa;Xa[F]!=null&&Xa[F].parentLocale!=null?Xa[F].set(X(Xa[F]._config,ve)):(ot=cn(F),ot!=null&&(Lt=ot._config),ve=X(Lt,ve),ot==null&&(ve.abbr=F),Ze=new W(ve),Ze.parentLocale=Xa[F],Xa[F]=Ze),An(F)}else Xa[F]!=null&&(Xa[F].parentLocale!=null?(Xa[F]=Xa[F].parentLocale,F===An()&&An(F)):Xa[F]!=null&&delete Xa[F]);return Xa[F]}function nr(F){var ve;if(F&&F._locale&&F._locale._abbr&&(F=F._locale._abbr),!F)return $o;if(!s(F)){if(ve=cn(F),ve)return ve;F=[F]}return Rt(F)}function Wr(){return x(Xa)}function Da(F){var ve,Ze=F._a;return Ze&&C(F).overflow===-2&&(ve=Ze[Ie]<0||Ze[Ie]>11?Ie:Ze[Ee]<1||Ze[Ee]>Mn(Ze[At],Ze[Ie])?Ee:Ze[Mt]<0||Ze[Mt]>24||Ze[Mt]===24&&(Ze[jt]!==0||Ze[He]!==0||Ze[et]!==0)?Mt:Ze[jt]<0||Ze[jt]>59?jt:Ze[He]<0||Ze[He]>59?He:Ze[et]<0||Ze[et]>999?et:-1,C(F)._overflowDayOfYear&&(veEe)&&(ve=Ee),C(F)._overflowWeeks&&ve===-1&&(ve=Zt),C(F)._overflowWeekday&&ve===-1&&(ve=Ut),C(F).overflow=ve),F}var oa=/^\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)?)?$/,Qr=/^\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)?)?$/,ra=/Z|[+-]\d\d(?::?\d\d)?/,jr=[["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]],$r=[["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/]],fa=/^\/?Date\((-?\d+)/i,Na=/^(?:(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}))$/,to={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Ka(F){var ve,Ze,ot=F._i,Lt=oa.exec(ot)||Qr.exec(ot),jn,Rr,lo,Ro,di=jr.length,Yi=$r.length;if(Lt){for(C(F).iso=!0,ve=0,Ze=di;vetn(Rr)||F._dayOfYear===0)&&(C(F)._overflowDayOfYear=!0),Ze=qn(Rr,0,F._dayOfYear),F._a[Ie]=Ze.getUTCMonth(),F._a[Ee]=Ze.getUTCDate()),ve=0;ve<3&&F._a[ve]==null;++ve)F._a[ve]=ot[ve]=Lt[ve];for(;ve<7;ve++)F._a[ve]=ot[ve]=F._a[ve]==null?ve===2?1:0:F._a[ve];F._a[Mt]===24&&F._a[jt]===0&&F._a[He]===0&&F._a[et]===0&&(F._nextDay=!0,F._a[Mt]=0),F._d=(F._useUTC?qn:kn).apply(null,ot),jn=F._useUTC?F._d.getUTCDay():F._d.getDay(),F._tzm!=null&&F._d.setUTCMinutes(F._d.getUTCMinutes()-F._tzm),F._nextDay&&(F._a[Mt]=24),F._w&&typeof F._w.d!="undefined"&&F._w.d!==jn&&(C(F).weekdayMismatch=!0)}}function Oa(F){var ve,Ze,ot,Lt,jn,Rr,lo,Ro,di;ve=F._w,ve.GG!=null||ve.W!=null||ve.E!=null?(jn=1,Rr=4,Ze=or(ve.GG,F._a[At],It(Za(),1,4).year),ot=or(ve.W,1),Lt=or(ve.E,1),(Lt<1||Lt>7)&&(Ro=!0)):(jn=F._locale._week.dow,Rr=F._locale._week.doy,di=It(Za(),jn,Rr),Ze=or(ve.gg,F._a[At],di.year),ot=or(ve.w,di.week),ve.d!=null?(Lt=ve.d,(Lt<0||Lt>6)&&(Ro=!0)):ve.e!=null?(Lt=ve.e+jn,(ve.e<0||ve.e>6)&&(Ro=!0)):Lt=jn),ot<1||ot>Ct(Ze,jn,Rr)?C(F)._overflowWeeks=!0:Ro!=null?C(F)._overflowWeekday=!0:(lo=dt(Ze,ot,Lt,jn,Rr),F._a[At]=lo.year,F._dayOfYear=lo.dayOfYear)}t.ISO_8601=function(){},t.RFC_2822=function(){};function Ia(F){if(F._f===t.ISO_8601){Ka(F);return}if(F._f===t.RFC_2822){kr(F);return}F._a=[],C(F).empty=!0;var ve=""+F._i,Ze,ot,Lt,jn,Rr,lo=ve.length,Ro=0,di,Yi;for(Lt=qe(F._f,F._locale).match(A)||[],Yi=Lt.length,Ze=0;Ze0&&C(F).unusedInput.push(Rr),ve=ve.slice(ve.indexOf(ot)+ot.length),Ro+=ot.length),pe[jn]?(ot?C(F).empty=!1:C(F).unusedTokens.push(jn),Nt(jn,ot,F)):F._strict&&!ot&&C(F).unusedTokens.push(jn);C(F).charsLeftOver=lo-Ro,ve.length>0&&C(F).unusedInput.push(ve),F._a[Mt]<=12&&C(F).bigHour===!0&&F._a[Mt]>0&&(C(F).bigHour=void 0),C(F).parsedDateParts=F._a.slice(0),C(F).meridiem=F._meridiem,F._a[Mt]=Xr(F._locale,F._a[Mt],F._meridiem),di=C(F).era,di!==null&&(F._a[At]=F._locale.erasConvertYear(di,F._a[At])),ca(F),Da(F)}function Xr(F,ve,Ze){var ot;return Ze==null?ve:F.meridiemHour!=null?F.meridiemHour(ve,Ze):(F.isPM!=null&&(ot=F.isPM(Ze),ot&&ve<12&&(ve+=12),!ot&&ve===12&&(ve=0)),ve)}function po(F){var ve,Ze,ot,Lt,jn,Rr,lo=!1,Ro=F._f.length;if(Ro===0){C(F).invalidFormat=!0,F._d=new Date(NaN);return}for(Lt=0;Ltthis?this:F:N()});function ri(F,ve){var Ze,ot;if(ve.length===1&&s(ve[0])&&(ve=ve[0]),!ve.length)return Za();for(Ze=ve[0],ot=1;otthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Vn(){if(!c(this._isDSTShifted))return this._isDSTShifted;var F={},ve;return D(F,this),F=Co(F),F._a?(ve=F._isUTC?S(F._a):Za(F._a),this._isDSTShifted=this.isValid()&&no(F._a,ve.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function Vr(){return this.isValid()?!this._isUTC:!1}function Or(){return this.isValid()?this._isUTC:!1}function Br(){return this.isValid()?this._isUTC&&this._offset===0:!1}var aa=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Ta=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function za(F,ve){var Ze=F,ot=null,Lt,jn,Rr;return Ni(F)?Ze={ms:F._milliseconds,d:F._days,M:F._months}:m(F)||!isNaN(+F)?(Ze={},ve?Ze[ve]=+F:Ze.milliseconds=+F):(ot=aa.exec(F))?(Lt=ot[1]==="-"?-1:1,Ze={y:0,d:Ce(ot[Ee])*Lt,h:Ce(ot[Mt])*Lt,m:Ce(ot[jt])*Lt,s:Ce(ot[He])*Lt,ms:Ce(xi(ot[et]*1e3))*Lt}):(ot=Ta.exec(F))?(Lt=ot[1]==="-"?-1:1,Ze={y:La(ot[2],Lt),M:La(ot[3],Lt),w:La(ot[4],Lt),d:La(ot[5],Lt),h:La(ot[6],Lt),m:La(ot[7],Lt),s:La(ot[8],Lt)}):Ze==null?Ze={}:typeof Ze=="object"&&("from"in Ze||"to"in Ze)&&(Rr=Jo(Za(Ze.from),Za(Ze.to)),Ze={},Ze.ms=Rr.milliseconds,Ze.M=Rr.months),jn=new Ci(Ze),Ni(F)&&d(F,"_locale")&&(jn._locale=F._locale),Ni(F)&&d(F,"_isValid")&&(jn._isValid=F._isValid),jn}za.fn=Ci.prototype,za.invalid=li;function La(F,ve){var Ze=F&&parseFloat(F.replace(",","."));return(isNaN(Ze)?0:Ze)*ve}function Fo(F,ve){var Ze={};return Ze.months=ve.month()-F.month()+(ve.year()-F.year())*12,F.clone().add(Ze.months,"M").isAfter(ve)&&--Ze.months,Ze.milliseconds=+ve-+F.clone().add(Ze.months,"M"),Ze}function Jo(F,ve){var Ze;return F.isValid()&&ve.isValid()?(ve=jo(ve,F),F.isBefore(ve)?Ze=Fo(F,ve):(Ze=Fo(ve,F),Ze.milliseconds=-Ze.milliseconds,Ze.months=-Ze.months),Ze):{milliseconds:0,months:0}}function Yo(F,ve){return function(Ze,ot){var Lt,jn;return ot!==null&&!isNaN(+ot)&&(Y(ve,"moment()."+ve+"(period, number) is deprecated. Please use moment()."+ve+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),jn=Ze,Ze=ot,ot=jn),Lt=za(Ze,ot),zi(this,Lt,F),this}}function zi(F,ve,Ze,ot){var Lt=ve._milliseconds,jn=xi(ve._days),Rr=xi(ve._months);F.isValid()&&(ot=ot==null?!0:ot,Rr&&Cn(F,We(F,"Month")+Rr*Ze),jn&&re(F,"Date",We(F,"Date")+jn*Ze),Lt&&F._d.setTime(F._d.valueOf()+Lt*Ze),ot&&t.updateOffset(F,jn||Rr))}var Cs=Yo(1,"add"),Qi=Yo(-1,"subtract");function js(F){return typeof F=="string"||F instanceof String}function qi(F){return j(F)||g(F)||js(F)||m(F)||tu(F)||qo(F)||F===null||F===void 0}function qo(F){var ve=n(F)&&!l(F),Ze=!1,ot=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],Lt,jn,Rr=ot.length;for(Lt=0;LtZe.valueOf():Ze.valueOf()9999?Ge(Ze,ve?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):q(Date.prototype.toISOString)?ve?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",Ge(Ze,"Z")):Ge(Ze,ve?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function _l(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var F="moment",ve="",Ze,ot,Lt,jn;return this.isLocal()||(F=this.utcOffset()===0?"moment.utc":"moment.parseZone",ve="Z"),Ze="["+F+'("]',ot=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",Lt="-MM-DD[T]HH:mm:ss.SSS",jn=ve+'[")]',this.format(Ze+ot+Lt+jn)}function Ls(F){F||(F=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var ve=Ge(this,F);return this.localeData().postformat(ve)}function Ft(F,ve){return this.isValid()&&(j(F)&&F.isValid()||Za(F).isValid())?za({to:this,from:F}).locale(this.locale()).humanize(!ve):this.localeData().invalidDate()}function Io(F){return this.from(Za(),F)}function Us(F,ve){return this.isValid()&&(j(F)&&F.isValid()||Za(F).isValid())?za({from:this,to:F}).locale(this.locale()).humanize(!ve):this.localeData().invalidDate()}function Uo(F){return this.to(Za(),F)}function dl(F){var ve;return F===void 0?this._locale._abbr:(ve=nr(F),ve!=null&&(this._locale=ve),this)}var la=k("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(F){return F===void 0?this.localeData():this.locale(F)});function fl(){return this._locale}var ru=1e3,qs=60*ru,Ll=60*qs,Yl=(365*400+97)*24*Ll;function Po(F,ve){return(F%ve+ve)%ve}function Si(F,ve,Ze){return F<100&&F>=0?new Date(F+400,ve,Ze)-Yl:new Date(F,ve,Ze).valueOf()}function dc(F,ve,Ze){return F<100&&F>=0?Date.UTC(F+400,ve,Ze)-Yl:Date.UTC(F,ve,Ze)}function ec(F){var ve,Ze;if(F=R(F),F===void 0||F==="millisecond"||!this.isValid())return this;switch(Ze=this._isUTC?dc:Si,F){case"year":ve=Ze(this.year(),0,1);break;case"quarter":ve=Ze(this.year(),this.month()-this.month()%3,1);break;case"month":ve=Ze(this.year(),this.month(),1);break;case"week":ve=Ze(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":ve=Ze(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":ve=Ze(this.year(),this.month(),this.date());break;case"hour":ve=this._d.valueOf(),ve-=Po(ve+(this._isUTC?0:this.utcOffset()*qs),Ll);break;case"minute":ve=this._d.valueOf(),ve-=Po(ve,qs);break;case"second":ve=this._d.valueOf(),ve-=Po(ve,ru);break}return this._d.setTime(ve),t.updateOffset(this,!0),this}function Ja(F){var ve,Ze;if(F=R(F),F===void 0||F==="millisecond"||!this.isValid())return this;switch(Ze=this._isUTC?dc:Si,F){case"year":ve=Ze(this.year()+1,0,1)-1;break;case"quarter":ve=Ze(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":ve=Ze(this.year(),this.month()+1,1)-1;break;case"week":ve=Ze(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":ve=Ze(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":ve=Ze(this.year(),this.month(),this.date()+1)-1;break;case"hour":ve=this._d.valueOf(),ve+=Ll-Po(ve+(this._isUTC?0:this.utcOffset()*qs),Ll)-1;break;case"minute":ve=this._d.valueOf(),ve+=qs-Po(ve,qs)-1;break;case"second":ve=this._d.valueOf(),ve+=ru-Po(ve,ru)-1;break}return this._d.setTime(ve),t.updateOffset(this,!0),this}function es(){return this._d.valueOf()-(this._offset||0)*6e4}function ks(){return Math.floor(this.valueOf()/1e3)}function Ra(){return new Date(this.valueOf())}function au(){var F=this;return[F.year(),F.month(),F.date(),F.hour(),F.minute(),F.second(),F.millisecond()]}function _i(){var F=this;return{years:F.year(),months:F.month(),date:F.date(),hours:F.hours(),minutes:F.minutes(),seconds:F.seconds(),milliseconds:F.milliseconds()}}function El(){return this.isValid()?this.toISOString():null}function vl(){return Z(this)}function fu(){return h({},C(this))}function Nl(){return C(this).overflow}function tc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}ge("N",0,0,"eraAbbr"),ge("NN",0,0,"eraAbbr"),ge("NNN",0,0,"eraAbbr"),ge("NNNN",0,0,"eraName"),ge("NNNNN",0,0,"eraNarrow"),ge("y",["y",1],"yo","eraYear"),ge("y",["yy",2],0,"eraYear"),ge("y",["yyy",3],0,"eraYear"),ge("y",["yyyy",4],0,"eraYear"),Yt("N",$i),Yt("NN",$i),Yt("NNN",$i),Yt("NNNN",_o),Yt("NNNNN",go),ut(["N","NN","NNN","NNNN","NNNNN"],function(F,ve,Ze,ot){var Lt=Ze._locale.erasParse(F,ot,Ze._strict);Lt?C(Ze).era=Lt:C(Ze).invalidEra=F}),Yt("y",Be),Yt("yy",Be),Yt("yyy",Be),Yt("yyyy",Be),Yt("yo",ku),ut(["y","yy","yyy","yyyy"],At),ut(["yo"],function(F,ve,Ze,ot){var Lt;Ze._locale._eraYearOrdinalRegex&&(Lt=F.match(Ze._locale._eraYearOrdinalRegex)),Ze._locale.eraYearOrdinalParse?ve[At]=Ze._locale.eraYearOrdinalParse(F,Lt):ve[At]=parseInt(F,10)});function Uu(F,ve){var Ze,ot,Lt,jn=this._eras||nr("en")._eras;for(Ze=0,ot=jn.length;Ze=0)return jn[ot]}function Ou(F,ve){var Ze=F.since<=F.until?1:-1;return ve===void 0?t(F.since).year():t(F.since).year()+(ve-F.offset)*Ze}function Vl(){var F,ve,Ze,ot=this.localeData().eras();for(F=0,ve=ot.length;Fjn&&(ve=jn),ou.call(this,F,ve,Ze,ot,Lt))}function ou(F,ve,Ze,ot,Lt){var jn=dt(F,ve,Ze,ot,Lt),Rr=qn(jn.year,0,jn.dayOfYear);return this.year(Rr.getUTCFullYear()),this.month(Rr.getUTCMonth()),this.date(Rr.getUTCDate()),this}ge("Q",0,"Qo","quarter"),H("quarter","Q"),Q("quarter",7),Yt("Q",de),ut("Q",function(F,ve){ve[Ie]=(Ce(F)-1)*3});function Zi(F){return F==null?Math.ceil((this.month()+1)/3):this.month((F-1)*3+this.month()%3)}ge("D",["DD",2],"Do","date"),H("date","D"),Q("date",9),Yt("D",we),Yt("DD",we,xe),Yt("Do",function(F,ve){return F?ve._dayOfMonthOrdinalParse||ve._ordinalParse:ve._dayOfMonthOrdinalParseLenient}),ut(["D","DD"],Ee),ut("Do",function(F,ve){ve[Ee]=Ce(F.match(we)[0])});var iu=Se("Date",!0);ge("DDD",["DDDD",3],"DDDo","dayOfYear"),H("dayOfYear","DDD"),Q("dayOfYear",4),Yt("DDD",tt),Yt("DDDD",ce),ut(["DDD","DDDD"],function(F,ve,Ze){Ze._dayOfYear=Ce(F)});function gu(F){var ve=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return F==null?ve:this.add(F-ve,"d")}ge("m",["mm",2],0,"minute"),H("minute","m"),Q("minute",14),Yt("m",we),Yt("mm",we,xe),ut(["m","mm"],jt);var Ws=Se("Minutes",!1);ge("s",["ss",2],0,"second"),H("second","s"),Q("second",15),Yt("s",we),Yt("ss",we,xe),ut(["s","ss"],He);var Il=Se("Seconds",!1);ge("S",0,0,function(){return~~(this.millisecond()/100)}),ge(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),ge(0,["SSS",3],0,"millisecond"),ge(0,["SSSS",4],0,function(){return this.millisecond()*10}),ge(0,["SSSSS",5],0,function(){return this.millisecond()*100}),ge(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),ge(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),ge(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),ge(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),H("millisecond","ms"),Q("millisecond",16),Yt("S",tt,de),Yt("SS",tt,xe),Yt("SSS",tt,ce);var Al,Is;for(Al="SSSS";Al.length<=9;Al+="S")Yt(Al,Be);function hs(F,ve){ve[et]=Ce(("0."+F)*1e3)}for(Al="S";Al.length<=9;Al+="S")ut(Al,hs);Is=Se("Milliseconds",!1),ge("z",0,0,"zoneAbbr"),ge("zz",0,0,"zoneName");function Du(){return this._isUTC?"UTC":""}function Hs(){return this._isUTC?"Coordinated Universal Time":""}var ma=T.prototype;ma.add=Cs,ma.calendar=Au,ma.clone=cl,ma.diff=xs,ma.endOf=Ja,ma.format=Ls,ma.from=Ft,ma.fromNow=Io,ma.to=Us,ma.toNow=Uo,ma.get=se,ma.invalidAt=Nl,ma.isAfter=Xs,ma.isBefore=Ps,ma.isBetween=Js,ma.isSame=Tl,ma.isSameOrAfter=du,ma.isSameOrBefore=rs,ma.isValid=vl,ma.lang=la,ma.locale=dl,ma.localeData=fl,ma.max=ei,ma.min=xo,ma.parsingFlags=fu,ma.set=J,ma.startOf=ec,ma.subtract=Qi,ma.toArray=au,ma.toObject=_i,ma.toDate=Ra,ma.toISOString=nu,ma.inspect=_l,typeof Symbol!="undefined"&&Symbol.for!=null&&(ma[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),ma.toJSON=El,ma.toString=Ts,ma.unix=ks,ma.valueOf=es,ma.creationData=tc,ma.eraName=Vl,ma.eraNarrow=ps,ma.eraAbbr=Cl,ma.eraYear=gl,ma.year=mn,ma.isLeapYear=fn,ma.weekYear=xl,ma.isoWeekYear=Ei,ma.quarter=ma.quarters=Zi,ma.month=on,ma.daysInMonth=pt,ma.week=ma.weeks=Rn,ma.isoWeek=ma.isoWeeks=Mr,ma.weeksInYear=as,ma.weeksInWeekYear=yo,ma.isoWeeksInYear=Ai,ma.isoWeeksInISOWeekYear=ts,ma.date=iu,ma.day=ma.days=cr,ma.weekday=Zr,ma.isoWeekday=Ea,ma.dayOfYear=gu,ma.hour=ma.hours=Mo,ma.minute=ma.minutes=Ws,ma.second=ma.seconds=Il,ma.millisecond=ma.milliseconds=Is,ma.utcOffset=Ii,ma.utc=ki,ma.local=ws,ma.parseZone=ms,ma.hasAlignedHourOffset=Qs,ma.isDST=Ml,ma.isLocal=Vr,ma.isUtcOffset=Or,ma.isUtc=Br,ma.isUTC=Br,ma.zoneAbbr=Du,ma.zoneName=Hs,ma.dates=k("dates accessor is deprecated. Use date instead.",iu),ma.months=k("months accessor is deprecated. Use month instead",on),ma.years=k("years accessor is deprecated. Use year instead",mn),ma.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ri),ma.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Vn);function at(F){return Za(F*1e3)}function Gt(){return Za.apply(null,arguments).parseZone()}function Hn(F){return F}var ur=W.prototype;ur.calendar=_,ur.longDateFormat=ht,ur.invalidDate=gt,ur.ordinal=Xe,ur.preparse=Hn,ur.postformat=Hn,ur.relativeTime=Ke,ur.pastFuture=ye,ur.set=le,ur.eras=Uu,ur.erasParse=Bo,ur.erasConvertYear=Ou,ur.erasAbbrRegex=Oi,ur.erasNameRegex=Wt,ur.erasNarrowRegex=Gl,ur.months=zt,ur.monthsShort=qt,ur.monthsParse=dn,ur.monthsRegex=sn,ur.monthsShortRegex=mt,ur.week=kt,ur.firstDayOfYear=xn,ur.firstDayOfWeek=nn,ur.weekdays=rr,ur.weekdaysMin=Gr,ur.weekdaysShort=br,ur.weekdaysParse=pa,ur.weekdaysRegex=ha,ur.weekdaysShortRegex=Wn,ur.weekdaysMinRegex=Fn,ur.isPM=pn,ur.meridiem=Ua;function wa(F,ve,Ze,ot){var Lt=nr(),jn=S().set(ot,ve);return Lt[Ze](jn,F)}function fo(F,ve,Ze){if(m(F)&&(ve=F,F=void 0),F=F||"",ve!=null)return wa(F,ve,Ze,"month");var ot,Lt=[];for(ot=0;ot<12;ot++)Lt[ot]=wa(F,ot,Ze,"month");return Lt}function ci(F,ve,Ze,ot){typeof F=="boolean"?(m(ve)&&(Ze=ve,ve=void 0),ve=ve||""):(ve=F,Ze=ve,F=!1,m(ve)&&(Ze=ve,ve=void 0),ve=ve||"");var Lt=nr(),jn=F?Lt._week.dow:0,Rr,lo=[];if(Ze!=null)return wa(ve,(Ze+jn)%7,ot,"day");for(Rr=0;Rr<7;Rr++)lo[Rr]=wa(ve,(Rr+jn)%7,ot,"day");return lo}function ko(F,ve){return fo(F,ve,"months")}function ns(F,ve){return fo(F,ve,"monthsShort")}function oi(F,ve,Ze){return ci(F,ve,Ze,"weekdays")}function gi(F,ve,Ze){return ci(F,ve,Ze,"weekdaysShort")}function Ao(F,ve,Ze){return ci(F,ve,Ze,"weekdaysMin")}An("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(F){var ve=F%10,Ze=Ce(F%100/10)===1?"th":ve===1?"st":ve===2?"nd":ve===3?"rd":"th";return F+Ze}}),t.lang=k("moment.lang is deprecated. Use moment.locale instead.",An),t.langData=k("moment.langData is deprecated. Use moment.localeData instead.",nr);var To=Math.abs;function Wi(){var F=this._data;return this._milliseconds=To(this._milliseconds),this._days=To(this._days),this._months=To(this._months),F.milliseconds=To(F.milliseconds),F.seconds=To(F.seconds),F.minutes=To(F.minutes),F.hours=To(F.hours),F.months=To(F.months),F.years=To(F.years),this}function ys(F,ve,Ze,ot){var Lt=za(ve,Ze);return F._milliseconds+=ot*Lt._milliseconds,F._days+=ot*Lt._days,F._months+=ot*Lt._months,F._bubble()}function wu(F,ve){return ys(this,F,ve,1)}function Kl(F,ve){return ys(this,F,ve,-1)}function cs(F){return F<0?Math.floor(F):Math.ceil(F)}function ju(){var F=this._milliseconds,ve=this._days,Ze=this._months,ot=this._data,Lt,jn,Rr,lo,Ro;return F>=0&&ve>=0&&Ze>=0||F<=0&&ve<=0&&Ze<=0||(F+=cs(ds(Ze)+ve)*864e5,ve=0,Ze=0),ot.milliseconds=F%1e3,Lt=je(F/1e3),ot.seconds=Lt%60,jn=je(Lt/60),ot.minutes=jn%60,Rr=je(jn/60),ot.hours=Rr%24,ve+=je(Rr/24),Ro=je(Ql(ve)),Ze+=Ro,ve-=cs(ds(Ro)),lo=je(Ze/12),Ze%=12,ot.days=ve,ot.months=Ze,ot.years=lo,this}function Ql(F){return F*4800/146097}function ds(F){return F*146097/4800}function Ic(F){if(!this.isValid())return NaN;var ve,Ze,ot=this._milliseconds;if(F=R(F),F==="month"||F==="quarter"||F==="year")switch(ve=this._days+ot/864e5,Ze=this._months+Ql(ve),F){case"month":return Ze;case"quarter":return Ze/3;case"year":return Ze/12}else switch(ve=this._days+Math.round(ds(this._months)),F){case"week":return ve/7+ot/6048e5;case"day":return ve+ot/864e5;case"hour":return ve*24+ot/36e5;case"minute":return ve*1440+ot/6e4;case"second":return ve*86400+ot/1e3;case"millisecond":return Math.floor(ve*864e5)+ot;default:throw new Error("Unknown unit "+F)}}function nc(){return this.isValid()?this._milliseconds+this._days*864e5+this._months%12*2592e6+Ce(this._months/12)*31536e6:NaN}function ml(F){return function(){return this.as(F)}}var Ol=ml("ms"),Rl=ml("s"),Wu=ml("m"),Ac=ml("h"),mu=ml("d"),pu=ml("w"),hu=ml("M"),os=ml("Q"),Pu=ml("y");function bs(){return za(this)}function Xi(F){return F=R(F),this.isValid()?this[F+"s"]():NaN}function Ns(F){return function(){return this.isValid()?this._data[F]:NaN}}var tl=Ns("milliseconds"),Vo=Ns("seconds"),su=Ns("minutes"),fs=Ns("hours"),rc=Ns("days"),nl=Ns("months"),pl=Ns("years");function Rs(){return je(this.days()/7)}var mi=Math.round,As={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function yu(F,ve,Ze,ot,Lt){return Lt.relativeTime(ve||1,!!Ze,F,ot)}function Tu(F,ve,Ze,ot){var Lt=za(F).abs(),jn=mi(Lt.as("s")),Rr=mi(Lt.as("m")),lo=mi(Lt.as("h")),Ro=mi(Lt.as("d")),di=mi(Lt.as("M")),Yi=mi(Lt.as("w")),rl=mi(Lt.as("y")),yl=jn<=Ze.ss&&["s",jn]||jn0,yl[4]=ot,yu.apply(null,yl)}function hl(F){return F===void 0?mi:typeof F=="function"?(mi=F,!0):!1}function Hu(F,ve){return As[F]===void 0?!1:ve===void 0?As[F]:(As[F]=ve,F==="s"&&(As.ss=ve-1),!0)}function Lu(F,ve){if(!this.isValid())return this.localeData().invalidDate();var Ze=!1,ot=As,Lt,jn;return typeof F=="object"&&(ve=F,F=!1),typeof F=="boolean"&&(Ze=F),typeof ve=="object"&&(ot=Object.assign({},As,ve),ve.s!=null&&ve.ss==null&&(ot.ss=ve.s-1)),Lt=this.localeData(),jn=Tu(this,!Ze,ot,Lt),Ze&&(jn=Lt.pastFuture(+this,jn)),Lt.postformat(jn)}var zl=Math.abs;function Dl(F){return(F>0)-(F<0)||+F}function Fl(){if(!this.isValid())return this.localeData().invalidDate();var F=zl(this._milliseconds)/1e3,ve=zl(this._days),Ze=zl(this._months),ot,Lt,jn,Rr,lo=this.asSeconds(),Ro,di,Yi,rl;return lo?(ot=je(F/60),Lt=je(ot/60),F%=60,ot%=60,jn=je(Ze/12),Ze%=12,Rr=F?F.toFixed(3).replace(/\.?0+$/,""):"",Ro=lo<0?"-":"",di=Dl(this._months)!==Dl(lo)?"-":"",Yi=Dl(this._days)!==Dl(lo)?"-":"",rl=Dl(this._milliseconds)!==Dl(lo)?"-":"",Ro+"P"+(jn?di+jn+"Y":"")+(Ze?di+Ze+"M":"")+(ve?Yi+ve+"D":"")+(Lt||ot||F?"T":"")+(Lt?rl+Lt+"H":"")+(ot?rl+ot+"M":"")+(F?rl+Rr+"S":"")):"P0D"}var ni=Ci.prototype;ni.isValid=ui,ni.abs=Wi,ni.add=wu,ni.subtract=Kl,ni.as=Ic,ni.asMilliseconds=Ol,ni.asSeconds=Rl,ni.asMinutes=Wu,ni.asHours=Ac,ni.asDays=mu,ni.asWeeks=pu,ni.asMonths=hu,ni.asQuarters=os,ni.asYears=Pu,ni.valueOf=nc,ni._bubble=ju,ni.clone=bs,ni.get=Xi,ni.milliseconds=tl,ni.seconds=Vo,ni.minutes=su,ni.hours=fs,ni.days=rc,ni.weeks=Rs,ni.months=nl,ni.years=pl,ni.humanize=Lu,ni.toISOString=Fl,ni.toString=Fl,ni.toJSON=Fl,ni.locale=dl,ni.localeData=fl,ni.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Fl),ni.lang=la,ge("X",0,0,"unix"),ge("x",0,0,"valueOf"),Yt("x",it),Yt("X",_t),ut("X",function(F,ve,Ze){Ze._d=new Date(parseFloat(F)*1e3)}),ut("x",function(F,ve,Ze){Ze._d=new Date(Ce(F))});return t.version="2.29.4",o(Za),t.fn=ma,t.min=ao,t.max=Mi,t.now=ji,t.utc=S,t.unix=at,t.months=ko,t.isDate=g,t.locale=An,t.invalid=N,t.duration=za,t.isMoment=j,t.weekdays=oi,t.parseZone=Gt,t.localeData=nr,t.isDuration=Ni,t.monthsShort=ns,t.weekdaysMin=Ao,t.defineLocale=hn,t.updateLocale=Xn,t.locales=Wr,t.weekdaysShort=gi,t.normalizeUnits=R,t.relativeTimeRounding=hl,t.relativeTimeThreshold=Hu,t.calendarFormat=ul,t.prototype=ma,t.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"},t})},73656:function(b){var y=b.exports={},e,a;function t(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?e=setTimeout:e=t}catch(w){e=t}try{typeof clearTimeout=="function"?a=clearTimeout:a=o}catch(w){a=o}})();function s(w){if(e===setTimeout)return setTimeout(w,0);if((e===t||!e)&&setTimeout)return e=setTimeout,setTimeout(w,0);try{return e(w,0)}catch(C){try{return e.call(null,w,0)}catch(z){return e.call(this,w,0)}}}function n(w){if(a===clearTimeout)return clearTimeout(w);if((a===o||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(w);try{return a(w)}catch(C){try{return a.call(null,w)}catch(z){return a.call(this,w)}}}var d=[],l=!1,c,m=-1;function g(){!l||!c||(l=!1,c.length?d=c.concat(d):m=-1,d.length&&M())}function M(){if(!l){var w=s(g);l=!0;for(var C=d.length;C;){for(c=d,d=[];++m1)for(var z=1;z=it||Be<0||Be>=it)return Ye;var Ve=Ye[ke],xt=ke-Be;return xt>0?[].concat((0,d.Z)(Ye.slice(0,Be)),[Ve],(0,d.Z)(Ye.slice(Be,ke)),(0,d.Z)(Ye.slice(ke+1,it))):xt<0?[].concat((0,d.Z)(Ye.slice(0,ke)),(0,d.Z)(Ye.slice(ke+1,Be+1)),[Ve],(0,d.Z)(Ye.slice(Be+1,it))):Ye}var gt=["name"],Ht=[];function $e(Ye,ke,Be,it,Ve,xt){return typeof Ye=="function"?Ye(ke,Be,"source"in xt?{source:xt.source}:{}):it!==Ve}var Xe=function(Ye){(0,g.Z)(Be,Ye);var ke=(0,M.Z)(Be);function Be(it){var Ve;if((0,l.Z)(this,Be),Ve=ke.call(this,it),Ve.state={resetCount:0},Ve.cancelRegisterFunc=null,Ve.mounted=!1,Ve.touched=!1,Ve.dirty=!1,Ve.validatePromise=void 0,Ve.prevValidating=void 0,Ve.errors=Ht,Ve.warnings=Ht,Ve.cancelRegister=function(){var wt=Ve.props,Yt=wt.preserve,bt=wt.isListField,ze=wt.name;Ve.cancelRegisterFunc&&Ve.cancelRegisterFunc(bt,Yt,be(ze)),Ve.cancelRegisterFunc=null},Ve.getNamePath=function(){var wt=Ve.props,Yt=wt.name,bt=wt.fieldContext,ze=bt.prefixName,nt=ze===void 0?[]:ze;return Yt!==void 0?[].concat((0,d.Z)(nt),(0,d.Z)(Yt)):[]},Ve.getRules=function(){var wt=Ve.props,Yt=wt.rules,bt=Yt===void 0?[]:Yt,ze=wt.fieldContext;return bt.map(function(nt){return typeof nt=="function"?nt(ze):nt})},Ve.refresh=function(){Ve.mounted&&Ve.setState(function(wt){var Yt=wt.resetCount;return{resetCount:Yt+1}})},Ve.metaCache=null,Ve.triggerMetaEvent=function(wt){var Yt=Ve.props.onMetaChange;if(Yt){var bt=(0,n.Z)((0,n.Z)({},Ve.getMeta()),{},{destroy:wt});(0,w.Z)(Ve.metaCache,bt)||Yt(bt),Ve.metaCache=bt}else Ve.metaCache=null},Ve.onStoreChange=function(wt,Yt,bt){var ze=Ve.props,nt=ze.shouldUpdate,St=ze.dependencies,ut=St===void 0?[]:St,Vt=ze.onReset,Nt=bt.store,At=Ve.getNamePath(),Ie=Ve.getValue(wt),Ee=Ve.getValue(Nt),Mt=Yt&&Ge(Yt,At);switch(bt.type==="valueUpdate"&&bt.source==="external"&&Ie!==Ee&&(Ve.touched=!0,Ve.dirty=!0,Ve.validatePromise=null,Ve.errors=Ht,Ve.warnings=Ht,Ve.triggerMetaEvent()),bt.type){case"reset":if(!Yt||Mt){Ve.touched=!1,Ve.dirty=!1,Ve.validatePromise=void 0,Ve.errors=Ht,Ve.warnings=Ht,Ve.triggerMetaEvent(),Vt==null||Vt(),Ve.refresh();return}break;case"remove":{if(nt){Ve.reRender();return}break}case"setField":{if(Mt){var jt=bt.data;"touched"in jt&&(Ve.touched=jt.touched),"validating"in jt&&!("originRCField"in jt)&&(Ve.validatePromise=jt.validating?Promise.resolve([]):null),"errors"in jt&&(Ve.errors=jt.errors||Ht),"warnings"in jt&&(Ve.warnings=jt.warnings||Ht),Ve.dirty=!0,Ve.triggerMetaEvent(),Ve.reRender();return}if(nt&&!At.length&&$e(nt,wt,Nt,Ie,Ee,bt)){Ve.reRender();return}break}case"dependenciesUpdate":{var He=ut.map(be);if(He.some(function(et){return Ge(bt.relatedFields,et)})){Ve.reRender();return}break}default:if(Mt||(!ut.length||At.length||nt)&&$e(nt,wt,Nt,Ie,Ee,bt)){Ve.reRender();return}break}nt===!0&&Ve.reRender()},Ve.validateRules=function(wt){var Yt=Ve.getNamePath(),bt=Ve.getValue(),ze=wt||{},nt=ze.triggerName,St=ze.validateOnly,ut=St===void 0?!1:St,Vt=Promise.resolve().then(function(){if(!Ve.mounted)return[];var Nt=Ve.props,At=Nt.validateFirst,Ie=At===void 0?!1:At,Ee=Nt.messageVariables,Mt=Ve.getRules();nt&&(Mt=Mt.filter(function(He){return He}).filter(function(He){var et=He.validateTrigger;if(!et)return!0;var Zt=D(et);return Zt.includes(nt)}));var jt=_(Yt,bt,Mt,wt,Ie,Ee);return jt.catch(function(He){return He}).then(function(){var He=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ht;if(Ve.validatePromise===Vt){var et;Ve.validatePromise=null;var Zt=[],Ut=[];(et=He.forEach)===null||et===void 0||et.call(He,function(Jt){var ln=Jt.rule.warningOnly,Mn=Jt.errors,gn=Mn===void 0?Ht:Mn;ln?Ut.push.apply(Ut,(0,d.Z)(gn)):Zt.push.apply(Zt,(0,d.Z)(gn))}),Ve.errors=Zt,Ve.warnings=Ut,Ve.triggerMetaEvent(),Ve.reRender()}}),jt});return ut||(Ve.validatePromise=Vt,Ve.dirty=!0,Ve.errors=Ht,Ve.warnings=Ht,Ve.triggerMetaEvent(),Ve.reRender()),Vt},Ve.isFieldValidating=function(){return!!Ve.validatePromise},Ve.isFieldTouched=function(){return Ve.touched},Ve.isFieldDirty=function(){if(Ve.dirty||Ve.props.initialValue!==void 0)return!0;var wt=Ve.props.fieldContext,Yt=wt.getInternalHooks(C),bt=Yt.getInitialValue;return bt(Ve.getNamePath())!==void 0},Ve.getErrors=function(){return Ve.errors},Ve.getWarnings=function(){return Ve.warnings},Ve.isListField=function(){return Ve.props.isListField},Ve.isList=function(){return Ve.props.isList},Ve.isPreserve=function(){return Ve.props.preserve},Ve.getMeta=function(){Ve.prevValidating=Ve.isFieldValidating();var wt={touched:Ve.isFieldTouched(),validating:Ve.prevValidating,errors:Ve.errors,warnings:Ve.warnings,name:Ve.getNamePath(),validated:Ve.validatePromise===null};return wt},Ve.getOnlyChild=function(wt){if(typeof wt=="function"){var Yt=Ve.getMeta();return(0,n.Z)((0,n.Z)({},Ve.getOnlyChild(wt(Ve.getControlled(),Yt,Ve.props.fieldContext))),{},{isFunction:!0})}var bt=(0,h.Z)(wt);return bt.length!==1||!a.isValidElement(bt[0])?{child:bt,isFunction:!1}:{child:bt[0],isFunction:!1}},Ve.getValue=function(wt){var Yt=Ve.props.fieldContext.getFieldsValue,bt=Ve.getNamePath();return(0,ge.Z)(wt||Yt(!0),bt)},Ve.getControlled=function(){var wt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Yt=Ve.props,bt=Yt.trigger,ze=Yt.validateTrigger,nt=Yt.getValueFromEvent,St=Yt.normalize,ut=Yt.valuePropName,Vt=Yt.getValueProps,Nt=Yt.fieldContext,At=ze!==void 0?ze:Nt.validateTrigger,Ie=Ve.getNamePath(),Ee=Nt.getInternalHooks,Mt=Nt.getFieldsValue,jt=Ee(C),He=jt.dispatch,et=Ve.getValue(),Zt=Vt||function(Mn){return(0,s.Z)({},ut,Mn)},Ut=wt[bt],Jt=(0,n.Z)((0,n.Z)({},wt),Zt(et));Jt[bt]=function(){Ve.touched=!0,Ve.dirty=!0,Ve.triggerMetaEvent();for(var Mn,gn=arguments.length,Yn=new Array(gn),Gn=0;Gn=0&&Jt<=ln.length?(bt.keys=[].concat((0,d.Z)(bt.keys.slice(0,Jt)),[bt.id],(0,d.Z)(bt.keys.slice(Jt))),Ee([].concat((0,d.Z)(ln.slice(0,Jt)),[Ut],(0,d.Z)(ln.slice(Jt))))):(bt.keys=[].concat((0,d.Z)(bt.keys),[bt.id]),Ee([].concat((0,d.Z)(ln),[Ut]))),bt.id+=1},remove:function(Ut){var Jt=jt(),ln=new Set(Array.isArray(Ut)?Ut:[Ut]);ln.size<=0||(bt.keys=bt.keys.filter(function(Mn,gn){return!ln.has(gn)}),Ee(Jt.filter(function(Mn,gn){return!ln.has(gn)})))},move:function(Ut,Jt){if(Ut!==Jt){var ln=jt();Ut<0||Ut>=ln.length||Jt<0||Jt>=ln.length||(bt.keys=Et(bt.keys,Ut,Jt),Ee(Et(ln,Ut,Jt)))}}},et=Ie||[];return Array.isArray(et)||(et=[]),it(et.map(function(Zt,Ut){var Jt=bt.keys[Ut];return Jt===void 0&&(bt.keys[Ut]=bt.id,Jt=bt.keys[Ut],bt.id+=1),{name:Ut,key:Jt,isListField:!0}}),He,Nt)})))}var ne=ye,H=e(28314);function R(Ye){var ke=!1,Be=Ye.length,it=[];return Ye.length?new Promise(function(Ve,xt){Ye.forEach(function(_t,Ot){_t.catch(function(wt){return ke=!0,wt}).then(function(wt){Be-=1,it[Ot]=wt,!(Be>0)&&(ke&&xt(it),Ve(it))})})}):Promise.resolve([])}var P="__@field_split__";function ae(Ye){return Ye.map(function(ke){return"".concat((0,pe.Z)(ke),":").concat(ke)}).join(P)}var Q=function(){function Ye(){(0,l.Z)(this,Ye),this.kvs=new Map}return(0,c.Z)(Ye,[{key:"set",value:function(Be,it){this.kvs.set(ae(Be),it)}},{key:"get",value:function(Be){return this.kvs.get(ae(Be))}},{key:"update",value:function(Be,it){var Ve=this.get(Be),xt=it(Ve);xt?this.set(Be,xt):this.delete(Be)}},{key:"delete",value:function(Be){this.kvs.delete(ae(Be))}},{key:"map",value:function(Be){return(0,d.Z)(this.kvs.entries()).map(function(it){var Ve=(0,H.Z)(it,2),xt=Ve[0],_t=Ve[1],Ot=xt.split(P);return Be({key:Ot.map(function(wt){var Yt=wt.match(/^([^:]*):(.*)$/),bt=(0,H.Z)(Yt,3),ze=bt[1],nt=bt[2];return ze==="number"?Number(nt):nt}),value:_t})})}},{key:"toJSON",value:function(){var Be={};return this.map(function(it){var Ve=it.key,xt=it.value;return Be[Ve.join(".")]=xt,null}),Be}}]),Ye}(),ie=Q,me=["name"],je=(0,c.Z)(function Ye(ke){var Be=this;(0,l.Z)(this,Ye),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:Be.getFieldValue,getFieldsValue:Be.getFieldsValue,getFieldError:Be.getFieldError,getFieldWarning:Be.getFieldWarning,getFieldsError:Be.getFieldsError,isFieldsTouched:Be.isFieldsTouched,isFieldTouched:Be.isFieldTouched,isFieldValidating:Be.isFieldValidating,isFieldsValidating:Be.isFieldsValidating,resetFields:Be.resetFields,setFields:Be.setFields,setFieldValue:Be.setFieldValue,setFieldsValue:Be.setFieldsValue,validateFields:Be.validateFields,submit:Be.submit,_init:!0,getInternalHooks:Be.getInternalHooks}},this.getInternalHooks=function(it){return it===C?(Be.formHooked=!0,{dispatch:Be.dispatch,initEntityValue:Be.initEntityValue,registerField:Be.registerField,useSubscribe:Be.useSubscribe,setInitialValues:Be.setInitialValues,destroyForm:Be.destroyForm,setCallbacks:Be.setCallbacks,setValidateMessages:Be.setValidateMessages,getFields:Be.getFields,setPreserve:Be.setPreserve,getInitialValue:Be.getInitialValue,registerWatch:Be.registerWatch}):((0,S.ZP)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)},this.useSubscribe=function(it){Be.subscribable=it},this.prevWithoutPreserves=null,this.setInitialValues=function(it,Ve){if(Be.initialValues=it||{},Ve){var xt,_t=(0,q.T)(it,Be.store);(xt=Be.prevWithoutPreserves)===null||xt===void 0||xt.map(function(Ot){var wt=Ot.key;_t=(0,q.Z)(_t,wt,(0,ge.Z)(it,wt))}),Be.prevWithoutPreserves=null,Be.updateStore(_t)}},this.destroyForm=function(){var it=new ie;Be.getFieldEntities(!0).forEach(function(Ve){Be.isMergedPreserve(Ve.isPreserve())||it.set(Ve.getNamePath(),!0)}),Be.prevWithoutPreserves=it},this.getInitialValue=function(it){var Ve=(0,ge.Z)(Be.initialValues,it);return it.length?(0,q.T)(Ve):Ve},this.setCallbacks=function(it){Be.callbacks=it},this.setValidateMessages=function(it){Be.validateMessages=it},this.setPreserve=function(it){Be.preserve=it},this.watchList=[],this.registerWatch=function(it){return Be.watchList.push(it),function(){Be.watchList=Be.watchList.filter(function(Ve){return Ve!==it})}},this.notifyWatch=function(){var it=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(Be.watchList.length){var Ve=Be.getFieldsValue(),xt=Be.getFieldsValue(!0);Be.watchList.forEach(function(_t){_t(Ve,xt,it)})}},this.timeoutId=null,this.warningUnhooked=function(){},this.updateStore=function(it){Be.store=it},this.getFieldEntities=function(){var it=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return it?Be.fieldEntities.filter(function(Ve){return Ve.getNamePath().length}):Be.fieldEntities},this.getFieldsMap=function(){var it=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Ve=new ie;return Be.getFieldEntities(it).forEach(function(xt){var _t=xt.getNamePath();Ve.set(_t,xt)}),Ve},this.getFieldEntitiesForNamePathList=function(it){if(!it)return Be.getFieldEntities(!0);var Ve=Be.getFieldsMap(!0);return it.map(function(xt){var _t=be(xt);return Ve.get(_t)||{INVALIDATE_NAME_PATH:be(xt)}})},this.getFieldsValue=function(it,Ve){Be.warningUnhooked();var xt,_t,Ot;if(it===!0||Array.isArray(it)?(xt=it,_t=Ve):it&&(0,pe.Z)(it)==="object"&&(Ot=it.strict,_t=it.filter),xt===!0&&!_t)return Be.store;var wt=Be.getFieldEntitiesForNamePathList(Array.isArray(xt)?xt:null),Yt=[];return wt.forEach(function(bt){var ze,nt="INVALIDATE_NAME_PATH"in bt?bt.INVALIDATE_NAME_PATH:bt.getNamePath();if(Ot){var St;if(!((St=bt.isList)===null||St===void 0)&&St.call(bt))return}else if(!xt&&(!((ze=bt.isListField)===null||ze===void 0)&&ze.call(bt)))return;if(!_t)Yt.push(nt);else{var ut="getMeta"in bt?bt.getMeta():null;_t(ut)&&Yt.push(nt)}}),Te(Be.store,Yt.map(be))},this.getFieldValue=function(it){Be.warningUnhooked();var Ve=be(it);return(0,ge.Z)(Be.store,Ve)},this.getFieldsError=function(it){Be.warningUnhooked();var Ve=Be.getFieldEntitiesForNamePathList(it);return Ve.map(function(xt,_t){return xt&&!("INVALIDATE_NAME_PATH"in xt)?{name:xt.getNamePath(),errors:xt.getErrors(),warnings:xt.getWarnings()}:{name:be(it[_t]),errors:[],warnings:[]}})},this.getFieldError=function(it){Be.warningUnhooked();var Ve=be(it),xt=Be.getFieldsError([Ve])[0];return xt.errors},this.getFieldWarning=function(it){Be.warningUnhooked();var Ve=be(it),xt=Be.getFieldsError([Ve])[0];return xt.warnings},this.isFieldsTouched=function(){Be.warningUnhooked();for(var it=arguments.length,Ve=new Array(it),xt=0;xt0&&arguments[0]!==void 0?arguments[0]:{},Ve=new ie,xt=Be.getFieldEntities(!0);xt.forEach(function(wt){var Yt=wt.props.initialValue,bt=wt.getNamePath();if(Yt!==void 0){var ze=Ve.get(bt)||new Set;ze.add({entity:wt,value:Yt}),Ve.set(bt,ze)}});var _t=function(Yt){Yt.forEach(function(bt){var ze=bt.props.initialValue;if(ze!==void 0){var nt=bt.getNamePath(),St=Be.getInitialValue(nt);if(St!==void 0)(0,S.ZP)(!1,"Form already set 'initialValues' with path '".concat(nt.join("."),"'. Field can not overwrite it."));else{var ut=Ve.get(nt);if(ut&&ut.size>1)(0,S.ZP)(!1,"Multiple Field with path '".concat(nt.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(ut){var Vt=Be.getFieldValue(nt);(!it.skipExist||Vt===void 0)&&Be.updateStore((0,q.Z)(Be.store,nt,(0,d.Z)(ut)[0].value))}}}})},Ot;it.entities?Ot=it.entities:it.namePathList?(Ot=[],it.namePathList.forEach(function(wt){var Yt=Ve.get(wt);if(Yt){var bt;(bt=Ot).push.apply(bt,(0,d.Z)((0,d.Z)(Yt).map(function(ze){return ze.entity})))}})):Ot=xt,_t(Ot)},this.resetFields=function(it){Be.warningUnhooked();var Ve=Be.store;if(!it){Be.updateStore((0,q.T)(Be.initialValues)),Be.resetWithFieldInitialValue(),Be.notifyObservers(Ve,null,{type:"reset"}),Be.notifyWatch();return}var xt=it.map(be);xt.forEach(function(_t){var Ot=Be.getInitialValue(_t);Be.updateStore((0,q.Z)(Be.store,_t,Ot))}),Be.resetWithFieldInitialValue({namePathList:xt}),Be.notifyObservers(Ve,xt,{type:"reset"}),Be.notifyWatch(xt)},this.setFields=function(it){Be.warningUnhooked();var Ve=Be.store,xt=[];it.forEach(function(_t){var Ot=_t.name,wt=(0,o.Z)(_t,me),Yt=be(Ot);xt.push(Yt),"value"in wt&&Be.updateStore((0,q.Z)(Be.store,Yt,wt.value)),Be.notifyObservers(Ve,[Yt],{type:"setField",data:_t})}),Be.notifyWatch(xt)},this.getFields=function(){var it=Be.getFieldEntities(!0),Ve=it.map(function(xt){var _t=xt.getNamePath(),Ot=xt.getMeta(),wt=(0,n.Z)((0,n.Z)({},Ot),{},{name:_t,value:Be.getFieldValue(_t)});return Object.defineProperty(wt,"originRCField",{value:!0}),wt});return Ve},this.initEntityValue=function(it){var Ve=it.props.initialValue;if(Ve!==void 0){var xt=it.getNamePath(),_t=(0,ge.Z)(Be.store,xt);_t===void 0&&Be.updateStore((0,q.Z)(Be.store,xt,Ve))}},this.isMergedPreserve=function(it){var Ve=it!==void 0?it:Be.preserve;return Ve!=null?Ve:!0},this.registerField=function(it){Be.fieldEntities.push(it);var Ve=it.getNamePath();if(Be.notifyWatch([Ve]),it.props.initialValue!==void 0){var xt=Be.store;Be.resetWithFieldInitialValue({entities:[it],skipExist:!0}),Be.notifyObservers(xt,[it.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(_t,Ot){var wt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];if(Be.fieldEntities=Be.fieldEntities.filter(function(ze){return ze!==it}),!Be.isMergedPreserve(Ot)&&(!_t||wt.length>1)){var Yt=_t?void 0:Be.getInitialValue(Ve);if(Ve.length&&Be.getFieldValue(Ve)!==Yt&&Be.fieldEntities.every(function(ze){return!qe(ze.getNamePath(),Ve)})){var bt=Be.store;Be.updateStore((0,q.Z)(bt,Ve,Yt,!0)),Be.notifyObservers(bt,[Ve],{type:"remove"}),Be.triggerDependenciesUpdate(bt,Ve)}}Be.notifyWatch([Ve])}},this.dispatch=function(it){switch(it.type){case"updateValue":{var Ve=it.namePath,xt=it.value;Be.updateValue(Ve,xt);break}case"validateField":{var _t=it.namePath,Ot=it.triggerName;Be.validateFields([_t],{triggerName:Ot});break}default:}},this.notifyObservers=function(it,Ve,xt){if(Be.subscribable){var _t=(0,n.Z)((0,n.Z)({},xt),{},{store:Be.getFieldsValue(!0)});Be.getFieldEntities().forEach(function(Ot){var wt=Ot.onStoreChange;wt(it,Ve,_t)})}else Be.forceRootUpdate()},this.triggerDependenciesUpdate=function(it,Ve){var xt=Be.getDependencyChildrenFields(Ve);return xt.length&&Be.validateFields(xt),Be.notifyObservers(it,xt,{type:"dependenciesUpdate",relatedFields:[Ve].concat((0,d.Z)(xt))}),xt},this.updateValue=function(it,Ve){var xt=be(it),_t=Be.store;Be.updateStore((0,q.Z)(Be.store,xt,Ve)),Be.notifyObservers(_t,[xt],{type:"valueUpdate",source:"internal"}),Be.notifyWatch([xt]);var Ot=Be.triggerDependenciesUpdate(_t,xt),wt=Be.callbacks.onValuesChange;if(wt){var Yt=Te(Be.store,[xt]);wt(Yt,Be.getFieldsValue())}Be.triggerOnFieldsChange([xt].concat((0,d.Z)(Ot)))},this.setFieldsValue=function(it){Be.warningUnhooked();var Ve=Be.store;if(it){var xt=(0,q.T)(Be.store,it);Be.updateStore(xt)}Be.notifyObservers(Ve,null,{type:"valueUpdate",source:"external"}),Be.notifyWatch()},this.setFieldValue=function(it,Ve){Be.setFields([{name:it,value:Ve}])},this.getDependencyChildrenFields=function(it){var Ve=new Set,xt=[],_t=new ie;Be.getFieldEntities().forEach(function(wt){var Yt=wt.props.dependencies;(Yt||[]).forEach(function(bt){var ze=be(bt);_t.update(ze,function(){var nt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:new Set;return nt.add(wt),nt})})});var Ot=function wt(Yt){var bt=_t.get(Yt)||new Set;bt.forEach(function(ze){if(!Ve.has(ze)){Ve.add(ze);var nt=ze.getNamePath();ze.isFieldDirty()&&nt.length&&(xt.push(nt),wt(nt))}})};return Ot(it),xt},this.triggerOnFieldsChange=function(it,Ve){var xt=Be.callbacks.onFieldsChange;if(xt){var _t=Be.getFields();if(Ve){var Ot=new ie;Ve.forEach(function(Yt){var bt=Yt.name,ze=Yt.errors;Ot.set(bt,ze)}),_t.forEach(function(Yt){Yt.errors=Ot.get(Yt.name)||Yt.errors})}var wt=_t.filter(function(Yt){var bt=Yt.name;return Ge(it,bt)});wt.length&&xt(wt,_t)}},this.validateFields=function(it,Ve){Be.warningUnhooked();var xt,_t;Array.isArray(it)||typeof it=="string"||typeof Ve=="string"?(xt=it,_t=Ve):_t=it;var Ot=!!xt,wt=Ot?xt.map(be):[],Yt=[],bt=String(Date.now()),ze=new Set;Be.getFieldEntities(!0).forEach(function(Vt){var Nt;if(Ot||wt.push(Vt.getNamePath()),!((Nt=_t)===null||Nt===void 0)&&Nt.recursive&&Ot){var At=Vt.getNamePath();At.every(function(Mt,jt){return xt[jt]===Mt||xt[jt]===void 0})&&wt.push(At)}if(!(!Vt.props.rules||!Vt.props.rules.length)){var Ie=Vt.getNamePath();if(ze.add(Ie.join(bt)),!Ot||Ge(wt,Ie)){var Ee=Vt.validateRules((0,n.Z)({validateMessages:(0,n.Z)((0,n.Z)({},Y),Be.validateMessages)},_t));Yt.push(Ee.then(function(){return{name:Ie,errors:[],warnings:[]}}).catch(function(Mt){var jt,He=[],et=[];return(jt=Mt.forEach)===null||jt===void 0||jt.call(Mt,function(Zt){var Ut=Zt.rule.warningOnly,Jt=Zt.errors;Ut?et.push.apply(et,(0,d.Z)(Jt)):He.push.apply(He,(0,d.Z)(Jt))}),He.length?Promise.reject({name:Ie,errors:He,warnings:et}):{name:Ie,errors:He,warnings:et}}))}}});var nt=R(Yt);Be.lastValidatePromise=nt,nt.catch(function(Vt){return Vt}).then(function(Vt){var Nt=Vt.map(function(At){var Ie=At.name;return Ie});Be.notifyObservers(Be.store,Nt,{type:"validateFinish"}),Be.triggerOnFieldsChange(Nt,Vt)});var St=nt.then(function(){return Be.lastValidatePromise===nt?Promise.resolve(Be.getFieldsValue(wt)):Promise.reject([])}).catch(function(Vt){var Nt=Vt.filter(function(At){return At&&At.errors.length});return Promise.reject({values:Be.getFieldsValue(wt),errorFields:Nt,outOfDate:Be.lastValidatePromise!==nt})});St.catch(function(Vt){return Vt});var ut=wt.filter(function(Vt){return ze.has(Vt.join(bt))});return Be.triggerOnFieldsChange(ut),St},this.submit=function(){Be.warningUnhooked(),Be.validateFields().then(function(it){var Ve=Be.callbacks.onFinish;if(Ve)try{Ve(it)}catch(xt){console.error(xt)}}).catch(function(it){var Ve=Be.callbacks.onFinishFailed;Ve&&Ve(it)})},this.forceRootUpdate=ke});function Ce(Ye){var ke=a.useRef(),Be=a.useState({}),it=(0,H.Z)(Be,2),Ve=it[1];if(!ke.current)if(Ye)ke.current=Ye;else{var xt=function(){Ve({})},_t=new je(xt);ke.current=_t.getForm()}return[ke.current]}var Se=Ce,We=a.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),re=function(ke){var Be=ke.validateMessages,it=ke.onFormChange,Ve=ke.onFormFinish,xt=ke.children,_t=a.useContext(We),Ot=a.useRef({});return a.createElement(We.Provider,{value:(0,n.Z)((0,n.Z)({},_t),{},{validateMessages:(0,n.Z)((0,n.Z)({},_t.validateMessages),Be),triggerFormChange:function(Yt,bt){it&&it(Yt,{changedFields:bt,forms:Ot.current}),_t.triggerFormChange(Yt,bt)},triggerFormFinish:function(Yt,bt){Ve&&Ve(Yt,{values:bt,forms:Ot.current}),_t.triggerFormFinish(Yt,bt)},registerForm:function(Yt,bt){Yt&&(Ot.current=(0,n.Z)((0,n.Z)({},Ot.current),{},(0,s.Z)({},Yt,bt))),_t.registerForm(Yt,bt)},unregisterForm:function(Yt){var bt=(0,n.Z)({},Ot.current);delete bt[Yt],Ot.current=bt,_t.unregisterForm(Yt)}})},xt)},se=We,J=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed"],de=function(ke,Be){var it=ke.name,Ve=ke.initialValues,xt=ke.fields,_t=ke.form,Ot=ke.preserve,wt=ke.children,Yt=ke.component,bt=Yt===void 0?"form":Yt,ze=ke.validateMessages,nt=ke.validateTrigger,St=nt===void 0?"onChange":nt,ut=ke.onValuesChange,Vt=ke.onFieldsChange,Nt=ke.onFinish,At=ke.onFinishFailed,Ie=(0,o.Z)(ke,J),Ee=a.useContext(se),Mt=Se(_t),jt=(0,H.Z)(Mt,1),He=jt[0],et=He.getInternalHooks(C),Zt=et.useSubscribe,Ut=et.setInitialValues,Jt=et.setCallbacks,ln=et.setValidateMessages,Mn=et.setPreserve,gn=et.destroyForm;a.useImperativeHandle(Be,function(){return He}),a.useEffect(function(){return Ee.registerForm(it,He),function(){Ee.unregisterForm(it)}},[Ee,He,it]),ln((0,n.Z)((0,n.Z)({},Ee.validateMessages),ze)),Jt({onValuesChange:ut,onFieldsChange:function(Cn){if(Ee.triggerFormChange(it,Cn),Vt){for(var on=arguments.length,pt=new Array(on>1?on-1:0),mt=1;mt0;if(_||U){var ie=(0,c.D7)(qe),me=(0,M.Z)(ie).length,je=(0,s.Z)(U)==="object"?U.formatter({value:ie,count:me,maxLength:O}):"".concat(me).concat(Q?" / ".concat(O):"");return l.createElement(l.Fragment,null,!!U&&l.createElement("span",{className:d()("".concat(le,"-show-count-suffix"),(0,o.Z)({},"".concat(le,"-show-count-has-suffix"),!!_),pe==null?void 0:pe.count),style:(0,t.Z)({},ge==null?void 0:ge.count)},je),_)}return null};return l.createElement(g,(0,a.Z)({},be,{prefixCls:le,className:x,inputElement:R(),handleReset:H,value:(0,c.D7)(qe),focused:gt,triggerFocus:Xe,suffix:P(),disabled:X,classes:fe,classNames:pe,styles:ge}))}),N=Z,L=N},33615:function(b,y,e){"use strict";e.d(y,{D7:function(){return n},He:function(){return a},X3:function(){return t},nH:function(){return s},rJ:function(){return o}});function a(d){return!!(d.addonBefore||d.addonAfter)}function t(d){return!!(d.prefix||d.suffix||d.allowClear)}function o(d,l,c,m){if(c){var g=l;if(l.type==="click"){var M=d.cloneNode(!0);g=Object.create(l,{target:{value:M},currentTarget:{value:M}}),M.value="",c(g);return}if(m!==void 0){g=Object.create(l,{target:{value:d},currentTarget:{value:d}}),d.value=m,c(g);return}c(g)}}function s(d,l){if(d){d.focus(l);var c=l||{},m=c.cursor;if(m){var g=d.value.length;switch(m){case"start":d.setSelectionRange(0,0);break;case"end":d.setSelectionRange(g,g);break;default:d.setSelectionRange(0,g)}}}}function n(d){return typeof d=="undefined"||d===null?"":String(d)}},87854:function(b,y,e){"use strict";e.d(y,{iz:function(){return Yn},ck:function(){return Ve},BW:function(){return gn},sN:function(){return Ve},Wd:function(){return Zt},ZP:function(){return on},Xl:function(){return Y}});var a=e(60698),t=e(37734),o=e(57370),s=e(29140),n=e(28314),d=e(47075),l=e(87608),c=e.n(l),m=e(9257),g=e(60409),M=e(75556),h=e(58757),S=e(26736),w=e(7637),C=h.createContext(null);function z(pt,mt){return pt===void 0?null:"".concat(pt,"-").concat(mt)}function Z(pt){var mt=h.useContext(C);return z(mt,pt)}var N=e(27903),L=["children","locked"],$=h.createContext(null);function D(pt,mt){var sn=(0,o.Z)({},pt);return Object.keys(mt).forEach(function(Kt){var tn=mt[Kt];tn!==void 0&&(sn[Kt]=tn)}),sn}function T(pt){var mt=pt.children,sn=pt.locked,Kt=(0,d.Z)(pt,L),tn=h.useContext($),mn=(0,N.Z)(function(){return D(tn,Kt)},[tn,Kt],function(fn,kn){return!sn&&(fn[0]!==kn[0]||!(0,w.Z)(fn[1],kn[1],!0))});return h.createElement($.Provider,{value:mn},mt)}var j=[],G=h.createContext(null);function k(){return h.useContext(G)}var te=h.createContext(j);function Y(pt){var mt=h.useContext(te);return h.useMemo(function(){return pt!==void 0?[].concat((0,s.Z)(mt),[pt]):mt},[mt,pt])}var q=h.createContext(null),le=h.createContext({}),X=le,W=e(29639),x=e(61834),O=e(46499);function _(pt){var mt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if((0,O.Z)(pt)){var sn=pt.nodeName.toLowerCase(),Kt=["input","select","textarea","button"].includes(sn)||pt.isContentEditable||sn==="a"&&!!pt.getAttribute("href"),tn=pt.getAttribute("tabindex"),mn=Number(tn),fn=null;return tn&&!Number.isNaN(mn)?fn=mn:Kt&&fn===null&&(fn=0),Kt&&pt.disabled&&(fn=null),fn!==null&&(fn>=0||mt&&fn<0)}return!1}function U(pt){var mt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,sn=(0,s.Z)(pt.querySelectorAll("*")).filter(function(Kt){return _(Kt,mt)});return _(pt,mt)&&sn.unshift(pt),sn}var A=null;function V(){A=document.activeElement}function fe(){A=null}function pe(){if(A)try{A.focus()}catch(pt){}}function ge(pt,mt){if(mt.keyCode===9){var sn=U(pt),Kt=sn[mt.shiftKey?0:sn.length-1],tn=Kt===document.activeElement||pt===document.activeElement;if(tn){var mn=sn[mt.shiftKey?sn.length-1:0];mn.focus(),mt.preventDefault()}}}var be=W.Z.LEFT,Te=W.Z.RIGHT,Ge=W.Z.UP,qe=W.Z.DOWN,Qe=W.Z.ENTER,ht=W.Z.ESC,Et=W.Z.HOME,gt=W.Z.END,Ht=[Ge,qe,be,Te];function $e(pt,mt,sn,Kt){var tn,mn,fn,kn,qn="prev",ct="next",dt="children",It="parent";if(pt==="inline"&&Kt===Qe)return{inlineTrigger:!0};var Ct=(tn={},(0,t.Z)(tn,Ge,qn),(0,t.Z)(tn,qe,ct),tn),kt=(mn={},(0,t.Z)(mn,be,sn?ct:qn),(0,t.Z)(mn,Te,sn?qn:ct),(0,t.Z)(mn,qe,dt),(0,t.Z)(mn,Qe,dt),mn),un=(fn={},(0,t.Z)(fn,Ge,qn),(0,t.Z)(fn,qe,ct),(0,t.Z)(fn,Qe,dt),(0,t.Z)(fn,ht,It),(0,t.Z)(fn,be,sn?dt:It),(0,t.Z)(fn,Te,sn?It:dt),fn),nn={inline:Ct,horizontal:kt,vertical:un,inlineSub:Ct,horizontalSub:un,verticalSub:un},xn=(kn=nn["".concat(pt).concat(mt?"":"Sub")])===null||kn===void 0?void 0:kn[Kt];switch(xn){case qn:return{offset:-1,sibling:!0};case ct:return{offset:1,sibling:!0};case It:return{offset:-1,sibling:!1};case dt:return{offset:1,sibling:!1};default:return null}}function Xe(pt){for(var mt=pt;mt;){if(mt.getAttribute("data-menu-list"))return mt;mt=mt.parentElement}return null}function rt(pt,mt){for(var sn=pt||document.activeElement;sn;){if(mt.has(sn))return sn;sn=sn.parentElement}return null}function Ke(pt,mt){var sn=U(pt,!0);return sn.filter(function(Kt){return mt.has(Kt)})}function ye(pt,mt,sn){var Kt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;if(!pt)return null;var tn=Ke(pt,mt),mn=tn.length,fn=tn.findIndex(function(kn){return sn===kn});return Kt<0?fn===-1?fn=mn-1:fn-=1:Kt>0&&(fn+=1),fn=(fn+mn)%mn,tn[fn]}function ne(pt,mt,sn,Kt,tn,mn,fn,kn,qn,ct){var dt=h.useRef(),It=h.useRef();It.current=mt;var Ct=function(){x.Z.cancel(dt.current)};return h.useEffect(function(){return function(){Ct()}},[]),function(kt){var un=kt.which;if([].concat(Ht,[Qe,ht,Et,gt]).includes(un)){var nn,xn,Rn,Mr=function(){nn=new Set,xn=new Map,Rn=new Map;var na=mn();return na.forEach(function(pa){var cr=document.querySelector("[data-menu-id='".concat(z(Kt,pa),"']"));cr&&(nn.add(cr),Rn.set(cr,pa),xn.set(pa,cr))}),nn};Mr();var er=xn.get(mt),zn=rt(er,nn),Ur=Rn.get(zn),pr=$e(pt,fn(Ur,!0).length===1,sn,un);if(!pr&&un!==Et&&un!==gt)return;(Ht.includes(un)||[Et,gt].includes(un))&&kt.preventDefault();var sa=function(na){if(na){var pa=na,cr=na.querySelector("a");cr!=null&&cr.getAttribute("href")&&(pa=cr);var Zr=Rn.get(na);kn(Zr),Ct(),dt.current=(0,x.Z)(function(){It.current===Zr&&pa.focus()})}};if([Et,gt].includes(un)||pr.sibling||!zn){var Nr;!zn||pt==="inline"?Nr=tn.current:Nr=Xe(zn);var Zn,In=Ke(Nr,nn);un===Et?Zn=In[0]:un===gt?Zn=In[In.length-1]:Zn=ye(Nr,nn,zn,pr.offset),sa(Zn)}else if(pr.inlineTrigger)qn(Ur);else if(pr.offset>0)qn(Ur,!0),Ct(),dt.current=(0,x.Z)(function(){Mr();var Gr=zn.getAttribute("aria-controls"),na=document.getElementById(Gr),pa=ye(na,nn);sa(pa)},5);else if(pr.offset<0){var Pn=fn(Ur,!0),rr=Pn[Pn.length-2],br=xn.get(rr);qn(rr,!1),sa(br)}}ct==null||ct(kt)}}function H(pt){Promise.resolve().then(pt)}var R="__RC_UTIL_PATH_SPLIT__",P=function(mt){return mt.join(R)},ae=function(mt){return mt.split(R)},Q="rc-menu-more";function ie(){var pt=h.useState({}),mt=(0,n.Z)(pt,2),sn=mt[1],Kt=(0,h.useRef)(new Map),tn=(0,h.useRef)(new Map),mn=h.useState([]),fn=(0,n.Z)(mn,2),kn=fn[0],qn=fn[1],ct=(0,h.useRef)(0),dt=(0,h.useRef)(!1),It=function(){dt.current||sn({})},Ct=(0,h.useCallback)(function(er,zn){var Ur=P(zn);tn.current.set(Ur,er),Kt.current.set(er,Ur),ct.current+=1;var pr=ct.current;H(function(){pr===ct.current&&It()})},[]),kt=(0,h.useCallback)(function(er,zn){var Ur=P(zn);tn.current.delete(Ur),Kt.current.delete(er)},[]),un=(0,h.useCallback)(function(er){qn(er)},[]),nn=(0,h.useCallback)(function(er,zn){var Ur=Kt.current.get(er)||"",pr=ae(Ur);return zn&&kn.includes(pr[0])&&pr.unshift(Q),pr},[kn]),xn=(0,h.useCallback)(function(er,zn){return er.some(function(Ur){var pr=nn(Ur,!0);return pr.includes(zn)})},[nn]),Rn=function(){var zn=(0,s.Z)(Kt.current.keys());return kn.length&&zn.push(Q),zn},Mr=(0,h.useCallback)(function(er){var zn="".concat(Kt.current.get(er)).concat(R),Ur=new Set;return(0,s.Z)(tn.current.keys()).forEach(function(pr){pr.startsWith(zn)&&Ur.add(tn.current.get(pr))}),Ur},[]);return h.useEffect(function(){return function(){dt.current=!0}},[]),{registerPath:Ct,unregisterPath:kt,refreshOverflowKeys:un,isSubPathKey:xn,getKeyPath:nn,getKeys:Rn,getSubPathKeys:Mr}}function me(pt){var mt=h.useRef(pt);mt.current=pt;var sn=h.useCallback(function(){for(var Kt,tn=arguments.length,mn=new Array(tn),fn=0;fn1&&(Mr.motionAppear=!1);var er=Mr.onVisibleChanged;return Mr.onVisibleChanged=function(zn){return!Ct.current&&!zn&&xn(!0),er==null?void 0:er(zn)},nn?null:h.createElement(T,{mode:mn,locked:!Ct.current},h.createElement(Ee.ZP,(0,a.Z)({visible:Rn},Mr,{forceRender:qn,removeOnLeave:!1,leavedClassName:"".concat(kn,"-hidden")}),function(zn){var Ur=zn.className,pr=zn.style;return h.createElement(wt,{id:mt,className:Ur,style:pr},tn)}))}var jt=["style","className","title","eventKey","warnKey","disabled","internalPopupClose","children","itemIcon","expandIcon","popupClassName","popupOffset","onClick","onMouseEnter","onMouseLeave","onTitleClick","onTitleMouseEnter","onTitleMouseLeave"],He=["active"],et=function(mt){var sn,Kt=mt.style,tn=mt.className,mn=mt.title,fn=mt.eventKey,kn=mt.warnKey,qn=mt.disabled,ct=mt.internalPopupClose,dt=mt.children,It=mt.itemIcon,Ct=mt.expandIcon,kt=mt.popupClassName,un=mt.popupOffset,nn=mt.onClick,xn=mt.onMouseEnter,Rn=mt.onMouseLeave,Mr=mt.onTitleClick,er=mt.onTitleMouseEnter,zn=mt.onTitleMouseLeave,Ur=(0,d.Z)(mt,jt),pr=Z(fn),sa=h.useContext($),Nr=sa.prefixCls,Zn=sa.mode,In=sa.openKeys,Pn=sa.disabled,rr=sa.overflowDisabled,br=sa.activeKey,Gr=sa.selectedKeys,na=sa.itemIcon,pa=sa.expandIcon,cr=sa.onItemClick,Zr=sa.onOpenChange,Ea=sa.onActive,ha=h.useContext(X),Wn=ha._internalRenderSubMenuItem,Fn=h.useContext(q),hr=Fn.isSubPathKey,Kr=Y(),Ar="".concat(Nr,"-submenu"),Pt=Pn||qn,an=h.useRef(),pn=h.useRef(),qa=It||na,Mo=Ct||pa,Ua=In.includes(fn),Wa=!rr&&Ua,Xa=hr(Gr,fn),No=ce(fn,Pt,er,zn),$o=No.active,So=(0,d.Z)(No,He),ft=h.useState(!1),Rt=(0,n.Z)(ft,2),Ae=Rt[0],cn=Rt[1],An=function(Qt){Pt||cn(Qt)},hn=function(Qt){An(!0),xn==null||xn({key:fn,domEvent:Qt})},Xn=function(Qt){An(!1),Rn==null||Rn({key:fn,domEvent:Qt})},nr=h.useMemo(function(){return $o||(Zn!=="inline"?Ae||hr([br],fn):!1)},[Zn,$o,br,Ae,fn,hr]),Wr=Ne(Kr.length),Da=function(Qt){Pt||(Mr==null||Mr({key:fn,domEvent:Qt}),Zn==="inline"&&Zr(fn,!Ua))},oa=me(function(Ka){nn==null||nn(Re(Ka)),cr(Ka)}),Qr=function(Qt){Zn!=="inline"&&Zr(fn,Qt)},ra=function(){Ea(fn)},jr=pr&&"".concat(pr,"-popup"),$r=h.createElement("div",(0,a.Z)({role:"menuitem",style:Wr,className:"".concat(Ar,"-title"),tabIndex:Pt?null:-1,ref:an,title:typeof mn=="string"?mn:null,"data-menu-id":rr&&pr?null:pr,"aria-expanded":Wa,"aria-haspopup":!0,"aria-controls":jr,"aria-disabled":Pt,onClick:Da,onFocus:ra},So),mn,h.createElement(Oe,{icon:Zn!=="horizontal"?Mo:null,props:(0,o.Z)((0,o.Z)({},mt),{},{isOpen:Wa,isSubMenu:!0})},h.createElement("i",{className:"".concat(Ar,"-arrow")}))),fa=h.useRef(Zn);if(Zn!=="inline"&&Kr.length>1?fa.current="vertical":fa.current=Zn,!rr){var Na=fa.current;$r=h.createElement(Ie,{mode:Na,prefixCls:Ar,visible:!ct&&Wa&&Zn!=="inline",popupClassName:kt,popupOffset:un,popup:h.createElement(T,{mode:Na==="horizontal"?"vertical":Na},h.createElement(wt,{id:jr,ref:pn},dt)),disabled:Pt,onVisibleChange:Qr},$r)}var to=h.createElement(m.Z.Item,(0,a.Z)({role:"none"},Ur,{component:"li",style:Kt,className:c()(Ar,"".concat(Ar,"-").concat(Zn),tn,(sn={},(0,t.Z)(sn,"".concat(Ar,"-open"),Wa),(0,t.Z)(sn,"".concat(Ar,"-active"),nr),(0,t.Z)(sn,"".concat(Ar,"-selected"),Xa),(0,t.Z)(sn,"".concat(Ar,"-disabled"),Pt),sn)),onMouseEnter:hn,onMouseLeave:Xn}),$r,!rr&&h.createElement(Mt,{id:jr,open:Wa,keyPath:Kr},dt));return Wn&&(to=Wn(to,mt,{selected:Xa,active:nr,open:Wa,disabled:Pt})),h.createElement(T,{onItemClick:oa,mode:Zn==="horizontal"?"vertical":Zn,itemIcon:qa,expandIcon:Mo},to)};function Zt(pt){var mt=pt.eventKey,sn=pt.children,Kt=Y(mt),tn=bt(sn,Kt),mn=k();h.useEffect(function(){if(mn)return mn.registerPath(mt,Kt),function(){mn.unregisterPath(mt,Kt)}},[Kt]);var fn;return mn?fn=tn:fn=h.createElement(et,pt,tn),h.createElement(te.Provider,{value:Kt},fn)}var Ut=e(38790),Jt=["className","title","eventKey","children"],ln=["children"],Mn=function(mt){var sn=mt.className,Kt=mt.title,tn=mt.eventKey,mn=mt.children,fn=(0,d.Z)(mt,Jt),kn=h.useContext($),qn=kn.prefixCls,ct="".concat(qn,"-item-group");return h.createElement("li",(0,a.Z)({role:"presentation"},fn,{onClick:function(It){return It.stopPropagation()},className:c()(ct,sn)}),h.createElement("div",{role:"presentation",className:"".concat(ct,"-title"),title:typeof Kt=="string"?Kt:void 0},Kt),h.createElement("ul",{role:"group",className:"".concat(ct,"-list")},mn))};function gn(pt){var mt=pt.children,sn=(0,d.Z)(pt,ln),Kt=Y(sn.eventKey),tn=bt(mt,Kt),mn=k();return mn?tn:h.createElement(Mn,(0,de.Z)(sn,["warnKey"]),tn)}function Yn(pt){var mt=pt.className,sn=pt.style,Kt=h.useContext($),tn=Kt.prefixCls,mn=k();return mn?null:h.createElement("li",{className:c()("".concat(tn,"-item-divider"),mt),style:sn})}var Gn=["label","children","key","type"];function ar(pt){return(pt||[]).map(function(mt,sn){if(mt&&(0,Ut.Z)(mt)==="object"){var Kt=mt,tn=Kt.label,mn=Kt.children,fn=Kt.key,kn=Kt.type,qn=(0,d.Z)(Kt,Gn),ct=fn!=null?fn:"tmp-".concat(sn);return mn||kn==="group"?kn==="group"?h.createElement(gn,(0,a.Z)({key:ct},qn,{title:tn}),ar(mn)):h.createElement(Zt,(0,a.Z)({key:ct},qn,{title:tn}),ar(mn)):kn==="divider"?h.createElement(Yn,(0,a.Z)({key:ct},qn)):h.createElement(Ve,(0,a.Z)({key:ct},qn),tn)}return null}).filter(function(mt){return mt})}function gr(pt,mt,sn){var Kt=pt;return mt&&(Kt=ar(mt)),bt(Kt,sn)}var zt=["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"],qt=[],rn=h.forwardRef(function(pt,mt){var sn,Kt,tn=pt,mn=tn.prefixCls,fn=mn===void 0?"rc-menu":mn,kn=tn.rootClassName,qn=tn.style,ct=tn.className,dt=tn.tabIndex,It=dt===void 0?0:dt,Ct=tn.items,kt=tn.children,un=tn.direction,nn=tn.id,xn=tn.mode,Rn=xn===void 0?"vertical":xn,Mr=tn.inlineCollapsed,er=tn.disabled,zn=tn.disabledOverflow,Ur=tn.subMenuOpenDelay,pr=Ur===void 0?.1:Ur,sa=tn.subMenuCloseDelay,Nr=sa===void 0?.1:sa,Zn=tn.forceSubMenuRender,In=tn.defaultOpenKeys,Pn=tn.openKeys,rr=tn.activeKey,br=tn.defaultActiveFirst,Gr=tn.selectable,na=Gr===void 0?!0:Gr,pa=tn.multiple,cr=pa===void 0?!1:pa,Zr=tn.defaultSelectedKeys,Ea=tn.selectedKeys,ha=tn.onSelect,Wn=tn.onDeselect,Fn=tn.inlineIndent,hr=Fn===void 0?24:Fn,Kr=tn.motion,Ar=tn.defaultMotions,Pt=tn.triggerSubMenuAction,an=Pt===void 0?"hover":Pt,pn=tn.builtinPlacements,qa=tn.itemIcon,Mo=tn.expandIcon,Ua=tn.overflowedIndicator,Wa=Ua===void 0?"...":Ua,Xa=tn.overflowedIndicatorPopupClassName,No=tn.getPopupContainer,$o=tn.onClick,So=tn.onOpenChange,ft=tn.onKeyDown,Rt=tn.openAnimation,Ae=tn.openTransitionName,cn=tn._internalRenderMenuItem,An=tn._internalRenderSubMenuItem,hn=(0,d.Z)(tn,zt),Xn=h.useMemo(function(){return gr(kt,Ct,qt)},[kt,Ct]),nr=h.useState(!1),Wr=(0,n.Z)(nr,2),Da=Wr[0],oa=Wr[1],Qr=h.useRef(),ra=Se(nn),jr=un==="rtl",$r=(0,g.Z)(In,{value:Pn,postState:function(za){return za||qt}}),fa=(0,n.Z)($r,2),Na=fa[0],to=fa[1],Ka=function(za){var La=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;function Fo(){to(za),So==null||So(za)}La?(0,S.flushSync)(Fo):Fo()},Qt=h.useState(Na),Sn=(0,n.Z)(Qt,2),Dn=Sn[0],Jn=Sn[1],fr=h.useRef(!1),kr=h.useMemo(function(){return(Rn==="inline"||Rn==="vertical")&&Mr?["vertical",Mr]:[Rn,!1]},[Rn,Mr]),Jr=(0,n.Z)(kr,2),or=Jr[0],Hr=Jr[1],ca=or==="inline",Oa=h.useState(or),Ia=(0,n.Z)(Oa,2),Xr=Ia[0],po=Ia[1],wo=h.useState(Hr),Ya=(0,n.Z)(wo,2),Co=Ya[0],co=Ya[1];h.useEffect(function(){po(or),co(Hr),fr.current&&(ca?to(Dn):Ka(qt))},[or,Hr]);var Ca=h.useState(0),Za=(0,n.Z)(Ca,2),xo=Za[0],ei=Za[1],ri=xo>=Xn.length-1||Xr!=="horizontal"||zn;h.useEffect(function(){ca&&Jn(Na)},[Na]),h.useEffect(function(){return fr.current=!0,function(){fr.current=!1}},[]);var ao=ie(),Mi=ao.registerPath,ji=ao.unregisterPath,Xo=ao.refreshOverflowKeys,Ho=ao.isSubPathKey,ui=ao.getKeyPath,li=ao.getKeys,Ci=ao.getSubPathKeys,Ni=h.useMemo(function(){return{registerPath:Mi,unregisterPath:ji}},[Mi,ji]),xi=h.useMemo(function(){return{isSubPathKey:Ho}},[Ho]);h.useEffect(function(){Xo(ri?qt:Xn.slice(xo+1).map(function(Ta){return Ta.key}))},[xo,ri]);var no=(0,g.Z)(rr||br&&((sn=Xn[0])===null||sn===void 0?void 0:sn.key),{value:rr}),Qa=(0,n.Z)(no,2),ti=Qa[0],ai=Qa[1],jo=me(function(Ta){ai(Ta)}),Zo=me(function(){ai(void 0)});(0,h.useImperativeHandle)(mt,function(){return{list:Qr.current,focus:function(za){var La,Fo=ti!=null?ti:(La=Xn.find(function(Cs){return!Cs.props.disabled}))===null||La===void 0?void 0:La.key;if(Fo){var Jo,Yo,zi;(Jo=Qr.current)===null||Jo===void 0||(Yo=Jo.querySelector("li[data-menu-id='".concat(z(ra,Fo),"']")))===null||Yo===void 0||(zi=Yo.focus)===null||zi===void 0||zi.call(Yo,za)}}}});var Ii=(0,g.Z)(Zr||[],{value:Ea,postState:function(za){return Array.isArray(za)?za:za==null?qt:[za]}}),Ri=(0,n.Z)(Ii,2),ki=Ri[0],ws=Ri[1],ms=function(za){if(na){var La=za.key,Fo=ki.includes(La),Jo;cr?Fo?Jo=ki.filter(function(zi){return zi!==La}):Jo=[].concat((0,s.Z)(ki),[La]):Jo=[La],ws(Jo);var Yo=(0,o.Z)((0,o.Z)({},za),{},{selectedKeys:Jo});Fo?Wn==null||Wn(Yo):ha==null||ha(Yo)}!cr&&Na.length&&Xr!=="inline"&&Ka(qt)},Qs=me(function(Ta){$o==null||$o(Re(Ta)),ms(Ta)}),Ml=me(function(Ta,za){var La=Na.filter(function(Jo){return Jo!==Ta});if(za)La.push(Ta);else if(Xr!=="inline"){var Fo=Ci(Ta);La=La.filter(function(Jo){return!Fo.has(Jo)})}(0,w.Z)(Na,La,!0)||Ka(La,!0)}),Vn=function(za,La){var Fo=La!=null?La:!Na.includes(za);Ml(za,Fo)},Vr=ne(Xr,ti,jr,ra,Qr,li,ui,ai,Vn,ft);h.useEffect(function(){oa(!0)},[]);var Or=h.useMemo(function(){return{_internalRenderMenuItem:cn,_internalRenderSubMenuItem:An}},[cn,An]),Br=Xr!=="horizontal"||zn?Xn:Xn.map(function(Ta,za){return h.createElement(T,{key:Ta.key,overflowDisabled:za>xo},Ta)}),aa=h.createElement(m.Z,(0,a.Z)({id:nn,ref:Qr,prefixCls:"".concat(fn,"-overflow"),component:"ul",itemComponent:Ve,className:c()(fn,"".concat(fn,"-root"),"".concat(fn,"-").concat(Xr),ct,(Kt={},(0,t.Z)(Kt,"".concat(fn,"-inline-collapsed"),Co),(0,t.Z)(Kt,"".concat(fn,"-rtl"),jr),Kt),kn),dir:un,style:qn,role:"menu",tabIndex:It,data:Br,renderRawItem:function(za){return za},renderRawRest:function(za){var La=za.length,Fo=La?Xn.slice(-La):null;return h.createElement(Zt,{eventKey:Q,title:Wa,disabled:ri,internalPopupClose:La===0,popupClassName:Xa},Fo)},maxCount:Xr!=="horizontal"||zn?m.Z.INVALIDATE:m.Z.RESPONSIVE,ssr:"full","data-menu-list":!0,onVisibleChange:function(za){ei(za)},onKeyDown:Vr},hn));return h.createElement(X.Provider,{value:Or},h.createElement(C.Provider,{value:ra},h.createElement(T,{prefixCls:fn,rootClassName:kn,mode:Xr,openKeys:Na,rtl:jr,disabled:er,motion:Da?Kr:null,defaultMotions:Da?Ar:null,activeKey:ti,onActive:jo,onInactive:Zo,selectedKeys:ki,inlineIndent:hr,subMenuOpenDelay:pr,subMenuCloseDelay:Nr,forceSubMenuRender:Zn,builtinPlacements:pn,triggerSubMenuAction:an,getPopupContainer:No,itemIcon:qa,expandIcon:Mo,onItemClick:Qs,onOpenChange:Ml},h.createElement(q.Provider,{value:xi},aa),h.createElement("div",{style:{display:"none"},"aria-hidden":!0},h.createElement(G.Provider,{value:Ni},Xn)))))}),dn=rn,Cn=dn;Cn.Item=Ve,Cn.SubMenu=Zt,Cn.ItemGroup=gn,Cn.Divider=Yn;var on=Cn},17598:function(b,y,e){"use strict";e.d(y,{V4:function(){return ce},zt:function(){return S},ZP:function(){return Ne}});var a=e(37734),t=e(57370),o=e(28314),s=e(38790),n=e(87608),d=e.n(n),l=e(69188),c=e(21319),m=e(58757),g=e(47075),M=["children"],h=m.createContext({});function S(Oe){var we=Oe.children,Re=(0,g.Z)(Oe,M);return m.createElement(h.Provider,{value:Re},we)}var w=e(60412),C=e(14346),z=e(87498),Z=e(73726),N=function(Oe){(0,z.Z)(Re,Oe);var we=(0,Z.Z)(Re);function Re(){return(0,w.Z)(this,Re),we.apply(this,arguments)}return(0,C.Z)(Re,[{key:"render",value:function(){return this.props.children}}]),Re}(m.Component),L=N,$=e(13989),D="none",T="appear",j="enter",G="leave",k="none",te="prepare",Y="start",q="active",le="end",X="prepared",W=e(19075);function x(Oe,we){var Re={};return Re[Oe.toLowerCase()]=we.toLowerCase(),Re["Webkit".concat(Oe)]="webkit".concat(we),Re["Moz".concat(Oe)]="moz".concat(we),Re["ms".concat(Oe)]="MS".concat(we),Re["O".concat(Oe)]="o".concat(we.toLowerCase()),Re}function O(Oe,we){var Re={animationend:x("Animation","AnimationEnd"),transitionend:x("Transition","TransitionEnd")};return Oe&&("AnimationEvent"in we||delete Re.animationend.animation,"TransitionEvent"in we||delete Re.transitionend.transition),Re}var _=O((0,W.Z)(),typeof window!="undefined"?window:{}),U={};if((0,W.Z)()){var A=document.createElement("div");U=A.style}var V={};function fe(Oe){if(V[Oe])return V[Oe];var we=_[Oe];if(we)for(var Re=Object.keys(we),st=Re.length,tt=0;tt1&&arguments[1]!==void 0?arguments[1]:2;we();var Ye=(0,gt.Z)(function(){tt<=1?st({isCanceled:function(){return Ye!==Oe.current}}):Re(st,tt-1)});Oe.current=Ye}return m.useEffect(function(){return function(){we()}},[]),[Re,we]},$e=[te,Y,q,le],Xe=[te,X],rt=!1,Ke=!0;function ye(Oe){return Oe===q||Oe===le}var ne=function(Oe,we,Re){var st=(0,$.Z)(k),tt=(0,o.Z)(st,2),Ye=tt[0],ke=tt[1],Be=Ht(),it=(0,o.Z)(Be,2),Ve=it[0],xt=it[1];function _t(){ke(te,!0)}var Ot=we?Xe:$e;return Et(function(){if(Ye!==k&&Ye!==le){var wt=Ot.indexOf(Ye),Yt=Ot[wt+1],bt=Re(Ye);bt===rt?ke(Yt,!0):Yt&&Ve(function(ze){function nt(){ze.isCanceled()||ke(Yt,!0)}bt===!0?nt():Promise.resolve(bt).then(nt)})}},[Oe,Ye]),m.useEffect(function(){return function(){xt()}},[]),[_t,Ye]};function H(Oe,we,Re,st){var tt=st.motionEnter,Ye=tt===void 0?!0:tt,ke=st.motionAppear,Be=ke===void 0?!0:ke,it=st.motionLeave,Ve=it===void 0?!0:it,xt=st.motionDeadline,_t=st.motionLeaveImmediately,Ot=st.onAppearPrepare,wt=st.onEnterPrepare,Yt=st.onLeavePrepare,bt=st.onAppearStart,ze=st.onEnterStart,nt=st.onLeaveStart,St=st.onAppearActive,ut=st.onEnterActive,Vt=st.onLeaveActive,Nt=st.onAppearEnd,At=st.onEnterEnd,Ie=st.onLeaveEnd,Ee=st.onVisibleChanged,Mt=(0,$.Z)(),jt=(0,o.Z)(Mt,2),He=jt[0],et=jt[1],Zt=(0,$.Z)(D),Ut=(0,o.Z)(Zt,2),Jt=Ut[0],ln=Ut[1],Mn=(0,$.Z)(null),gn=(0,o.Z)(Mn,2),Yn=gn[0],Gn=gn[1],ar=(0,m.useRef)(!1),gr=(0,m.useRef)(null);function zt(){return Re()}var qt=(0,m.useRef)(!1);function rn(){ln(D,!0),Gn(null,!0)}function dn(dt){var It=zt();if(!(dt&&!dt.deadline&&dt.target!==It)){var Ct=qt.current,kt;Jt===T&&Ct?kt=Nt==null?void 0:Nt(It,dt):Jt===j&&Ct?kt=At==null?void 0:At(It,dt):Jt===G&&Ct&&(kt=Ie==null?void 0:Ie(It,dt)),Jt!==D&&Ct&&kt!==!1&&rn()}}var Cn=Qe(dn),on=(0,o.Z)(Cn,1),pt=on[0],mt=function(It){var Ct,kt,un;switch(It){case T:return Ct={},(0,a.Z)(Ct,te,Ot),(0,a.Z)(Ct,Y,bt),(0,a.Z)(Ct,q,St),Ct;case j:return kt={},(0,a.Z)(kt,te,wt),(0,a.Z)(kt,Y,ze),(0,a.Z)(kt,q,ut),kt;case G:return un={},(0,a.Z)(un,te,Yt),(0,a.Z)(un,Y,nt),(0,a.Z)(un,q,Vt),un;default:return{}}},sn=m.useMemo(function(){return mt(Jt)},[Jt]),Kt=ne(Jt,!Oe,function(dt){if(dt===te){var It=sn[te];return It?It(zt()):rt}if(fn in sn){var Ct;Gn(((Ct=sn[fn])===null||Ct===void 0?void 0:Ct.call(sn,zt(),null))||null)}return fn===q&&(pt(zt()),xt>0&&(clearTimeout(gr.current),gr.current=setTimeout(function(){dn({deadline:!0})},xt))),fn===X&&rn(),Ke}),tn=(0,o.Z)(Kt,2),mn=tn[0],fn=tn[1],kn=ye(fn);qt.current=kn,Et(function(){et(we);var dt=ar.current;ar.current=!0;var It;!dt&&we&&Be&&(It=T),dt&&we&&Ye&&(It=j),(dt&&!we&&Ve||!dt&&_t&&!we&&Ve)&&(It=G);var Ct=mt(It);It&&(Oe||Ct[te])?(ln(It),mn()):ln(D)},[we]),(0,m.useEffect)(function(){(Jt===T&&!Be||Jt===j&&!Ye||Jt===G&&!Ve)&&ln(D)},[Be,Ye,Ve]),(0,m.useEffect)(function(){return function(){ar.current=!1,clearTimeout(gr.current)}},[]);var qn=m.useRef(!1);(0,m.useEffect)(function(){He&&(qn.current=!0),He!==void 0&&Jt===D&&((qn.current||He)&&(Ee==null||Ee(He)),qn.current=!0)},[He,Jt]);var ct=Yn;return sn[te]&&fn===Y&&(ct=(0,t.Z)({transition:"none"},ct)),[Jt,fn,ct,He!=null?He:we]}function R(Oe){var we=Oe;(0,s.Z)(Oe)==="object"&&(we=Oe.transitionSupport);function Re(tt,Ye){return!!(tt.motionName&&we&&Ye!==!1)}var st=m.forwardRef(function(tt,Ye){var ke=tt.visible,Be=ke===void 0?!0:ke,it=tt.removeOnLeave,Ve=it===void 0?!0:it,xt=tt.forceRender,_t=tt.children,Ot=tt.motionName,wt=tt.leavedClassName,Yt=tt.eventProps,bt=m.useContext(h),ze=bt.motion,nt=Re(tt,ze),St=(0,m.useRef)(),ut=(0,m.useRef)();function Vt(){try{return St.current instanceof HTMLElement?St.current:(0,l.Z)(ut.current)}catch(Gn){return null}}var Nt=H(nt,Be,Vt,tt),At=(0,o.Z)(Nt,4),Ie=At[0],Ee=At[1],Mt=At[2],jt=At[3],He=m.useRef(jt);jt&&(He.current=!0);var et=m.useCallback(function(Gn){St.current=Gn,(0,c.mH)(Ye,Gn)},[Ye]),Zt,Ut=(0,t.Z)((0,t.Z)({},Yt),{},{visible:Be});if(!_t)Zt=null;else if(Ie===D)jt?Zt=_t((0,t.Z)({},Ut),et):!Ve&&He.current&&wt?Zt=_t((0,t.Z)((0,t.Z)({},Ut),{},{className:wt}),et):xt||!Ve&&!wt?Zt=_t((0,t.Z)((0,t.Z)({},Ut),{},{style:{display:"none"}}),et):Zt=null;else{var Jt,ln;Ee===te?ln="prepare":ye(Ee)?ln="active":Ee===Y&&(ln="start");var Mn=qe(Ot,"".concat(Ie,"-").concat(ln));Zt=_t((0,t.Z)((0,t.Z)({},Ut),{},{className:d()(qe(Ot,Ie),(Jt={},(0,a.Z)(Jt,Mn,Mn&&ln),(0,a.Z)(Jt,Ot,typeof Ot=="string"),Jt)),style:Mt}),et)}if(m.isValidElement(Zt)&&(0,c.Yr)(Zt)){var gn=Zt,Yn=gn.ref;Yn||(Zt=m.cloneElement(Zt,{ref:et}))}return m.createElement(L,{ref:ut},Zt)});return st.displayName="CSSMotion",st}var P=R(be),ae=e(60698),Q=e(86717),ie="add",me="keep",je="remove",Ce="removed";function Se(Oe){var we;return Oe&&(0,s.Z)(Oe)==="object"&&"key"in Oe?we=Oe:we={key:Oe},(0,t.Z)((0,t.Z)({},we),{},{key:String(we.key)})}function We(){var Oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return Oe.map(Se)}function re(){var Oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],we=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],Re=[],st=0,tt=we.length,Ye=We(Oe),ke=We(we);Ye.forEach(function(Ve){for(var xt=!1,_t=st;_t1});return it.forEach(function(Ve){Re=Re.filter(function(xt){var _t=xt.key,Ot=xt.status;return _t!==Ve||Ot!==je}),Re.forEach(function(xt){xt.key===Ve&&(xt.status=me)})}),Re}var se=["component","children","onVisibleChanged","onAllRemoved"],J=["status"],de=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];function xe(Oe){var we=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P,Re=function(st){(0,z.Z)(Ye,st);var tt=(0,Z.Z)(Ye);function Ye(){var ke;(0,w.Z)(this,Ye);for(var Be=arguments.length,it=new Array(Be),Ve=0;Ve0){var Qe=setTimeout(function(){Te()},q*1e3);return function(){clearTimeout(Qe)}}},[q,ge,V]);var qe="".concat(G,"-notice");return s.createElement("div",(0,n.Z)({},_,{ref:j,className:g()(qe,te,(0,M.Z)({},"".concat(qe,"-closable"),W)),style:k,onMouseEnter:function(){be(!0)},onMouseLeave:function(){be(!1)},onClick:U}),s.createElement("div",{className:"".concat(qe,"-content")},X),W&&s.createElement("a",{tabIndex:0,className:"".concat(qe,"-close"),onKeyDown:Ge,onClick:function(ht){ht.preventDefault(),ht.stopPropagation(),Te()}},O))}),w=S,C=s.forwardRef(function(T,j){var G=T.prefixCls,k=G===void 0?"rc-notification":G,te=T.container,Y=T.motion,q=T.maxCount,le=T.className,X=T.style,W=T.onAllRemoved,x=s.useState([]),O=(0,t.Z)(x,2),_=O[0],U=O[1],A=function(Qe){var ht,Et=_.find(function(gt){return gt.key===Qe});Et==null||(ht=Et.onClose)===null||ht===void 0||ht.call(Et),U(function(gt){return gt.filter(function(Ht){return Ht.key!==Qe})})};s.useImperativeHandle(j,function(){return{open:function(Qe){U(function(ht){var Et=(0,a.Z)(ht),gt=Et.findIndex(function(Xe){return Xe.key===Qe.key}),Ht=(0,d.Z)({},Qe);if(gt>=0){var $e;Ht.times=((($e=ht[gt])===null||$e===void 0?void 0:$e.times)||0)+1,Et[gt]=Ht}else Ht.times=0,Et.push(Ht);return q>0&&Et.length>q&&(Et=Et.slice(-q)),Et})},close:function(Qe){A(Qe)},destroy:function(){U([])}}});var V=s.useState({}),fe=(0,t.Z)(V,2),pe=fe[0],ge=fe[1];s.useEffect(function(){var qe={};_.forEach(function(Qe){var ht=Qe.placement,Et=ht===void 0?"topRight":ht;Et&&(qe[Et]=qe[Et]||[],qe[Et].push(Qe))}),Object.keys(pe).forEach(function(Qe){qe[Qe]=qe[Qe]||[]}),ge(qe)},[_]);var be=function(Qe){ge(function(ht){var Et=(0,d.Z)({},ht),gt=Et[Qe]||[];return gt.length||delete Et[Qe],Et})},Te=s.useRef(!1);if(s.useEffect(function(){Object.keys(pe).length>0?Te.current=!0:Te.current&&(W==null||W(),Te.current=!1)},[pe]),!te)return null;var Ge=Object.keys(pe);return(0,l.createPortal)(s.createElement(s.Fragment,null,Ge.map(function(qe){var Qe=pe[qe],ht=Qe.map(function(gt){return{config:gt,key:gt.key}}),Et=typeof Y=="function"?Y(qe):Y;return s.createElement(c.V4,(0,n.Z)({key:qe,className:g()(k,"".concat(k,"-").concat(qe),le==null?void 0:le(qe)),style:X==null?void 0:X(qe),keys:ht,motionAppear:!0},Et,{onAllRemoved:function(){be(qe)}}),function(gt,Ht){var $e=gt.config,Xe=gt.className,rt=gt.style,Ke=$e.key,ye=$e.times,ne=$e.className,H=$e.style;return s.createElement(w,(0,n.Z)({},$e,{ref:Ht,prefixCls:k,className:g()(Xe,ne),style:(0,d.Z)((0,d.Z)({},rt),H),times:ye,key:Ke,eventKey:Ke,onNoticeClose:A}))})})),te)}),z=C,Z=["getContainer","motion","prefixCls","maxCount","className","style","onAllRemoved"],N=function(){return document.body},L=0;function $(){for(var T={},j=arguments.length,G=new Array(j),k=0;k0&&arguments[0]!==void 0?arguments[0]:{},j=T.getContainer,G=j===void 0?N:j,k=T.motion,te=T.prefixCls,Y=T.maxCount,q=T.className,le=T.style,X=T.onAllRemoved,W=(0,o.Z)(T,Z),x=s.useState(),O=(0,t.Z)(x,2),_=O[0],U=O[1],A=s.useRef(),V=s.createElement(z,{container:_,ref:A,prefixCls:te,motion:k,maxCount:Y,className:q,style:le,onAllRemoved:X}),fe=s.useState([]),pe=(0,t.Z)(fe,2),ge=pe[0],be=pe[1],Te=s.useMemo(function(){return{open:function(qe){var Qe=$(W,qe);(Qe.key===null||Qe.key===void 0)&&(Qe.key="rc-notification-".concat(L),L+=1),be(function(ht){return[].concat((0,a.Z)(ht),[{type:"open",config:Qe}])})},close:function(qe){be(function(Qe){return[].concat((0,a.Z)(Qe),[{type:"close",key:qe}])})},destroy:function(){be(function(qe){return[].concat((0,a.Z)(qe),[{type:"destroy"}])})}}},[]);return s.useEffect(function(){U(G())}),s.useEffect(function(){A.current&&ge.length&&(ge.forEach(function(Ge){switch(Ge.type){case"open":A.current.open(Ge.config);break;case"close":A.current.close(Ge.key);break;case"destroy":A.current.destroy();break}}),be(function(Ge){return Ge.filter(function(qe){return!ge.includes(qe)})}))},[ge]),[Te,V]}},9257:function(b,y,e){"use strict";e.d(y,{Z:function(){return U}});var a=e(60698),t=e(57370),o=e(28314),s=e(47075),n=e(58757),d=e(87608),l=e.n(d),c=e(19425),m=e(81334),g=["prefixCls","invalidate","item","renderItem","responsive","responsiveDisabled","registerSize","itemKey","className","style","children","display","order","component"],M=void 0;function h(A,V){var fe=A.prefixCls,pe=A.invalidate,ge=A.item,be=A.renderItem,Te=A.responsive,Ge=A.responsiveDisabled,qe=A.registerSize,Qe=A.itemKey,ht=A.className,Et=A.style,gt=A.children,Ht=A.display,$e=A.order,Xe=A.component,rt=Xe===void 0?"div":Xe,Ke=(0,s.Z)(A,g),ye=Te&&!Ht;function ne(Q){qe(Qe,Q)}n.useEffect(function(){return function(){ne(null)}},[]);var H=be&&ge!==M?be(ge):gt,R;pe||(R={opacity:ye?0:1,height:ye?0:M,overflowY:ye?"hidden":M,order:Te?$e:M,pointerEvents:ye?"none":M,position:ye?"absolute":M});var P={};ye&&(P["aria-hidden"]=!0);var ae=n.createElement(rt,(0,a.Z)({className:l()(!pe&&fe,ht),style:(0,t.Z)((0,t.Z)({},R),Et)},P,Ke,{ref:V}),H);return Te&&(ae=n.createElement(c.Z,{onResize:function(ie){var me=ie.offsetWidth;ne(me)},disabled:Ge},ae)),ae}var S=n.forwardRef(h);S.displayName="Item";var w=S,C=e(51729),z=e(26736),Z=e(61834);function N(A){if(typeof MessageChannel=="undefined")(0,Z.Z)(A);else{var V=new MessageChannel;V.port1.onmessage=function(){return A()},V.port2.postMessage(void 0)}}function L(){var A=n.useRef(null),V=function(pe){A.current||(A.current=[],N(function(){(0,z.unstable_batchedUpdates)(function(){A.current.forEach(function(ge){ge()}),A.current=null})})),A.current.push(pe)};return V}function $(A,V){var fe=n.useState(V),pe=(0,o.Z)(fe,2),ge=pe[0],be=pe[1],Te=(0,C.Z)(function(Ge){A(function(){be(Ge)})});return[ge,Te]}var D=n.createContext(null),T=["component"],j=["className"],G=["className"],k=function(V,fe){var pe=n.useContext(D);if(!pe){var ge=V.component,be=ge===void 0?"div":ge,Te=(0,s.Z)(V,T);return n.createElement(be,(0,a.Z)({},Te,{ref:fe}))}var Ge=pe.className,qe=(0,s.Z)(pe,j),Qe=V.className,ht=(0,s.Z)(V,G);return n.createElement(D.Provider,{value:null},n.createElement(w,(0,a.Z)({ref:fe,className:l()(Ge,Qe)},qe,ht)))},te=n.forwardRef(k);te.displayName="RawItem";var Y=te,q=["prefixCls","data","renderItem","renderRawItem","itemKey","itemWidth","ssr","style","className","maxCount","renderRest","renderRawRest","suffix","component","itemComponent","onVisibleChange"],le="responsive",X="invalidate";function W(A){return"+ ".concat(A.length," ...")}function x(A,V){var fe=A.prefixCls,pe=fe===void 0?"rc-overflow":fe,ge=A.data,be=ge===void 0?[]:ge,Te=A.renderItem,Ge=A.renderRawItem,qe=A.itemKey,Qe=A.itemWidth,ht=Qe===void 0?10:Qe,Et=A.ssr,gt=A.style,Ht=A.className,$e=A.maxCount,Xe=A.renderRest,rt=A.renderRawRest,Ke=A.suffix,ye=A.component,ne=ye===void 0?"div":ye,H=A.itemComponent,R=A.onVisibleChange,P=(0,s.Z)(A,q),ae=Et==="full",Q=L(),ie=$(Q,null),me=(0,o.Z)(ie,2),je=me[0],Ce=me[1],Se=je||0,We=$(Q,new Map),re=(0,o.Z)(We,2),se=re[0],J=re[1],de=$(Q,0),xe=(0,o.Z)(de,2),ce=xe[0],Ne=xe[1],Oe=$(Q,0),we=(0,o.Z)(Oe,2),Re=we[0],st=we[1],tt=$(Q,0),Ye=(0,o.Z)(tt,2),ke=Ye[0],Be=Ye[1],it=(0,n.useState)(null),Ve=(0,o.Z)(it,2),xt=Ve[0],_t=Ve[1],Ot=(0,n.useState)(null),wt=(0,o.Z)(Ot,2),Yt=wt[0],bt=wt[1],ze=n.useMemo(function(){return Yt===null&&ae?Number.MAX_SAFE_INTEGER:Yt||0},[Yt,je]),nt=(0,n.useState)(!1),St=(0,o.Z)(nt,2),ut=St[0],Vt=St[1],Nt="".concat(pe,"-item"),At=Math.max(ce,Re),Ie=$e===le,Ee=be.length&&Ie,Mt=$e===X,jt=Ee||typeof $e=="number"&&be.length>$e,He=(0,n.useMemo)(function(){var pt=be;return Ee?je===null&&ae?pt=be:pt=be.slice(0,Math.min(be.length,Se/ht)):typeof $e=="number"&&(pt=be.slice(0,$e)),pt},[be,ht,je,$e,Ee]),et=(0,n.useMemo)(function(){return Ee?be.slice(ze+1):be.slice(He.length)},[be,He,Ee,ze]),Zt=(0,n.useCallback)(function(pt,mt){var sn;return typeof qe=="function"?qe(pt):(sn=qe&&(pt==null?void 0:pt[qe]))!==null&&sn!==void 0?sn:mt},[qe]),Ut=(0,n.useCallback)(Te||function(pt){return pt},[Te]);function Jt(pt,mt,sn){Yt===pt&&(mt===void 0||mt===xt)||(bt(pt),sn||(Vt(ptSe){Jt(Kt-1,pt-tn-ke+Re);break}}Ke&&Gn(0)+ke>Se&&_t(null)}},[Se,se,Re,ke,Zt,He]);var ar=ut&&!!et.length,gr={};xt!==null&&Ee&&(gr={position:"absolute",left:xt,top:0});var zt={prefixCls:Nt,responsive:Ee,component:H,invalidate:Mt},qt=Ge?function(pt,mt){var sn=Zt(pt,mt);return n.createElement(D.Provider,{key:sn,value:(0,t.Z)((0,t.Z)({},zt),{},{order:mt,item:pt,itemKey:sn,registerSize:Mn,display:mt<=ze})},Ge(pt,mt))}:function(pt,mt){var sn=Zt(pt,mt);return n.createElement(w,(0,a.Z)({},zt,{order:mt,key:sn,item:pt,renderItem:Ut,itemKey:sn,registerSize:Mn,display:mt<=ze}))},rn,dn={order:ar?ze:Number.MAX_SAFE_INTEGER,className:"".concat(Nt,"-rest"),registerSize:gn,display:ar};if(rt)rt&&(rn=n.createElement(D.Provider,{value:(0,t.Z)((0,t.Z)({},zt),dn)},rt(et)));else{var Cn=Xe||W;rn=n.createElement(w,(0,a.Z)({},zt,dn),typeof Cn=="function"?Cn(et):Cn)}var on=n.createElement(ne,(0,a.Z)({className:l()(!Mt&&pe,Ht),style:gt,ref:V},P),He.map(qt),jt?rn:null,Ke&&n.createElement(w,(0,a.Z)({},zt,{responsive:Ie,responsiveDisabled:!Ee,order:ze,className:"".concat(Nt,"-suffix"),registerSize:Yn,display:!0,style:gr}),Ke));return Ie&&(on=n.createElement(c.Z,{onResize:ln,disabled:!Ee},on)),on}var O=n.forwardRef(x);O.displayName="Overflow",O.Item=Y,O.RESPONSIVE=le,O.INVALIDATE=X;var _=O,U=_},57522:function(b,y){"use strict";y.Z={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"Page",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages",page_size:"Page Size"}},23737:function(b,y){"use strict";y.Z={items_per_page:"\u6761/\u9875",jump_to:"\u8DF3\u81F3",jump_to_confirm:"\u786E\u5B9A",page:"\u9875",prev_page:"\u4E0A\u4E00\u9875",next_page:"\u4E0B\u4E00\u9875",prev_5:"\u5411\u524D 5 \u9875",next_5:"\u5411\u540E 5 \u9875",prev_3:"\u5411\u524D 3 \u9875",next_3:"\u5411\u540E 3 \u9875",page_size:"\u9875\u7801"}},19425:function(b,y,e){"use strict";e.d(y,{Z:function(){return le}});var a=e(60698),t=e(58757),o=e(42156),s=e(75556),n=e(57370),d=e(21319),l=e(69188),c=e(20759),m=new Map;function g(X){X.forEach(function(W){var x,O=W.target;(x=m.get(O))===null||x===void 0||x.forEach(function(_){return _(O)})})}var M=new c.Z(g),h=null,S=null;function w(X,W){m.has(X)||(m.set(X,new Set),M.observe(X)),m.get(X).add(W)}function C(X,W){m.has(X)&&(m.get(X).delete(W),m.get(X).size||(M.unobserve(X),m.delete(X)))}var z=e(60412),Z=e(14346),N=e(87498),L=e(73726),$=function(X){(0,N.Z)(x,X);var W=(0,L.Z)(x);function x(){return(0,z.Z)(this,x),W.apply(this,arguments)}return(0,Z.Z)(x,[{key:"render",value:function(){return this.props.children}}]),x}(t.Component),D=t.createContext(null);function T(X){var W=X.children,x=X.onBatchResize,O=t.useRef(0),_=t.useRef([]),U=t.useContext(D),A=t.useCallback(function(V,fe,pe){O.current+=1;var ge=O.current;_.current.push({size:V,element:fe,data:pe}),Promise.resolve().then(function(){ge===O.current&&(x==null||x(_.current),_.current=[])}),U==null||U(V,fe,pe)},[x,U]);return t.createElement(D.Provider,{value:A},W)}function j(X,W){var x=X.children,O=X.disabled,_=t.useRef(null),U=t.useRef(null),A=t.useContext(D),V=typeof x=="function",fe=V?x(_):x,pe=t.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),ge=!V&&t.isValidElement(fe)&&(0,d.Yr)(fe),be=ge?fe.ref:null,Te=t.useMemo(function(){return(0,d.sQ)(be,_)},[be,_]),Ge=function(){return(0,l.Z)(_.current)||(0,l.Z)(U.current)};t.useImperativeHandle(W,function(){return Ge()});var qe=t.useRef(X);qe.current=X;var Qe=t.useCallback(function(ht){var Et=qe.current,gt=Et.onResize,Ht=Et.data,$e=ht.getBoundingClientRect(),Xe=$e.width,rt=$e.height,Ke=ht.offsetWidth,ye=ht.offsetHeight,ne=Math.floor(Xe),H=Math.floor(rt);if(pe.current.width!==ne||pe.current.height!==H||pe.current.offsetWidth!==Ke||pe.current.offsetHeight!==ye){var R={width:ne,height:H,offsetWidth:Ke,offsetHeight:ye};pe.current=R;var P=Ke===Math.round(Xe)?Xe:Ke,ae=ye===Math.round(rt)?rt:ye,Q=(0,n.Z)((0,n.Z)({},R),{},{offsetWidth:P,offsetHeight:ae});A==null||A(Q,ht,Ht),gt&&Promise.resolve().then(function(){gt(Q,ht)})}},[]);return t.useEffect(function(){var ht=Ge();return ht&&!O&&w(ht,Qe),function(){return C(ht,Qe)}},[_.current,O]),t.createElement($,{ref:U},ge?t.cloneElement(fe,{ref:Te}):fe)}var G=t.forwardRef(j),k=G,te="rc-observer-key";function Y(X,W){var x=X.children,O=typeof x=="function"?[x]:(0,o.Z)(x);return O.map(function(_,U){var A=(_==null?void 0:_.key)||"".concat(te,"-").concat(U);return t.createElement(k,(0,a.Z)({},X,{key:A,ref:U===0?W:void 0}),_)})}var q=t.forwardRef(Y);q.Collection=T;var le=q},25092:function(b,y,e){"use strict";e.d(y,{ZP:function(){return l}});var a=e(28314),t=e(58757),o=e(19075),s=0,n=(0,o.Z)();function d(){var c;return n?(c=s,s+=1):c="TEST_OR_SSR",c}function l(c){var m=t.useState(),g=(0,a.Z)(m,2),M=g[0],h=g[1];return t.useEffect(function(){h("rc_select_".concat(d()))},[]),c||M}},18510:function(b,y,e){"use strict";e.d(y,{Ac:function(){return Ce},Xo:function(){return st},Wx:function(){return Ye},ZP:function(){return jt},lk:function(){return N}});var a=e(60698),t=e(29140),o=e(37734),s=e(57370),n=e(28314),d=e(47075),l=e(38790),c=e(60409),m=e(75556),g=e(58757),M=e(87608),h=e.n(M),S=e(81334),w=e(21618),C=e(29639),z=e(21319),Z=g.createContext(null);function N(){return g.useContext(Z)}function L(){var He=arguments.length>0&&arguments[0]!==void 0?arguments[0]:10,et=g.useState(!1),Zt=(0,n.Z)(et,2),Ut=Zt[0],Jt=Zt[1],ln=g.useRef(null),Mn=function(){window.clearTimeout(ln.current)};g.useEffect(function(){return Mn},[]);var gn=function(Gn,ar){Mn(),ln.current=window.setTimeout(function(){Jt(Gn),ar&&ar()},He)};return[Ut,gn,Mn]}function $(){var He=arguments.length>0&&arguments[0]!==void 0?arguments[0]:250,et=g.useRef(null),Zt=g.useRef(null);g.useEffect(function(){return function(){window.clearTimeout(Zt.current)}},[]);function Ut(Jt){(Jt||et.current===null)&&(et.current=Jt),window.clearTimeout(Zt.current),Zt.current=window.setTimeout(function(){et.current=null},He)}return[function(){return et.current},Ut]}function D(He,et,Zt,Ut){var Jt=g.useRef(null);Jt.current={open:et,triggerOpen:Zt,customizedTrigger:Ut},g.useEffect(function(){function ln(Mn){var gn;if(!((gn=Jt.current)!==null&&gn!==void 0&&gn.customizedTrigger)){var Yn=Mn.target;Yn.shadowRoot&&Mn.composed&&(Yn=Mn.composedPath()[0]||Yn),Jt.current.open&&He().filter(function(Gn){return Gn}).every(function(Gn){return!Gn.contains(Yn)&&Gn!==Yn})&&Jt.current.triggerOpen(!1)}}return window.addEventListener("mousedown",ln),function(){return window.removeEventListener("mousedown",ln)}},[])}var T=e(33926),j=e(9257),G=function(et){var Zt=et.className,Ut=et.customizeIcon,Jt=et.customizeIconProps,ln=et.onMouseDown,Mn=et.onClick,gn=et.children,Yn;return typeof Ut=="function"?Yn=Ut(Jt):Yn=Ut,g.createElement("span",{className:Zt,onMouseDown:function(ar){ar.preventDefault(),ln&&ln(ar)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:Mn,"aria-hidden":!0},Yn!==void 0?Yn:g.createElement("span",{className:h()(Zt.split(/\s+/).map(function(Gn){return"".concat(Gn,"-icon")}))},gn))},k=G,te=function(et,Zt){var Ut,Jt,ln=et.prefixCls,Mn=et.id,gn=et.inputElement,Yn=et.disabled,Gn=et.tabIndex,ar=et.autoFocus,gr=et.autoComplete,zt=et.editable,qt=et.activeDescendantId,rn=et.value,dn=et.maxLength,Cn=et.onKeyDown,on=et.onMouseDown,pt=et.onChange,mt=et.onPaste,sn=et.onCompositionStart,Kt=et.onCompositionEnd,tn=et.open,mn=et.attrs,fn=gn||g.createElement("input",null),kn=fn,qn=kn.ref,ct=kn.props,dt=ct.onKeyDown,It=ct.onChange,Ct=ct.onMouseDown,kt=ct.onCompositionStart,un=ct.onCompositionEnd,nn=ct.style;return(0,m.Kp)(!("maxLength"in fn.props),"Passing 'maxLength' to input element directly may not work because input in BaseSelect is controlled."),fn=g.cloneElement(fn,(0,s.Z)((0,s.Z)((0,s.Z)({type:"search"},ct),{},{id:Mn,ref:(0,z.sQ)(Zt,qn),disabled:Yn,tabIndex:Gn,autoComplete:gr||"off",autoFocus:ar,className:h()("".concat(ln,"-selection-search-input"),(Ut=fn)===null||Ut===void 0||(Jt=Ut.props)===null||Jt===void 0?void 0:Jt.className),role:"combobox","aria-label":"Search","aria-expanded":tn,"aria-haspopup":"listbox","aria-owns":"".concat(Mn,"_list"),"aria-autocomplete":"list","aria-controls":"".concat(Mn,"_list"),"aria-activedescendant":tn?qt:void 0},mn),{},{value:zt?rn:"",maxLength:dn,readOnly:!zt,unselectable:zt?null:"on",style:(0,s.Z)((0,s.Z)({},nn),{},{opacity:zt?null:0}),onKeyDown:function(Rn){Cn(Rn),dt&&dt(Rn)},onMouseDown:function(Rn){on(Rn),Ct&&Ct(Rn)},onChange:function(Rn){pt(Rn),It&&It(Rn)},onCompositionStart:function(Rn){sn(Rn),kt&&kt(Rn)},onCompositionEnd:function(Rn){Kt(Rn),un&&un(Rn)},onPaste:mt})),fn},Y=g.forwardRef(te);Y.displayName="Input";var q=Y;function le(He){return Array.isArray(He)?He:He!==void 0?[He]:[]}var X=typeof window!="undefined"&&window.document&&window.document.documentElement,W=X;function x(He){return He!=null}function O(He){return!He&&He!==0}function _(He){return["string","number"].includes((0,l.Z)(He))}function U(He){var et=void 0;return He&&(_(He.title)?et=He.title.toString():_(He.label)&&(et=He.label.toString())),et}function A(He,et){W?g.useLayoutEffect(He,et):g.useEffect(He,et)}function V(He){var et;return(et=He.key)!==null&&et!==void 0?et:He.value}var fe=function(et){et.preventDefault(),et.stopPropagation()},pe=function(et){var Zt=et.id,Ut=et.prefixCls,Jt=et.values,ln=et.open,Mn=et.searchValue,gn=et.autoClearSearchValue,Yn=et.inputRef,Gn=et.placeholder,ar=et.disabled,gr=et.mode,zt=et.showSearch,qt=et.autoFocus,rn=et.autoComplete,dn=et.activeDescendantId,Cn=et.tabIndex,on=et.removeIcon,pt=et.maxTagCount,mt=et.maxTagTextLength,sn=et.maxTagPlaceholder,Kt=sn===void 0?function(na){return"+ ".concat(na.length," ...")}:sn,tn=et.tagRender,mn=et.onToggleOpen,fn=et.onRemove,kn=et.onInputChange,qn=et.onInputPaste,ct=et.onInputKeyDown,dt=et.onInputMouseDown,It=et.onInputCompositionStart,Ct=et.onInputCompositionEnd,kt=g.useRef(null),un=(0,g.useState)(0),nn=(0,n.Z)(un,2),xn=nn[0],Rn=nn[1],Mr=(0,g.useState)(!1),er=(0,n.Z)(Mr,2),zn=er[0],Ur=er[1],pr="".concat(Ut,"-selection"),sa=ln||gr==="multiple"&&gn===!1||gr==="tags"?Mn:"",Nr=gr==="tags"||gr==="multiple"&&gn===!1||zt&&(ln||zn);A(function(){Rn(kt.current.scrollWidth)},[sa]);function Zn(na,pa,cr,Zr,Ea){return g.createElement("span",{className:h()("".concat(pr,"-item"),(0,o.Z)({},"".concat(pr,"-item-disabled"),cr)),title:U(na)},g.createElement("span",{className:"".concat(pr,"-item-content")},pa),Zr&&g.createElement(k,{className:"".concat(pr,"-item-remove"),onMouseDown:fe,onClick:Ea,customizeIcon:on},"\xD7"))}function In(na,pa,cr,Zr,Ea){var ha=function(Fn){fe(Fn),mn(!ln)};return g.createElement("span",{onMouseDown:ha},tn({label:pa,value:na,disabled:cr,closable:Zr,onClose:Ea}))}function Pn(na){var pa=na.disabled,cr=na.label,Zr=na.value,Ea=!ar&&!pa,ha=cr;if(typeof mt=="number"&&(typeof cr=="string"||typeof cr=="number")){var Wn=String(ha);Wn.length>mt&&(ha="".concat(Wn.slice(0,mt),"..."))}var Fn=function(Kr){Kr&&Kr.stopPropagation(),fn(na)};return typeof tn=="function"?In(Zr,ha,pa,Ea,Fn):Zn(na,ha,pa,Ea,Fn)}function rr(na){var pa=typeof Kt=="function"?Kt(na):Kt;return Zn({title:pa},pa,!1)}var br=g.createElement("div",{className:"".concat(pr,"-search"),style:{width:xn},onFocus:function(){Ur(!0)},onBlur:function(){Ur(!1)}},g.createElement(q,{ref:Yn,open:ln,prefixCls:Ut,id:Zt,inputElement:null,disabled:ar,autoFocus:qt,autoComplete:rn,editable:Nr,activeDescendantId:dn,value:sa,onKeyDown:ct,onMouseDown:dt,onChange:kn,onPaste:qn,onCompositionStart:It,onCompositionEnd:Ct,tabIndex:Cn,attrs:(0,T.Z)(et,!0)}),g.createElement("span",{ref:kt,className:"".concat(pr,"-search-mirror"),"aria-hidden":!0},sa,"\xA0")),Gr=g.createElement(j.Z,{prefixCls:"".concat(pr,"-overflow"),data:Jt,renderItem:Pn,renderRest:rr,suffix:br,itemKey:V,maxCount:pt});return g.createElement(g.Fragment,null,Gr,!Jt.length&&!sa&&g.createElement("span",{className:"".concat(pr,"-placeholder")},Gn))},ge=pe,be=function(et){var Zt=et.inputElement,Ut=et.prefixCls,Jt=et.id,ln=et.inputRef,Mn=et.disabled,gn=et.autoFocus,Yn=et.autoComplete,Gn=et.activeDescendantId,ar=et.mode,gr=et.open,zt=et.values,qt=et.placeholder,rn=et.tabIndex,dn=et.showSearch,Cn=et.searchValue,on=et.activeValue,pt=et.maxLength,mt=et.onInputKeyDown,sn=et.onInputMouseDown,Kt=et.onInputChange,tn=et.onInputPaste,mn=et.onInputCompositionStart,fn=et.onInputCompositionEnd,kn=et.title,qn=g.useState(!1),ct=(0,n.Z)(qn,2),dt=ct[0],It=ct[1],Ct=ar==="combobox",kt=Ct||dn,un=zt[0],nn=Cn||"";Ct&&on&&!dt&&(nn=on),g.useEffect(function(){Ct&&It(!1)},[Ct,on]);var xn=ar!=="combobox"&&!gr&&!dn?!1:!!nn,Rn=kn===void 0?U(un):kn,Mr=function(){if(un)return null;var zn=xn?{visibility:"hidden"}:void 0;return g.createElement("span",{className:"".concat(Ut,"-selection-placeholder"),style:zn},qt)};return g.createElement(g.Fragment,null,g.createElement("span",{className:"".concat(Ut,"-selection-search")},g.createElement(q,{ref:ln,prefixCls:Ut,id:Jt,open:gr,inputElement:Zt,disabled:Mn,autoFocus:gn,autoComplete:Yn,editable:kt,activeDescendantId:Gn,value:nn,onKeyDown:mt,onMouseDown:sn,onChange:function(zn){It(!0),Kt(zn)},onPaste:tn,onCompositionStart:mn,onCompositionEnd:fn,tabIndex:rn,attrs:(0,T.Z)(et,!0),maxLength:Ct?pt:void 0})),!Ct&&un?g.createElement("span",{className:"".concat(Ut,"-selection-item"),title:Rn,style:xn?{visibility:"hidden"}:void 0},un.label):null,Mr())},Te=be;function Ge(He){return![C.Z.ESC,C.Z.SHIFT,C.Z.BACKSPACE,C.Z.TAB,C.Z.WIN_KEY,C.Z.ALT,C.Z.META,C.Z.WIN_KEY_RIGHT,C.Z.CTRL,C.Z.SEMICOLON,C.Z.EQUALS,C.Z.CAPS_LOCK,C.Z.CONTEXT_MENU,C.Z.F1,C.Z.F2,C.Z.F3,C.Z.F4,C.Z.F5,C.Z.F6,C.Z.F7,C.Z.F8,C.Z.F9,C.Z.F10,C.Z.F11,C.Z.F12].includes(He)}var qe=function(et,Zt){var Ut=(0,g.useRef)(null),Jt=(0,g.useRef)(!1),ln=et.prefixCls,Mn=et.open,gn=et.mode,Yn=et.showSearch,Gn=et.tokenWithEnter,ar=et.autoClearSearchValue,gr=et.onSearch,zt=et.onSearchSubmit,qt=et.onToggleOpen,rn=et.onInputKeyDown,dn=et.domRef;g.useImperativeHandle(Zt,function(){return{focus:function(){Ut.current.focus()},blur:function(){Ut.current.blur()}}});var Cn=$(0),on=(0,n.Z)(Cn,2),pt=on[0],mt=on[1],sn=function(nn){var xn=nn.which;(xn===C.Z.UP||xn===C.Z.DOWN)&&nn.preventDefault(),rn&&rn(nn),xn===C.Z.ENTER&&gn==="tags"&&!Jt.current&&!Mn&&(zt==null||zt(nn.target.value)),Ge(xn)&&qt(!0)},Kt=function(){mt(!0)},tn=(0,g.useRef)(null),mn=function(nn){gr(nn,!0,Jt.current)!==!1&&qt(!0)},fn=function(){Jt.current=!0},kn=function(nn){Jt.current=!1,gn!=="combobox"&&mn(nn.target.value)},qn=function(nn){var xn=nn.target.value;if(Gn&&tn.current&&/[\r\n]/.test(tn.current)){var Rn=tn.current.replace(/[\r\n]+$/,"").replace(/\r\n/g," ").replace(/[\r\n]/g," ");xn=xn.replace(Rn,tn.current)}tn.current=null,mn(xn)},ct=function(nn){var xn=nn.clipboardData,Rn=xn.getData("text");tn.current=Rn},dt=function(nn){var xn=nn.target;if(xn!==Ut.current){var Rn=document.body.style.msTouchAction!==void 0;Rn?setTimeout(function(){Ut.current.focus()}):Ut.current.focus()}},It=function(nn){var xn=pt();nn.target!==Ut.current&&!xn&&gn!=="combobox"&&nn.preventDefault(),(gn!=="combobox"&&(!Yn||!xn)||!Mn)&&(Mn&&ar!==!1&&gr("",!0,!1),qt())},Ct={inputRef:Ut,onInputKeyDown:sn,onInputMouseDown:Kt,onInputChange:qn,onInputPaste:ct,onInputCompositionStart:fn,onInputCompositionEnd:kn},kt=gn==="multiple"||gn==="tags"?g.createElement(ge,(0,a.Z)({},et,Ct)):g.createElement(Te,(0,a.Z)({},et,Ct));return g.createElement("div",{ref:dn,className:"".concat(ln,"-selector"),onClick:dt,onMouseDown:It},kt)},Qe=g.forwardRef(qe);Qe.displayName="Selector";var ht=Qe,Et=e(99863),gt=["prefixCls","disabled","visible","children","popupElement","containerWidth","animation","transitionName","dropdownStyle","dropdownClassName","direction","placement","builtinPlacements","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","getPopupContainer","empty","getTriggerDOMNode","onPopupVisibleChange","onPopupMouseEnter"],Ht=function(et){var Zt=et===!0?0:1;return{bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:Zt,adjustY:1},htmlRegion:"scroll"},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:Zt,adjustY:1},htmlRegion:"scroll"},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:Zt,adjustY:1},htmlRegion:"scroll"},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:Zt,adjustY:1},htmlRegion:"scroll"}}},$e=function(et,Zt){var Ut=et.prefixCls,Jt=et.disabled,ln=et.visible,Mn=et.children,gn=et.popupElement,Yn=et.containerWidth,Gn=et.animation,ar=et.transitionName,gr=et.dropdownStyle,zt=et.dropdownClassName,qt=et.direction,rn=qt===void 0?"ltr":qt,dn=et.placement,Cn=et.builtinPlacements,on=et.dropdownMatchSelectWidth,pt=et.dropdownRender,mt=et.dropdownAlign,sn=et.getPopupContainer,Kt=et.empty,tn=et.getTriggerDOMNode,mn=et.onPopupVisibleChange,fn=et.onPopupMouseEnter,kn=(0,d.Z)(et,gt),qn="".concat(Ut,"-dropdown"),ct=gn;pt&&(ct=pt(gn));var dt=g.useMemo(function(){return Cn||Ht(on)},[Cn,on]),It=Gn?"".concat(qn,"-").concat(Gn):ar,Ct=g.useRef(null);g.useImperativeHandle(Zt,function(){return{getPopupElement:function(){return Ct.current}}});var kt=(0,s.Z)({minWidth:Yn},gr);return typeof on=="number"?kt.width=on:on&&(kt.width=Yn),g.createElement(Et.Z,(0,a.Z)({},kn,{showAction:mn?["click"]:[],hideAction:mn?["click"]:[],popupPlacement:dn||(rn==="rtl"?"bottomRight":"bottomLeft"),builtinPlacements:dt,prefixCls:qn,popupTransitionName:It,popup:g.createElement("div",{ref:Ct,onMouseEnter:fn},ct),popupAlign:mt,popupVisible:ln,getPopupContainer:sn,popupClassName:h()(zt,(0,o.Z)({},"".concat(qn,"-empty"),Kt)),popupStyle:kt,getTriggerDOMNode:tn,onPopupVisibleChange:mn}),Mn)},Xe=g.forwardRef($e);Xe.displayName="SelectTrigger";var rt=Xe,Ke=e(6747);function ye(He,et){var Zt=He.key,Ut;return"value"in He&&(Ut=He.value),Zt!=null?Zt:Ut!==void 0?Ut:"rc-index-key-".concat(et)}function ne(He,et){var Zt=He||{},Ut=Zt.label,Jt=Zt.value,ln=Zt.options,Mn=Zt.groupLabel,gn=Ut||(et?"children":"label");return{label:gn,value:Jt||"value",options:ln||"options",groupLabel:Mn||gn}}function H(He){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Zt=et.fieldNames,Ut=et.childrenAsData,Jt=[],ln=ne(Zt,!1),Mn=ln.label,gn=ln.value,Yn=ln.options,Gn=ln.groupLabel;function ar(gr,zt){gr.forEach(function(qt){if(zt||!(Yn in qt)){var rn=qt[gn];Jt.push({key:ye(qt,Jt.length),groupOption:zt,data:qt,label:qt[Mn],value:rn})}else{var dn=qt[Gn];dn===void 0&&Ut&&(dn=qt.label),Jt.push({key:ye(qt,Jt.length),group:!0,data:qt,label:dn}),ar(qt[Yn],!0)}})}return ar(He,!1),Jt}function R(He){var et=(0,s.Z)({},He);return"props"in et||Object.defineProperty(et,"props",{get:function(){return(0,m.ZP)(!1,"Return type is option instead of Option instance. Please read value directly instead of reading from `props`."),et}}),et}function P(He,et){if(!et||!et.length)return null;var Zt=!1;function Ut(ln,Mn){var gn=(0,Ke.Z)(Mn),Yn=gn[0],Gn=gn.slice(1);if(!Yn)return[ln];var ar=ln.split(Yn);return Zt=Zt||ar.length>1,ar.reduce(function(gr,zt){return[].concat((0,t.Z)(gr),(0,t.Z)(Ut(zt,Gn)))},[]).filter(function(gr){return gr})}var Jt=Ut(He,et);return Zt?Jt:null}function ae(He,et,Zt,Ut,Jt){var ln=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1,Mn=arguments.length>6?arguments[6]:void 0,gn=arguments.length>7?arguments[7]:void 0,Yn=g.useMemo(function(){if((0,l.Z)(Ut)==="object")return Ut.clearIcon;if(Jt)return Jt},[Ut,Jt]),Gn=g.useMemo(function(){return!!(!ln&&Ut&&(Zt.length||Mn)&&!(gn==="combobox"&&Mn===""))},[Ut,ln,Zt.length,Mn,gn]);return{allowClear:Gn,clearIcon:g.createElement(k,{className:"".concat(He,"-clear"),onMouseDown:et,customizeIcon:Yn},"\xD7")}}var Q=["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","suffixIcon","clearIcon","OptionList","animation","transitionName","dropdownStyle","dropdownClassName","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","placement","builtinPlacements","getPopupContainer","showAction","onFocus","onBlur","onKeyUp","onKeyDown","onMouseDown"],ie=["value","onChange","removeIcon","placeholder","autoFocus","maxTagCount","maxTagTextLength","maxTagPlaceholder","choiceTransitionName","onInputKeyDown","onPopupScroll","tabIndex"];function me(He){return He==="tags"||He==="multiple"}var je=g.forwardRef(function(He,et){var Zt,Ut,Jt=He.id,ln=He.prefixCls,Mn=He.className,gn=He.showSearch,Yn=He.tagRender,Gn=He.direction,ar=He.omitDomProps,gr=He.displayValues,zt=He.onDisplayValuesChange,qt=He.emptyOptions,rn=He.notFoundContent,dn=rn===void 0?"Not Found":rn,Cn=He.onClear,on=He.mode,pt=He.disabled,mt=He.loading,sn=He.getInputElement,Kt=He.getRawInputElement,tn=He.open,mn=He.defaultOpen,fn=He.onDropdownVisibleChange,kn=He.activeValue,qn=He.onActiveValueChange,ct=He.activeDescendantId,dt=He.searchValue,It=He.autoClearSearchValue,Ct=He.onSearch,kt=He.onSearchSplit,un=He.tokenSeparators,nn=He.allowClear,xn=He.suffixIcon,Rn=He.clearIcon,Mr=He.OptionList,er=He.animation,zn=He.transitionName,Ur=He.dropdownStyle,pr=He.dropdownClassName,sa=He.dropdownMatchSelectWidth,Nr=He.dropdownRender,Zn=He.dropdownAlign,In=He.placement,Pn=He.builtinPlacements,rr=He.getPopupContainer,br=He.showAction,Gr=br===void 0?[]:br,na=He.onFocus,pa=He.onBlur,cr=He.onKeyUp,Zr=He.onKeyDown,Ea=He.onMouseDown,ha=(0,d.Z)(He,Q),Wn=me(on),Fn=(gn!==void 0?gn:Wn)||on==="combobox",hr=(0,s.Z)({},ha);ie.forEach(function(no){delete hr[no]}),ar==null||ar.forEach(function(no){delete hr[no]});var Kr=g.useState(!1),Ar=(0,n.Z)(Kr,2),Pt=Ar[0],an=Ar[1];g.useEffect(function(){an((0,w.Z)())},[]);var pn=g.useRef(null),qa=g.useRef(null),Mo=g.useRef(null),Ua=g.useRef(null),Wa=g.useRef(null),Xa=L(),No=(0,n.Z)(Xa,3),$o=No[0],So=No[1],ft=No[2];g.useImperativeHandle(et,function(){var no,Qa;return{focus:(no=Ua.current)===null||no===void 0?void 0:no.focus,blur:(Qa=Ua.current)===null||Qa===void 0?void 0:Qa.blur,scrollTo:function(ai){var jo;return(jo=Wa.current)===null||jo===void 0?void 0:jo.scrollTo(ai)}}});var Rt=g.useMemo(function(){var no;if(on!=="combobox")return dt;var Qa=(no=gr[0])===null||no===void 0?void 0:no.value;return typeof Qa=="string"||typeof Qa=="number"?String(Qa):""},[dt,on,gr]),Ae=on==="combobox"&&typeof sn=="function"&&sn()||null,cn=typeof Kt=="function"&&Kt(),An=(0,z.x1)(qa,cn==null||(Zt=cn.props)===null||Zt===void 0?void 0:Zt.ref),hn=g.useState(!1),Xn=(0,n.Z)(hn,2),nr=Xn[0],Wr=Xn[1];(0,S.Z)(function(){Wr(!0)},[]);var Da=(0,c.Z)(!1,{defaultValue:mn,value:tn}),oa=(0,n.Z)(Da,2),Qr=oa[0],ra=oa[1],jr=nr?Qr:!1,$r=!dn&&qt;(pt||$r&&jr&&on==="combobox")&&(jr=!1);var fa=$r?!1:jr,Na=g.useCallback(function(no){var Qa=no!==void 0?no:!jr;pt||(ra(Qa),jr!==Qa&&(fn==null||fn(Qa)))},[pt,jr,ra,fn]),to=g.useMemo(function(){return(un||[]).some(function(no){return[` +`,`\r +`].includes(no)})},[un]),Ka=function(Qa,ti,ai){var jo=!0,Zo=Qa;qn==null||qn(null);var Ii=ai?null:P(Qa,un);return on!=="combobox"&&Ii&&(Zo="",kt==null||kt(Ii),Na(!1),jo=!1),Ct&&Rt!==Zo&&Ct(Zo,{source:ti?"typing":"effect"}),jo},Qt=function(Qa){!Qa||!Qa.trim()||Ct(Qa,{source:"submit"})};g.useEffect(function(){!jr&&!Wn&&on!=="combobox"&&Ka("",!1,!1)},[jr]),g.useEffect(function(){Qr&&pt&&ra(!1),pt&&So(!1)},[pt]);var Sn=$(),Dn=(0,n.Z)(Sn,2),Jn=Dn[0],fr=Dn[1],kr=function(Qa){var ti=Jn(),ai=Qa.which;if(ai===C.Z.ENTER&&(on!=="combobox"&&Qa.preventDefault(),jr||Na(!0)),fr(!!Rt),ai===C.Z.BACKSPACE&&!ti&&Wn&&!Rt&&gr.length){for(var jo=(0,t.Z)(gr),Zo=null,Ii=jo.length-1;Ii>=0;Ii-=1){var Ri=jo[Ii];if(!Ri.disabled){jo.splice(Ii,1),Zo=Ri;break}}Zo&&zt(jo,{type:"remove",values:[Zo]})}for(var ki=arguments.length,ws=new Array(ki>1?ki-1:0),ms=1;ms1?ti-1:0),jo=1;jo1?Ii-1:0),ki=1;ki1&&arguments[1]!==void 0?arguments[1]:!1;return(0,J.Z)(He).map(function(Zt,Ut){if(!g.isValidElement(Zt)||!Zt.type)return null;var Jt=Zt,ln=Jt.type.isSelectOptGroup,Mn=Jt.key,gn=Jt.props,Yn=gn.children,Gn=(0,d.Z)(gn,xe);return et||!ln?ce(Zt):(0,s.Z)((0,s.Z)({key:"__RC_SELECT_GRP__".concat(Mn===null?Ut:Mn,"__"),label:Mn},Gn),{},{options:Ne(Yn)})}).filter(function(Zt){return Zt})}function Oe(He,et,Zt,Ut,Jt){return g.useMemo(function(){var ln=He,Mn=!He;Mn&&(ln=Ne(et));var gn=new Map,Yn=new Map,Gn=function(zt,qt,rn){rn&&typeof rn=="string"&&zt.set(qt[rn],qt)};function ar(gr){for(var zt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,qt=0;qt1&&arguments[1]!==void 0?arguments[1]:1,rr=qn.length,br=0;br1&&arguments[1]!==void 0?arguments[1]:!1;xn(In);var rr={source:Pn?"keyboard":"mouse"},br=qn[In];if(!br){dn(null,-1,rr);return}dn(br.value,In,rr)};(0,g.useEffect)(function(){Rn(Cn!==!1?Ct(0):-1)},[qn.length,Gn]);var Mr=g.useCallback(function(Zn){return mt.has(Zn)&&Yn!=="combobox"},[Yn,(0,t.Z)(mt).toString(),mt.size]);(0,g.useEffect)(function(){var Zn=setTimeout(function(){if(!gn&&Mn&&mt.size===1){var Pn=Array.from(mt)[0],rr=qn.findIndex(function(br){var Gr=br.data;return Gr.value===Pn});rr!==-1&&(Rn(rr),It(rr))}});if(Mn){var In;(In=ct.current)===null||In===void 0||In.scrollTo(void 0)}return function(){return clearTimeout(Zn)}},[Mn,Gn,rn.length]);var er=function(In){In!==void 0&&on(In,{selected:!mt.has(In)}),gn||ar(!1)};if(g.useImperativeHandle(Zt,function(){return{onKeyDown:function(In){var Pn=In.which,rr=In.ctrlKey;switch(Pn){case C.Z.N:case C.Z.P:case C.Z.UP:case C.Z.DOWN:{var br=0;if(Pn===C.Z.UP?br=-1:Pn===C.Z.DOWN?br=1:_t()&&rr&&(Pn===C.Z.N?br=1:Pn===C.Z.P&&(br=-1)),br!==0){var Gr=Ct(nn+br,br);It(Gr),Rn(Gr,!0)}break}case C.Z.ENTER:{var na=qn[nn];na&&!na.data.disabled?er(na.value):er(void 0),Mn&&In.preventDefault();break}case C.Z.ESC:ar(!1),Mn&&In.stopPropagation()}},onKeyUp:function(){},scrollTo:function(In){It(In)}}}),qn.length===0)return g.createElement("div",{role:"listbox",id:"".concat(ln,"_list"),className:"".concat(kn,"-empty"),onMouseDown:dt},gr);var zn=Object.keys(sn).map(function(Zn){return sn[Zn]}),Ur=function(In){return In.label};function pr(Zn,In){var Pn=Zn.group;return{role:Pn?"presentation":"option",id:"".concat(ln,"_list_").concat(In)}}var sa=function(In){var Pn=qn[In];if(!Pn)return null;var rr=Pn.data||{},br=rr.value,Gr=Pn.group,na=(0,T.Z)(rr,!0),pa=Ur(Pn);return Pn?g.createElement("div",(0,a.Z)({"aria-label":typeof pa=="string"&&!Gr?pa:null},na,{key:In},pr(Pn,In),{"aria-selected":Mr(br)}),br):null},Nr={role:"listbox",id:"".concat(ln,"_list")};return g.createElement(g.Fragment,null,Kt&&g.createElement("div",(0,a.Z)({},Nr,{style:{height:0,width:0,overflow:"hidden"}}),sa(nn-1),sa(nn),sa(nn+1)),g.createElement(it.Z,{itemKey:"key",ref:ct,data:qn,height:mn,itemHeight:fn,fullHeight:!1,onMouseDown:dt,onScroll:zt,virtual:Kt,direction:tn,innerProps:Kt?null:Nr},function(Zn,In){var Pn,rr=Zn.group,br=Zn.groupOption,Gr=Zn.data,na=Zn.label,pa=Zn.value,cr=Gr.key;if(rr){var Zr,Ea=(Zr=Gr.title)!==null&&Zr!==void 0?Zr:wt(na)?na.toString():void 0;return g.createElement("div",{className:h()(kn,"".concat(kn,"-group")),title:Ea},na!==void 0?na:cr)}var ha=Gr.disabled,Wn=Gr.title,Fn=Gr.children,hr=Gr.style,Kr=Gr.className,Ar=(0,d.Z)(Gr,Ot),Pt=(0,Be.Z)(Ar,zn),an=Mr(pa),pn="".concat(kn,"-option"),qa=h()(kn,pn,Kr,(Pn={},(0,o.Z)(Pn,"".concat(pn,"-grouped"),br),(0,o.Z)(Pn,"".concat(pn,"-active"),nn===In&&!ha),(0,o.Z)(Pn,"".concat(pn,"-disabled"),ha),(0,o.Z)(Pn,"".concat(pn,"-selected"),an),Pn)),Mo=Ur(Zn),Ua=!pt||typeof pt=="function"||an,Wa=typeof Mo=="number"?Mo:Mo||pa,Xa=wt(Wa)?Wa.toString():void 0;return Wn!==void 0&&(Xa=Wn),g.createElement("div",(0,a.Z)({},(0,T.Z)(Pt),Kt?{}:pr(Zn,In),{"aria-selected":an,className:qa,title:Xa,onMouseMove:function(){nn===In||ha||Rn(In)},onClick:function(){ha||er(pa)},style:hr}),g.createElement("div",{className:"".concat(pn,"-content")},Wa),g.isValidElement(pt)||an,Ua&&g.createElement(k,{className:"".concat(kn,"-option-state"),customizeIcon:pt,customizeIconProps:{isSelected:an}},an?"\u2713":null))}))},bt=g.forwardRef(Yt);bt.displayName="OptionList";var ze=bt;function nt(He){var et=He.mode,Zt=He.options,Ut=He.children,Jt=He.backfill,ln=He.allowClear,Mn=He.placeholder,gn=He.getInputElement,Yn=He.showSearch,Gn=He.onSearch,ar=He.defaultOpen,gr=He.autoFocus,zt=He.labelInValue,qt=He.value,rn=He.inputValue,dn=He.optionLabelProp,Cn=isMultiple(et),on=Yn!==void 0?Yn:Cn||et==="combobox",pt=Zt||convertChildrenToData(Ut);if(warning(et!=="tags"||pt.every(function(tn){return!tn.disabled}),"Please avoid setting option to disabled in tags mode since user can always type text as tag."),et==="tags"||et==="combobox"){var mt=pt.some(function(tn){return tn.options?tn.options.some(function(mn){return typeof("value"in mn?mn.value:mn.key)=="number"}):typeof("value"in tn?tn.value:tn.key)=="number"});warning(!mt,"`value` of Option should not use number type when `mode` is `tags` or `combobox`.")}if(warning(et!=="combobox"||!dn,"`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly."),warning(et==="combobox"||!Jt,"`backfill` only works with `combobox` mode."),warning(et==="combobox"||!gn,"`getInputElement` only work with `combobox` mode."),noteOnce(et!=="combobox"||!gn||!ln||!Mn,"Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`."),Gn&&!on&&et!=="combobox"&&et!=="tags"&&warning(!1,"`onSearch` should work with `showSearch` instead of use alone."),noteOnce(!ar||gr,"`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autoFocus` if needed."),qt!=null){var sn=toArray(qt);warning(!zt||sn.every(function(tn){return _typeof(tn)==="object"&&("key"in tn||"value"in tn)}),"`value` should in shape of `{ value: string | number, label?: ReactNode }` when you set `labelInValue` to `true`"),warning(!Cn||Array.isArray(qt),"`value` should be array when `mode` is `multiple` or `tags`")}if(Ut){var Kt=null;toNodeArray(Ut).some(function(tn){if(!React.isValidElement(tn)||!tn.type)return!1;var mn=tn,fn=mn.type;if(fn.isSelectOption)return!1;if(fn.isSelectOptGroup){var kn=toNodeArray(tn.props.children).every(function(qn){return!React.isValidElement(qn)||!tn.type||qn.type.isSelectOption?!0:(Kt=qn.type,!1)});return!kn}return Kt=fn,!0}),Kt&&warning(!1,"`children` should be `Select.Option` or `Select.OptGroup` instead of `".concat(Kt.displayName||Kt.name||Kt,"`.")),warning(rn===void 0,"`inputValue` is deprecated, please use `searchValue` instead.")}}function St(He,et){if(He){var Zt=function Ut(Jt){for(var ln=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,Mn=0;Mn2&&arguments[2]!==void 0?arguments[2]:{},Na=fa.source,to=Na===void 0?"keyboard":Na;An($r),Mn&&Ut==="combobox"&&jr!==null&&to==="keyboard"&&ft(String(jr))},[Mn,Ut]),nr=function($r,fa,Na){var to=function(){var Hr,ca=Kr($r);return[nn?{label:ca==null?void 0:ca[pr.label],value:$r,key:(Hr=ca==null?void 0:ca.key)!==null&&Hr!==void 0?Hr:$r}:$r,R(ca)]};if(fa&&qt){var Ka=to(),Qt=(0,n.Z)(Ka,2),Sn=Qt[0],Dn=Qt[1];qt(Sn,Dn)}else if(!fa&&rn&&Na!=="clear"){var Jn=to(),fr=(0,n.Z)(Jn,2),kr=fr[0],Jr=fr[1];rn(kr,Jr)}},Wr=we(function(jr,$r){var fa,Na=er?$r.selected:!0;Na?fa=er?[].concat((0,t.Z)(hr),[jr]):[jr]:fa=hr.filter(function(to){return to.value!==jr}),Xa(fa),nr(jr,Na),Ut==="combobox"?ft(""):(!me||zt)&&(In(""),ft(""))}),Da=function($r,fa){Xa($r);var Na=fa.type,to=fa.values;(Na==="remove"||Na==="clear")&&to.forEach(function(Ka){nr(Ka.value,!1,Na)})},oa=function($r,fa){if(In($r),ft(null),fa.source==="submit"){var Na=($r||"").trim();if(Na){var to=Array.from(new Set([].concat((0,t.Z)(Pt),[Na])));Xa(to),nr(Na,!0),In("")}return}fa.source!=="blur"&&(Ut==="combobox"&&Xa($r),ar==null||ar($r))},Qr=function($r){var fa=$r;Ut!=="tags"&&(fa=$r.map(function(to){var Ka=br.get(to);return Ka==null?void 0:Ka.value}).filter(function(to){return to!==void 0}));var Na=Array.from(new Set([].concat((0,t.Z)(Pt),(0,t.Z)(fa))));Xa(Na),Na.forEach(function(to){nr(to,!0)})},ra=g.useMemo(function(){var jr=kn!==!1&&Cn!==!1;return(0,s.Z)((0,s.Z)({},Pn),{},{flattenOptions:Wa,onActiveValue:Xn,defaultActiveFirstOption:hn,onSelect:Wr,menuItemSelectedIcon:fn,rawValues:Pt,fieldNames:pr,virtual:jr,direction:qn,listHeight:dt,listItemHeight:Ct,childrenAsData:zn})},[Pn,Wa,Xn,hn,Wr,fn,Pt,pr,kn,Cn,dt,Ct,zn]);return g.createElement(xt.Provider,{value:ra},g.createElement(Ce,(0,a.Z)({},Rn,{id:Mr,prefixCls:ln,ref:et,omitDomProps:Nt,mode:Ut,displayValues:Ar,onDisplayValuesChange:Da,direction:qn,searchValue:Zn,onSearch:oa,autoClearSearchValue:zt,onSearchSplit:Qr,dropdownMatchSelectWidth:Cn,OptionList:ze,emptyOptions:!Wa.length,activeValue:So,activeDescendantId:"".concat(Mr,"_list_").concat(cn)})))}),Ee=Ie;Ee.Option=Ye,Ee.OptGroup=st;var Mt=Ee,jt=Mt},9457:function(b,y,e){"use strict";e.d(y,{Z:function(){return _}});var a=e(60698),t=e(57370),o=e(37734),s=e(38790),n=e(28314),d=e(47075),l=e(29140),c=e(87608),m=e.n(c),g=e(19570),M=e(33615),h=e(60409),S=e(58757),w=e(19425),C=e(81334),z=e(61834),Z=` + min-height:0 !important; + max-height:none !important; + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; + pointer-events: none !important; +`,N=["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","white-space"],L={},$;function D(U){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,V=U.getAttribute("id")||U.getAttribute("data-reactid")||U.getAttribute("name");if(A&&L[V])return L[V];var fe=window.getComputedStyle(U),pe=fe.getPropertyValue("box-sizing")||fe.getPropertyValue("-moz-box-sizing")||fe.getPropertyValue("-webkit-box-sizing"),ge=parseFloat(fe.getPropertyValue("padding-bottom"))+parseFloat(fe.getPropertyValue("padding-top")),be=parseFloat(fe.getPropertyValue("border-bottom-width"))+parseFloat(fe.getPropertyValue("border-top-width")),Te=N.map(function(qe){return"".concat(qe,":").concat(fe.getPropertyValue(qe))}).join(";"),Ge={sizingStyle:Te,paddingSize:ge,borderSize:be,boxSizing:pe};return A&&V&&(L[V]=Ge),Ge}function T(U){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,V=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,fe=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;$||($=document.createElement("textarea"),$.setAttribute("tab-index","-1"),$.setAttribute("aria-hidden","true"),document.body.appendChild($)),U.getAttribute("wrap")?$.setAttribute("wrap",U.getAttribute("wrap")):$.removeAttribute("wrap");var pe=D(U,A),ge=pe.paddingSize,be=pe.borderSize,Te=pe.boxSizing,Ge=pe.sizingStyle;$.setAttribute("style","".concat(Ge,";").concat(Z)),$.value=U.value||U.placeholder||"";var qe=void 0,Qe=void 0,ht,Et=$.scrollHeight;if(Te==="border-box"?Et+=be:Te==="content-box"&&(Et-=ge),V!==null||fe!==null){$.value=" ";var gt=$.scrollHeight-ge;V!==null&&(qe=gt*V,Te==="border-box"&&(qe=qe+ge+be),Et=Math.max(qe,Et)),fe!==null&&(Qe=gt*fe,Te==="border-box"&&(Qe=Qe+ge+be),ht=Et>Qe?"":"hidden",Et=Math.min(Qe,Et))}var Ht={height:Et,overflowY:ht,resize:"none"};return qe&&(Ht.minHeight=qe),Qe&&(Ht.maxHeight=Qe),Ht}var j=["prefixCls","onPressEnter","defaultValue","value","autoSize","onResize","className","style","disabled","onChange","onInternalAutoSize"],G=0,k=1,te=2,Y=S.forwardRef(function(U,A){var V=U,fe=V.prefixCls,pe=V.onPressEnter,ge=V.defaultValue,be=V.value,Te=V.autoSize,Ge=V.onResize,qe=V.className,Qe=V.style,ht=V.disabled,Et=V.onChange,gt=V.onInternalAutoSize,Ht=(0,d.Z)(V,j),$e=(0,h.Z)(ge,{value:be,postState:function(st){return st!=null?st:""}}),Xe=(0,n.Z)($e,2),rt=Xe[0],Ke=Xe[1],ye=function(st){Ke(st.target.value),Et==null||Et(st)},ne=S.useRef();S.useImperativeHandle(A,function(){return{textArea:ne.current}});var H=S.useMemo(function(){return Te&&(0,s.Z)(Te)==="object"?[Te.minRows,Te.maxRows]:[]},[Te]),R=(0,n.Z)(H,2),P=R[0],ae=R[1],Q=!!Te,ie=function(){try{if(document.activeElement===ne.current){var st=ne.current,tt=st.selectionStart,Ye=st.selectionEnd,ke=st.scrollTop;ne.current.setSelectionRange(tt,Ye),ne.current.scrollTop=ke}}catch(Be){}},me=S.useState(te),je=(0,n.Z)(me,2),Ce=je[0],Se=je[1],We=S.useState(),re=(0,n.Z)(We,2),se=re[0],J=re[1],de=function(){Se(G)};(0,C.Z)(function(){Q&&de()},[be,P,ae,Q]),(0,C.Z)(function(){if(Ce===G)Se(k);else if(Ce===k){var Re=T(ne.current,!1,P,ae);Se(te),J(Re)}else ie()},[Ce]);var xe=S.useRef(),ce=function(){z.Z.cancel(xe.current)},Ne=function(st){Ce===te&&(Ge==null||Ge(st),Te&&(ce(),xe.current=(0,z.Z)(function(){de()})))};S.useEffect(function(){return ce},[]);var Oe=Q?se:null,we=(0,t.Z)((0,t.Z)({},Qe),Oe);return(Ce===G||Ce===k)&&(we.overflowY="hidden",we.overflowX="hidden"),S.createElement(w.Z,{onResize:Ne,disabled:!(Te||Ge)},S.createElement("textarea",(0,a.Z)({},Ht,{ref:ne,style:we,className:m()(fe,qe,(0,o.Z)({},"".concat(fe,"-disabled"),ht)),disabled:ht,value:rt,onChange:ye})))}),q=Y,le=["defaultValue","value","onFocus","onBlur","onChange","allowClear","maxLength","onCompositionStart","onCompositionEnd","suffix","prefixCls","classes","showCount","className","style","disabled","hidden","classNames","styles","onResize"];function X(U,A){return(0,l.Z)(U||"").slice(0,A).join("")}function W(U,A,V,fe){var pe=V;return U?pe=X(V,fe):(0,l.Z)(A||"").lengthfe&&(pe=A),pe}var x=S.forwardRef(function(U,A){var V,fe=U.defaultValue,pe=U.value,ge=U.onFocus,be=U.onBlur,Te=U.onChange,Ge=U.allowClear,qe=U.maxLength,Qe=U.onCompositionStart,ht=U.onCompositionEnd,Et=U.suffix,gt=U.prefixCls,Ht=gt===void 0?"rc-textarea":gt,$e=U.classes,Xe=U.showCount,rt=U.className,Ke=U.style,ye=U.disabled,ne=U.hidden,H=U.classNames,R=U.styles,P=U.onResize,ae=(0,d.Z)(U,le),Q=(0,h.Z)(fe,{value:pe,defaultValue:fe}),ie=(0,n.Z)(Q,2),me=ie[0],je=ie[1],Ce=(0,S.useRef)(null),Se=S.useState(!1),We=(0,n.Z)(Se,2),re=We[0],se=We[1],J=S.useState(!1),de=(0,n.Z)(J,2),xe=de[0],ce=de[1],Ne=S.useRef(),Oe=S.useRef(0),we=S.useState(null),Re=(0,n.Z)(we,2),st=Re[0],tt=Re[1],Ye=function(){var At;(At=Ce.current)===null||At===void 0||At.textArea.focus()};(0,S.useImperativeHandle)(A,function(){return{resizableTextArea:Ce.current,focus:Ye,blur:function(){var At;(At=Ce.current)===null||At===void 0||At.textArea.blur()}}}),(0,S.useEffect)(function(){se(function(Nt){return!ye&&Nt})},[ye]);var ke=Number(qe)>0,Be=function(At){ce(!0),Ne.current=me,Oe.current=At.currentTarget.selectionStart,Qe==null||Qe(At)},it=function(At){ce(!1);var Ie=At.currentTarget.value;if(ke){var Ee,Mt=Oe.current>=qe+1||Oe.current===((Ee=Ne.current)===null||Ee===void 0?void 0:Ee.length);Ie=W(Mt,Ne.current,Ie,qe)}Ie!==me&&(je(Ie),(0,M.rJ)(At.currentTarget,At,Te,Ie)),ht==null||ht(At)},Ve=function(At){var Ie=At.target.value;if(!xe&&ke){var Ee=At.target.selectionStart>=qe+1||At.target.selectionStart===Ie.length||!At.target.selectionStart;Ie=W(Ee,me,Ie,qe)}je(Ie),(0,M.rJ)(At.currentTarget,At,Te,Ie)},xt=function(At){var Ie=ae.onPressEnter,Ee=ae.onKeyDown;At.key==="Enter"&&Ie&&Ie(At),Ee==null||Ee(At)},_t=function(At){se(!0),ge==null||ge(At)},Ot=function(At){se(!1),be==null||be(At)},wt=function(At){var Ie;je(""),Ye(),(0,M.rJ)((Ie=Ce.current)===null||Ie===void 0?void 0:Ie.textArea,At,Te)},Yt=(0,M.D7)(me);!xe&&ke&&pe==null&&(Yt=X(Yt,qe));var bt=Et,ze;if(Xe){var nt=(0,l.Z)(Yt).length;(0,s.Z)(Xe)==="object"?ze=Xe.formatter({value:Yt,count:nt,maxLength:qe}):ze="".concat(nt).concat(ke?" / ".concat(qe):""),bt=S.createElement(S.Fragment,null,bt,S.createElement("span",{className:m()("".concat(Ht,"-data-count"),H==null?void 0:H.count),style:R==null?void 0:R.count},ze))}var St=function(At){var Ie;P==null||P(At),(Ie=Ce.current)!==null&&Ie!==void 0&&Ie.textArea.style.height&&tt(!0)},ut=!ae.autoSize&&!Xe&&!Ge,Vt=S.createElement(g.Q,{value:Yt,allowClear:Ge,handleReset:wt,suffix:bt,prefixCls:Ht,classes:{affixWrapper:m()($e==null?void 0:$e.affixWrapper,(V={},(0,o.Z)(V,"".concat(Ht,"-show-count"),Xe),(0,o.Z)(V,"".concat(Ht,"-textarea-allow-clear"),Ge),V))},disabled:ye,focused:re,className:rt,style:(0,t.Z)((0,t.Z)({},Ke),st&&!ut?{height:"auto"}:{}),dataAttrs:{affixWrapper:{"data-count":typeof ze=="string"?ze:void 0}},hidden:ne,inputElement:S.createElement(q,(0,a.Z)({},ae,{onKeyDown:xt,onChange:Ve,onFocus:_t,onBlur:Ot,onCompositionStart:Be,onCompositionEnd:it,className:H==null?void 0:H.textarea,style:(0,t.Z)((0,t.Z)({},R==null?void 0:R.textarea),{},{resize:Ke==null?void 0:Ke.resize}),disabled:ye,prefixCls:Ht,onResize:St,ref:Ce}))});return Vt}),O=x,_=O},33664:function(b,y,e){"use strict";e.d(y,{G:function(){return S},Z:function(){return Z}});var a=e(60698),t=e(57370),o=e(47075),s=e(99863),n=e(58757),d={shiftX:64,adjustY:1},l={adjustX:1,shiftY:!0},c=[0,0],m={left:{points:["cr","cl"],overflow:l,offset:[-4,0],targetOffset:c},right:{points:["cl","cr"],overflow:l,offset:[4,0],targetOffset:c},top:{points:["bc","tc"],overflow:d,offset:[0,-4],targetOffset:c},bottom:{points:["tc","bc"],overflow:d,offset:[0,4],targetOffset:c},topLeft:{points:["bl","tl"],overflow:d,offset:[0,-4],targetOffset:c},leftTop:{points:["tr","tl"],overflow:l,offset:[-4,0],targetOffset:c},topRight:{points:["br","tr"],overflow:d,offset:[0,-4],targetOffset:c},rightTop:{points:["tl","tr"],overflow:l,offset:[4,0],targetOffset:c},bottomRight:{points:["tr","br"],overflow:d,offset:[0,4],targetOffset:c},rightBottom:{points:["bl","br"],overflow:l,offset:[4,0],targetOffset:c},bottomLeft:{points:["tl","bl"],overflow:d,offset:[0,4],targetOffset:c},leftBottom:{points:["br","bl"],overflow:l,offset:[-4,0],targetOffset:c}},g=null,M=e(87608),h=e.n(M);function S(N){var L=N.children,$=N.prefixCls,D=N.id,T=N.overlayInnerStyle,j=N.className,G=N.style;return n.createElement("div",{className:h()("".concat($,"-content"),j),style:G},n.createElement("div",{className:"".concat($,"-inner"),id:D,role:"tooltip",style:T},typeof L=="function"?L():L))}var w=["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle","arrowContent","overlay","id","showArrow"],C=function(L,$){var D=L.overlayClassName,T=L.trigger,j=T===void 0?["hover"]:T,G=L.mouseEnterDelay,k=G===void 0?0:G,te=L.mouseLeaveDelay,Y=te===void 0?.1:te,q=L.overlayStyle,le=L.prefixCls,X=le===void 0?"rc-tooltip":le,W=L.children,x=L.onVisibleChange,O=L.afterVisibleChange,_=L.transitionName,U=L.animation,A=L.motion,V=L.placement,fe=V===void 0?"right":V,pe=L.align,ge=pe===void 0?{}:pe,be=L.destroyTooltipOnHide,Te=be===void 0?!1:be,Ge=L.defaultVisible,qe=L.getTooltipContainer,Qe=L.overlayInnerStyle,ht=L.arrowContent,Et=L.overlay,gt=L.id,Ht=L.showArrow,$e=Ht===void 0?!0:Ht,Xe=(0,o.Z)(L,w),rt=(0,n.useRef)(null);(0,n.useImperativeHandle)($,function(){return rt.current});var Ke=(0,t.Z)({},Xe);"visible"in L&&(Ke.popupVisible=L.visible);var ye=function(){return n.createElement(S,{key:"content",prefixCls:X,id:gt,overlayInnerStyle:Qe},Et)};return n.createElement(s.Z,(0,a.Z)({popupClassName:D,prefixCls:X,popup:ye,action:j,builtinPlacements:m,popupPlacement:fe,ref:rt,popupAlign:ge,getPopupContainer:qe,onPopupVisibleChange:x,afterPopupVisibleChange:O,popupTransitionName:_,popupAnimation:U,popupMotion:A,defaultPopupVisible:Ge,autoDestroy:Te,mouseLeaveDelay:Y,popupStyle:q,mouseEnterDelay:k,arrow:$e},Ke),W)},z=(0,n.forwardRef)(C),Z=z},42156:function(b,y,e){"use strict";e.d(y,{Z:function(){return o}});var a=e(58757),t=e(99415);function o(s){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=[];return a.Children.forEach(s,function(l){l==null&&!n.keepEmpty||(Array.isArray(l)?d=d.concat(o(l)):(0,t.isFragment)(l)&&l.props?d=d.concat(o(l.props.children,n)):d.push(l))}),d}},19075:function(b,y,e){"use strict";e.d(y,{Z:function(){return a}});function a(){return!!(typeof window!="undefined"&&window.document&&window.document.createElement)}},70700:function(b,y,e){"use strict";e.d(y,{Z:function(){return a}});function a(t,o){if(!t)return!1;if(t.contains)return t.contains(o);for(var s=o;s;){if(s===t)return!0;s=s.parentNode}return!1}},39678:function(b,y,e){"use strict";e.d(y,{hq:function(){return z},jL:function(){return S}});var a=e(19075),t=e(70700),o="data-rc-order",s="data-rc-priority",n="rc-util-key",d=new Map;function l(){var Z=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},N=Z.mark;return N?N.startsWith("data-")?N:"data-".concat(N):n}function c(Z){if(Z.attachTo)return Z.attachTo;var N=document.querySelector("head");return N||document.body}function m(Z){return Z==="queue"?"prependQueue":Z?"prepend":"append"}function g(Z){return Array.from((d.get(Z)||Z).children).filter(function(N){return N.tagName==="STYLE"})}function M(Z){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!(0,a.Z)())return null;var L=N.csp,$=N.prepend,D=N.priority,T=D===void 0?0:D,j=m($),G=j==="prependQueue",k=document.createElement("style");k.setAttribute(o,j),G&&T&&k.setAttribute(s,"".concat(T)),L!=null&&L.nonce&&(k.nonce=L==null?void 0:L.nonce),k.innerHTML=Z;var te=c(N),Y=te.firstChild;if($){if(G){var q=g(te).filter(function(le){if(!["prepend","prependQueue"].includes(le.getAttribute(o)))return!1;var X=Number(le.getAttribute(s)||0);return T>=X});if(q.length)return te.insertBefore(k,q[q.length-1].nextSibling),k}te.insertBefore(k,Y)}else te.appendChild(k);return k}function h(Z){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},L=c(N);return g(L).find(function($){return $.getAttribute(l(N))===Z})}function S(Z){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},L=h(Z,N);if(L){var $=c(N);$.removeChild(L)}}function w(Z,N){var L=d.get(Z);if(!L||!(0,t.Z)(document,L)){var $=M("",N),D=$.parentNode;d.set(Z,D),Z.removeChild($)}}function C(){d.clear()}function z(Z,N){var L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},$=c(L);w($,L);var D=h(N,L);if(D){var T,j;if((T=L.csp)!==null&&T!==void 0&&T.nonce&&D.nonce!==((j=L.csp)===null||j===void 0?void 0:j.nonce)){var G;D.nonce=(G=L.csp)===null||G===void 0?void 0:G.nonce}return D.innerHTML!==Z&&(D.innerHTML=Z),D}var k=M(Z,L);return k.setAttribute(l(L),N),k}},69188:function(b,y,e){"use strict";e.d(y,{S:function(){return o},Z:function(){return s}});var a=e(58757),t=e(26736);function o(n){return n instanceof HTMLElement||n instanceof SVGElement}function s(n){return o(n)?n:n instanceof a.Component?t.findDOMNode(n):null}},46499:function(b,y){"use strict";y.Z=function(e){if(!e)return!1;if(e instanceof Element){if(e.offsetParent)return!0;if(e.getBBox){var a=e.getBBox(),t=a.width,o=a.height;if(t||o)return!0}if(e.getBoundingClientRect){var s=e.getBoundingClientRect(),n=s.width,d=s.height;if(n||d)return!0}}return!1}},4171:function(b,y,e){"use strict";e.d(y,{A:function(){return o}});function a(s){var n;return s==null||(n=s.getRootNode)===null||n===void 0?void 0:n.call(s)}function t(s){return a(s)instanceof ShadowRoot}function o(s){return t(s)?a(s):null}},29639:function(b,y){"use strict";var e={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 o=t.keyCode;if(t.altKey&&!t.ctrlKey||t.metaKey||o>=e.F1&&o<=e.F12)return!1;switch(o){case e.ALT:case e.CAPS_LOCK:case e.CONTEXT_MENU:case e.CTRL:case e.DOWN:case e.END:case e.ESC:case e.HOME:case e.INSERT:case e.LEFT:case e.MAC_FF_META:case e.META:case e.NUMLOCK:case e.NUM_CENTER:case e.PAGE_DOWN:case e.PAGE_UP:case e.PAUSE:case e.PRINT_SCREEN:case e.RIGHT:case e.SHIFT:case e.UP:case e.WIN_KEY:case e.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(t){if(t>=e.ZERO&&t<=e.NINE||t>=e.NUM_ZERO&&t<=e.NUM_MULTIPLY||t>=e.A&&t<=e.Z||window.navigator.userAgent.indexOf("WebKit")!==-1&&t===0)return!0;switch(t){case e.SPACE:case e.QUESTION_MARK:case e.NUM_PLUS:case e.NUM_MINUS:case e.NUM_PERIOD:case e.NUM_DIVISION:case e.SEMICOLON:case e.DASH:case e.EQUALS:case e.COMMA:case e.PERIOD:case e.SLASH:case e.APOSTROPHE:case e.SINGLE_QUOTE:case e.OPEN_SQUARE_BRACKET:case e.BACKSLASH:case e.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};y.Z=e},52323:function(b,y,e){"use strict";var a;e.d(y,{s:function(){return N},v:function(){return j}});var t=e(74632),o=e(79290),s=e(38790),n=e(57370),d=e(26736),l=(0,n.Z)({},a||(a=e.t(d,2))),c=l.version,m=l.render,g=l.unmountComponentAtNode,M;try{var h=Number((c||"").split(".")[0]);h>=18&&(M=l.createRoot)}catch(k){}function S(k){var te=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;te&&(0,s.Z)(te)==="object"&&(te.usingClientEntryPoint=k)}var w="__rc_react_root__";function C(k,te){S(!0);var Y=te[w]||M(te);S(!1),Y.render(k),te[w]=Y}function z(k,te){m(k,te)}function Z(k,te){}function N(k,te){if(M){C(k,te);return}z(k,te)}function L(k){return $.apply(this,arguments)}function $(){return $=(0,o.Z)((0,t.Z)().mark(function k(te){return(0,t.Z)().wrap(function(q){for(;;)switch(q.prev=q.next){case 0:return q.abrupt("return",Promise.resolve().then(function(){var le;(le=te[w])===null||le===void 0||le.unmount(),delete te[w]}));case 1:case"end":return q.stop()}},k)})),$.apply(this,arguments)}function D(k){g(k)}function T(k){}function j(k){return G.apply(this,arguments)}function G(){return G=(0,o.Z)((0,t.Z)().mark(function k(te){return(0,t.Z)().wrap(function(q){for(;;)switch(q.prev=q.next){case 0:if(M===void 0){q.next=2;break}return q.abrupt("return",L(te));case 2:D(te);case 3:case"end":return q.stop()}},k)})),G.apply(this,arguments)}},17502:function(b,y,e){"use strict";e.d(y,{Z:function(){return t},o:function(){return s}});var a;function t(n){if(typeof document=="undefined")return 0;if(n||a===void 0){var d=document.createElement("div");d.style.width="100%",d.style.height="200px";var l=document.createElement("div"),c=l.style;c.position="absolute",c.top="0",c.left="0",c.pointerEvents="none",c.visibility="hidden",c.width="200px",c.height="150px",c.overflow="hidden",l.appendChild(d),document.body.appendChild(l);var m=d.offsetWidth;l.style.overflow="scroll";var g=d.offsetWidth;m===g&&(g=l.clientWidth),document.body.removeChild(l),a=m-g}return a}function o(n){var d=n.match(/^(.*)px$/),l=Number(d==null?void 0:d[1]);return Number.isNaN(l)?t():l}function s(n){if(typeof document=="undefined"||!n||!(n instanceof Element))return{width:0,height:0};var d=getComputedStyle(n,"::-webkit-scrollbar"),l=d.width,c=d.height;return{width:o(l),height:o(c)}}},51729:function(b,y,e){"use strict";e.d(y,{Z:function(){return t}});var a=e(58757);function t(o){var s=a.useRef();s.current=o;var n=a.useCallback(function(){for(var d,l=arguments.length,c=new Array(l),m=0;m2&&arguments[2]!==void 0?arguments[2]:!1,l=new Set;function c(m,g){var M=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,h=l.has(m);if((0,t.ZP)(!h,"Warning: There may be circular references"),h)return!1;if(m===g)return!0;if(d&&M>1)return!1;l.add(m);var S=M+1;if(Array.isArray(m)){if(!Array.isArray(g)||m.length!==g.length)return!1;for(var w=0;w
\n );\n};\n","import { CloseOutlined } from '@ant-design/icons';\nimport { Button, Card, message } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo, useEffect } from 'react';\nimport { useImmer } from 'use-immer';\n\nimport { IAttributeValue, IEditingAttribute } from '../../type';\nimport { isRequiredAttributeValueEmpty } from '../../utils/verify';\nimport AttributesForm from '../AttributesForm';\nimport { FloatWrapper } from '../FloatWrapper';\n\nimport './index.less';\n\ninterface IProps {\n data: IEditingAttribute;\n supportEdit?: boolean;\n onConfirmAttibuteEdit: (values: IAttributeValue[]) => void;\n onCancelAttibuteEdit: () => void;\n}\n\nconst AttributeEditor: React.FC = memo(\n ({ data, supportEdit, onConfirmAttibuteEdit, onCancelAttibuteEdit }) => {\n const { localeText } = useLocale();\n const [values, setValues] = useImmer([]);\n\n useEffect(() => {\n setValues(data?.values || []);\n }, [data.values]);\n\n const onChangeValue = (index: number, value: IAttributeValue) => {\n setValues((s) => {\n s[index] = value;\n });\n };\n\n const onConfirm = () => {\n if (\n data.attributes.find(\n (item, index) =>\n item.required && isRequiredAttributeValueEmpty(values[index]),\n )\n ) {\n message.error(localeText('DDSAnnotator.attribute.required'));\n return;\n }\n const results: IAttributeValue[] = [];\n data.attributes.forEach((_item, index) => {\n results.push(values[index] === undefined ? null : values[index]);\n });\n onConfirmAttibuteEdit(results);\n };\n\n return (\n \n \n
\n {localeText('DDSAnnotator.attribute.modal')} #{data.index + 1}\n
\n }\n shape=\"circle\"\n size=\"small\"\n onClick={onCancelAttibuteEdit}\n >\n \n }\n >\n
\n \n {supportEdit && (\n
\n {\n event.preventDefault();\n onConfirm();\n }}\n >\n {localeText('DDSAnnotator.confirm')}\n \n
\n )}\n
\n \n
\n );\n },\n);\n\nexport default AttributeEditor;\n","import { EyeInvisibleOutlined, EyeOutlined } from '@ant-design/icons';\nimport { Button, Tabs, Tooltip } from 'antd';\nimport classNames from 'classnames';\nimport { useLocale } from 'dds-utils/locale';\nimport { isEqual } from 'lodash';\nimport React, { memo, useMemo, useState } from 'react';\nimport { Updater } from 'use-immer';\n\nimport {\n Category,\n DrawData,\n IAttributeValue,\n IEditingAttribute,\n} from '../../type';\nimport AttributesForm from '../AttributesForm';\n\nimport './index.less';\n\nexport interface IProps {\n className?: string;\n supportEdit?: boolean;\n classificationOptions: Category[];\n values: {\n labelId: string;\n labelValue: IAttributeValue;\n attributes?: IAttributeValue[];\n }[];\n setDrawDataWithHistory: Updater;\n}\n\nconst propsAreEqual = (prev: IProps, next: IProps): boolean => {\n return (\n prev.className === next.className &&\n prev.supportEdit === next.supportEdit &&\n isEqual(prev.classificationOptions, next.classificationOptions) &&\n isEqual(prev.values, next.values) &&\n prev.setDrawDataWithHistory === next.setDrawDataWithHistory\n );\n};\n\nconst ClassificationPanel: React.FC = memo((props) => {\n const { localeText } = useLocale();\n const {\n className,\n classificationOptions,\n values,\n setDrawDataWithHistory,\n supportEdit,\n } = props;\n const [hideContent, setHideContent] = useState(false);\n\n const judgeChangeEditingAttribute = (\n index: number,\n editingAttribute?: IEditingAttribute,\n limitEmpty?: boolean,\n ) => {\n const classificationLabel = classificationOptions[index];\n const attributesValues = values?.find(\n ({ labelId }) => labelId === classificationLabel?.id,\n )?.attributes;\n if (\n classificationLabel?.attributes &&\n classificationLabel.attributes.length > 0 &&\n editingAttribute?.labelId !== classificationLabel.id &&\n (!limitEmpty || !attributesValues?.length)\n ) {\n return {\n index: -1,\n labelId: classificationLabel.id,\n attributes: classificationLabel?.attributes,\n values: attributesValues,\n };\n }\n return null;\n };\n\n const showEditingArribute = (index: number) => {\n // TODO: Check work\n // setTimeout to solve immer merge error problem\n setTimeout(() => {\n setDrawDataWithHistory((s) => {\n const editingAttribute = judgeChangeEditingAttribute(\n index,\n s.editingAttribute,\n );\n if (editingAttribute) {\n s.editingAttribute = editingAttribute;\n }\n });\n });\n };\n\n const onChangeValue = (index: number, value: IAttributeValue) => {\n setDrawDataWithHistory((s) => {\n const classificationLabel = classificationOptions[index];\n const i = s.classifications.findIndex(\n (item) => item.labelId === classificationLabel.id,\n );\n if (i > -1) {\n s.classifications[i].labelValue = value;\n } else {\n s.classifications.push({\n labelId: classificationOptions[index].id,\n labelValue: value,\n });\n }\n if (s.editingAttribute?.labelId !== classificationLabel?.id) {\n s.editingAttribute =\n judgeChangeEditingAttribute(index, s.editingAttribute, true) ||\n undefined;\n }\n });\n };\n\n const classifications = useMemo(\n () =>\n classificationOptions.map((item) => ({\n field: item.labelName!,\n type: item.valueType!,\n required: true,\n options: item.valueOptions!,\n hasAttributes: !!item.attributes?.length,\n requireAttribute: !!item.attributes?.find(\n (attribute, idx) =>\n attribute?.required &&\n [undefined, null, ''].includes(\n values.find(({ labelId }) => labelId === item.id)?.attributes?.[\n idx\n ] as any,\n ),\n ),\n })),\n [classificationOptions, values],\n );\n\n const classificationValues = useMemo(() => {\n const results: IAttributeValue[] = [];\n classificationOptions.forEach((item) => {\n const value = values.find(\n ({ labelId }) => labelId === item.id,\n )?.labelValue;\n results.push(value === undefined ? null : value);\n });\n return results;\n }, [classificationOptions, values]);\n\n const classTab = (\n \n );\n\n return (\n {\n event.stopPropagation();\n }}\n >\n \n : }\n shape={'circle'}\n onClick={() => setHideContent(!hideContent)}\n />\n \n }\n />\n \n );\n}, propsAreEqual);\n\nexport default ClassificationPanel;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgImgBroken = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", width: 600, height: 600, fill: \"none\" }, props), /* @__PURE__ */ React.createElement(\"path\", { fill: \"#FFF\", d: \"M0 0h600v600H0z\" }), /* @__PURE__ */ React.createElement(\"mask\", { id: \"img-broken_svg__b\", fill: \"#fff\" }, /* @__PURE__ */ React.createElement(\"use\", { xlinkHref: \"#img-broken_svg__a\" })), /* @__PURE__ */ React.createElement(\"g\", { mask: \"url(#img-broken_svg__b)\" }, /* @__PURE__ */ React.createElement(\"path\", { style: {\n fill: \"#f3f3fa\"\n}, opacity: 0.6, d: \"M520.82 276.411c.7 7.103 1.058 14.305 1.058 21.589 0 122.04-100.54 221-224.51 221-99.159 0-183.328-63.313-213.047-151.107h-8.426c-3.4 0-6.17-2.76-6.17-6.16A6.168 6.168 0 0 1 73.608 356H84c7.18 0 13-5.82 13-13v-1c0-7.18-5.82-13-13-13h-8.95l-.023-.161H52.855c-5.68 0-10.28-4.6-10.28-10.28s4.6-10.28 10.28-10.28h20.241A221.042 221.042 0 0 1 72.858 298c0-32.629 7.187-63.608 20.086-91.486H57c-15.46 0-28-12.541-28-28.001v-1.56c0-14.913 11.67-27.11 26.373-27.953H182c5.52 0 10-4.48 10-10s-4.48-10-10-10h-29.294l.732-.605h-14.59c-10.49 0-19-8.51-19-19v-1.06c0-10.49 8.51-19 19-19h84.392C246.448 81.345 271.393 77 297.368 77c51.023 0 98.077 16.763 135.787 45H418c-7.18 0-13 5.82-13 13v1c0 7.18 5.82 13 13 13h45.166a222.478 222.478 0 0 1 23.253 29.763h21.461c7.73 0 14 6.27 14 14v.78c0 6.387-4.281 11.777-10.128 13.457H492c-8.84 0-16 7.16-16 16v5c0 8.84 7.16 16 16 16h67.901c6.952 1.741 12.097 8.028 12.097 15.521v.89c0 8.84-7.16 16-16 16z\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", fill: \"url(#img-broken_svg__c)\", d: \"M147.977 187.468c-14.64 0-26.51 11.87-26.51 26.5h-5.34c-6.73 0-12.19 5.93-12.19 13.25s5.46 13.25 12.19 13.25h65.65c6.74 0 12.19-5.93 12.19-13.25s-5.45-13.25-12.19-13.25h-7.31c0-14.63-11.86-26.5-26.49-26.5z\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", fill: \"url(#img-broken_svg__d)\", d: \"M313.088 148.128c0 5.25 3.91 9.5 8.74 9.5h47.07c4.83 0 8.74-4.25 8.74-9.5s-3.91-9.5-8.74-9.5h-5.24c0-10.5-8.51-19-19-19s-19 8.5-19 19h-3.83c-4.83 0-8.74 4.25-8.74 9.5z\" }), /* @__PURE__ */ React.createElement(\"path\", { style: {\n fill: \"#e7eaf0\"\n}, d: \"M508 453.5c0 11.036-19.12 20.438-45.869 23.988-6.38 1.885-13.556 3.663-21.438 5.315A16.82 16.82 0 0 1 441 486c0 24.3-52.84 44-118 44-58.623 0-107.274-15.946-116.445-36.841C128.328 487.215 73 472.59 73 455.5c0-22.36 94.71-40.5 211.5-40.5 61.363 0 116.631 5.008 155.269 13.004C477.563 428.253 508 439.575 508 453.5z\" }), /* @__PURE__ */ React.createElement(\"g\", { fillRule: \"evenodd\" }, /* @__PURE__ */ React.createElement(\"path\", { fill: \"url(#img-broken_svg__e)\", d: \"M356 62c-.12-1.36-.23-2.78-.31-4.26-.09-1.23-.16-2.63-.22-4.17-.06-1.55-.09-3.08-.09-4.6V38.66l9.74-.13h1.19c.42 0 .79-.02 1.13-.06.41 0 .81-.02 1.18-.06a5.374 5.374 0 0 0 2.44-1.95c.63-.88.94-1.9.94-3.05l-.13-.8-.24-.99c-.13-.37-.23-.73-.32-1.05l-1.06-2.1c.21-.74.31-1.44.31-2.1 0-1.61-.45-3.03-1.37-4.26-.92-1.23-2.09-2.1-3.5-2.6l-7.88-15.25a7.22 7.22 0 0 0-2.65-3.09C353.97.39 352.63 0 351.13 0c-1.71 0-3.11.51-4.19 1.54-1.08 1.03-2.02 2.27-2.82 3.71h-.06l-9.81 17.97c-.67.58-1.22 1.26-1.65 2.04-.45.78-.71 1.62-.79 2.53l-1.56 3.58c-.08.21-.14.41-.19.62 0 0-.06.43-.06.68 0 1.44.46 2.68 1.37 3.74a6.535 6.535 0 0 0 3.44 2.06l7.06.37c.34.58.76 1.03 1.28 1.36.53.33 1.14.5 1.85.5.88 0 1.67-.31 2.38-.93v9.45c0 2.71-.03 4.89-.07 6.51-.04 1.63-.08 2.92-.12 3.86L347 62h9z\", transform: \"translate(92 370)\" }), /* @__PURE__ */ React.createElement(\"path\", { fill: \"url(#img-broken_svg__f)\", d: \"M385 60.7c.88 0 1.67-.31 2.38-.93v9.45c0 2.71-.03 4.89-.07 6.51-.04 1.63-.08 2.92-.12 3.86L387 82h9c-.12-1.36-.23-2.78-.31-4.26-.09-1.23-.16-2.63-.22-4.17-.06-1.55-.09-3.08-.09-4.6V58.66l9.74-.13h1.19c.42 0 .79-.02 1.13-.06.41 0 .81-.02 1.18-.06a5.374 5.374 0 0 0 2.44-1.95c.63-.88.94-1.9.94-3.05l-.13-.8-.24-.99c-.13-.37-.23-.73-.32-1.05l-1.06-2.1c.21-.74.31-1.44.31-2.1 0-1.61-.45-3.03-1.37-4.26-.92-1.23-2.09-2.1-3.5-2.6l-7.88-15.25a7.22 7.22 0 0 0-2.65-3.09c-1.19-.78-2.53-1.17-4.03-1.17-1.71 0-3.11.51-4.19 1.54-1.08 1.03-2.02 2.27-2.82 3.71h-.06l-9.81 17.97c-.67.58-1.22 1.26-1.65 2.04-.45.78-.71 1.62-.79 2.53l-1.56 3.58c-.08.21-.14.41-.19.62 0 0-.06.43-.06.68 0 1.44.46 2.68 1.37 3.74a6.535 6.535 0 0 0 3.44 2.06l7.06.37c.34.58.76 1.03 1.28 1.36.53.33 1.14.5 1.85.5z\", transform: \"translate(92 370)\" }), /* @__PURE__ */ React.createElement(\"path\", { fill: \"url(#img-broken_svg__g)\", d: \"M35.34 1.66C33.67.55 31.78 0 29.68 0c-2.4 0-4.36.73-5.89 2.19-1.52 1.46-2.83 3.21-3.95 5.26h-.09L5.97 32.96c-.94.81-1.71 1.78-2.32 2.89a8.845 8.845 0 0 0-1.1 3.59l-2.2 5.09c-.11.29-.2.58-.26.87 0 0-.09.62-.09.97 0 2.04.64 3.81 1.93 5.3a9 9 0 0 0 4.83 2.93l9.92.53c.47.82 1.07 1.46 1.8 1.93s1.6.7 2.59.7c1.23 0 2.34-.44 3.34-1.32v13.41c0 3.86-.03 6.95-.09 9.25-.06 2.31-.12 4.14-.18 5.49L23.88 88h12.64c-.17-1.93-.32-3.94-.44-6.05-.11-1.75-.21-3.73-.3-5.92s-.13-4.36-.13-6.53V54.87l13.69-.18h1.67c.59 0 1.11-.02 1.58-.09.59 0 1.14-.02 1.67-.08a7.599 7.599 0 0 0 3.42-2.77c.88-1.25 1.32-2.7 1.32-4.34l-.18-1.13-.35-1.4c-.17-.53-.32-1.03-.44-1.5l-1.49-2.97c.29-1.06.44-2.05.44-2.98 0-2.28-.64-4.3-1.93-6.05s-2.93-2.98-4.92-3.69L39.07 6.05c-.82-1.82-2.07-3.28-3.73-4.39z\", transform: \"translate(92 370)\" })), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", fill: \"url(#img-broken_svg__h)\", opacity: 0.5, d: \"M195.17 339.008 336 259.118l-180.79-56.11L3 241.048l192.17 97.96z\", transform: \"translate(180 194.992)\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", fill: \"url(#img-broken_svg__i)\", d: \"m120.19 238.468 16.76-67-23.23-50.7L147 87.008l-137.81.8A9.242 9.242 0 0 0 0 97.058v132.16c0 5.12 4.15 9.25 9.26 9.25l103.61 4.54 7.32-4.54z\", transform: \"translate(180 194.992)\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", fill: \"url(#img-broken_svg__j)\", d: \"M0 233.728c0 5.13 4.13 9.28 9.22 9.28h103.19l17.59-70.83-24.95-52.65L130 93.008l-120.85.8c-5.05.04-9.15 4.18-9.15 9.28v130.64z\", transform: \"translate(180 194.992)\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", fill: \"url(#img-broken_svg__k)\", d: \"M129 177.408s-39.15 25.41-39.87 25.47c-15.59-13.61-41.17-39.55-41.17-39.55-2.95-3.01-8.11-3.11-11.19-.2L0 214.158v18.8c0 5.05 3.11 10.05 10.1 10.05h102.84l10.05-40.81 6.01-24.79z\", transform: \"translate(180 194.992)\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", fill: \"url(#img-broken_svg__l)\", d: \"m161.114 121.588 10.21 50.9-39.15 72.66 77.97 21.2c5.34 2.12 11.32-1.05 12.51-6.63l36.14-134.09c1.03-4.82-1.95-9.58-6.76-10.81l-53.81-13.81-37.11 20.58z\", transform: \"translate(180 194.992)\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", fill: \"url(#img-broken_svg__m)\", d: \"m153.53 125.233 10.21 50.89-37.74 67.36 77.98 21.21c5.33 2.12 11.31-1.04 12.5-6.63l34.73-128.8c1.03-4.82-1.96-9.58-6.76-10.81l-53.81-13.81-37.11 20.59z\", transform: \"translate(180 194.992)\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", fill: \"url(#img-broken_svg__n)\", d: \"M181.344 174.368c-2-3.27-6.23-4.33-9.52-2.39l-8.09 4.16-37.65 67.37s67.22 18.7 75.12 20.47c7.91 1.76 13.7.54 14.89-5.08l3.37-11.51-38.12-73.02z\", transform: \"translate(180 194.992)\" }), /* @__PURE__ */ React.createElement(\"path\", { style: {\n fill: \"#fff\"\n}, d: \"M223.104 151.697c0-9.32-7.57-16.88-16.9-16.88-9.33 0-16.89 7.56-16.89 16.88s7.56 16.88 16.89 16.88c9.33 0 16.9-7.56 16.9-16.88z\", transform: \"translate(180 194.992)\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", fill: \"url(#img-broken_svg__o)\", d: \"m50.921 37.823 12.386-6.041 11.209 22.982-7.452-32.637-12.592 6.142L42.197 6.864l8.724 30.959z\", transform: \"translate(180 194.992)\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", fill: \"url(#img-broken_svg__p)\", d: \"m217.598 48.895 17.888 17.184-30.945 23.817s47.929-22.37 46.996-23.709c-.925-1.335-18.57-16.992-18.57-16.992l24.134-25.537-39.503 25.236z\", transform: \"translate(180 194.992)\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__i\", x1: \"178.579%\", y1: \"114.41%\", x2: \"-67.6%\", y2: \"-21.639%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#A2ABB9\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E7EAF0\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__p\", x1: 198.923, y1: 151.68, x2: 253.588, y2: 43.245, gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#A2ABB9\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E7EAF0\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__d\", x1: \"144.588%\", y1: \"98.8%\", x2: \"29.516%\", y2: \"100%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#E0E5EF\", stopOpacity: 0 }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E0E5EF\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__e\", x1: \"144.588%\", y1: \"98.8%\", x2: \"29.516%\", y2: \"100%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#E0E5EF\", stopOpacity: 0 }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E0E5EF\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__f\", x1: \"144.588%\", y1: \"98.8%\", x2: \"29.516%\", y2: \"100%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#E0E5EF\", stopOpacity: 0 }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E0E5EF\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__g\", x1: \"144.588%\", y1: \"98.8%\", x2: \"29.516%\", y2: \"100%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#E0E5EF\", stopOpacity: 0 }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E0E5EF\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__h\", x1: \"50%\", y1: \"30.387%\", x2: \"-31.215%\", y2: \"-60.228%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#E8EBF1\", stopOpacity: 0.24 }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#A2ABB9\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__c\", x1: \"144.588%\", y1: \"98.8%\", x2: \"29.516%\", y2: \"100%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#E0E5EF\", stopOpacity: 0 }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E0E5EF\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__j\", x1: \"137.408%\", y1: \"115.518%\", x2: \"64.225%\", y2: \"-9.666%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#A2ABB9\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E7EAF0\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__k\", x1: \"93.55%\", y1: \"132.782%\", x2: \"29.55%\", y2: \"19.901%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#A2ABB9\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E7EAF0\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__l\", x1: \"178.579%\", y1: \"114.41%\", x2: \"-67.6%\", y2: \"-21.639%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#A2ABB9\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E7EAF0\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__m\", x1: \"113.805%\", y1: \"123.201%\", x2: \"30.832%\", y2: \"0%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#A2ABB9\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E7EAF0\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__n\", x1: \"110.007%\", y1: \"128.49%\", x2: \"50%\", y2: \"0%\", gradientUnits: \"objectBoundingBox\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#A2ABB9\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E7EAF0\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"img-broken_svg__o\", x1: 92.534, y1: 94.384, x2: 55.523, y2: 19.166, gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: 0, stopColor: \"#A2ABB9\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#E7EAF0\" })), /* @__PURE__ */ React.createElement(\"path\", { id: \"img-broken_svg__a\", d: \"M0 0h600v600H0z\" })));\nexport { SvgImgBroken as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjAwIiBoZWlnaHQ9IjYwMCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTAgMGg2MDB2NjAwSDB6Ii8+PG1hc2sgaWQ9ImIiIGZpbGw9IiNmZmYiPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48L21hc2s+PGcgbWFzaz0idXJsKCNiKSI+PHBhdGggc3R5bGU9ImZpbGw6I2YzZjNmYSIgb3BhY2l0eT0iLjYiIGQ9Ik01MjAuODIgMjc2LjQxMWMuNyA3LjEwMyAxLjA1OCAxNC4zMDUgMS4wNTggMjEuNTg5IDAgMTIyLjA0LTEwMC41NCAyMjEtMjI0LjUxIDIyMS05OS4xNTkgMC0xODMuMzI4LTYzLjMxMy0yMTMuMDQ3LTE1MS4xMDdoLTguNDI2Yy0zLjQgMC02LjE3LTIuNzYtNi4xNy02LjE2QTYuMTY4IDYuMTY4IDAgMCAxIDczLjYwOCAzNTZIODRjNy4xOCAwIDEzLTUuODIgMTMtMTN2LTFjMC03LjE4LTUuODItMTMtMTMtMTNoLTguOTVsLS4wMjMtLjE2MUg1Mi44NTVjLTUuNjggMC0xMC4yOC00LjYtMTAuMjgtMTAuMjhzNC42LTEwLjI4IDEwLjI4LTEwLjI4aDIwLjI0MUEyMjEuMDQyIDIyMS4wNDIgMCAwIDEgNzIuODU4IDI5OGMwLTMyLjYyOSA3LjE4Ny02My42MDggMjAuMDg2LTkxLjQ4Nkg1N2MtMTUuNDYgMC0yOC0xMi41NDEtMjgtMjguMDAxdi0xLjU2YzAtMTQuOTEzIDExLjY3LTI3LjExIDI2LjM3My0yNy45NTNIMTgyYzUuNTIgMCAxMC00LjQ4IDEwLTEwcy00LjQ4LTEwLTEwLTEwaC0yOS4yOTRsLjczMi0uNjA1aC0xNC41OWMtMTAuNDkgMC0xOS04LjUxLTE5LTE5di0xLjA2YzAtMTAuNDkgOC41MS0xOSAxOS0xOWg4NC4zOTJDMjQ2LjQ0OCA4MS4zNDUgMjcxLjM5MyA3NyAyOTcuMzY4IDc3YzUxLjAyMyAwIDk4LjA3NyAxNi43NjMgMTM1Ljc4NyA0NUg0MThjLTcuMTggMC0xMyA1LjgyLTEzIDEzdjFjMCA3LjE4IDUuODIgMTMgMTMgMTNoNDUuMTY2YTIyMi40NzggMjIyLjQ3OCAwIDAgMSAyMy4yNTMgMjkuNzYzaDIxLjQ2MWM3LjczIDAgMTQgNi4yNyAxNCAxNHYuNzhjMCA2LjM4Ny00LjI4MSAxMS43NzctMTAuMTI4IDEzLjQ1N0g0OTJjLTguODQgMC0xNiA3LjE2LTE2IDE2djVjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjcuOTAxYzYuOTUyIDEuNzQxIDEyLjA5NyA4LjAyOCAxMi4wOTcgMTUuNTIxdi44OWMwIDguODQtNy4xNiAxNi0xNiAxNnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjYykiIGQ9Ik0xNDcuOTc3IDE4Ny40NjhjLTE0LjY0IDAtMjYuNTEgMTEuODctMjYuNTEgMjYuNWgtNS4zNGMtNi43MyAwLTEyLjE5IDUuOTMtMTIuMTkgMTMuMjVzNS40NiAxMy4yNSAxMi4xOSAxMy4yNWg2NS42NWM2Ljc0IDAgMTIuMTktNS45MyAxMi4xOS0xMy4yNXMtNS40NS0xMy4yNS0xMi4xOS0xMy4yNWgtNy4zMWMwLTE0LjYzLTExLjg2LTI2LjUtMjYuNDktMjYuNXoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjZCkiIGQ9Ik0zMTMuMDg4IDE0OC4xMjhjMCA1LjI1IDMuOTEgOS41IDguNzQgOS41aDQ3LjA3YzQuODMgMCA4Ljc0LTQuMjUgOC43NC05LjVzLTMuOTEtOS41LTguNzQtOS41aC01LjI0YzAtMTAuNS04LjUxLTE5LTE5LTE5cy0xOSA4LjUtMTkgMTloLTMuODNjLTQuODMgMC04Ljc0IDQuMjUtOC43NCA5LjV6Ii8+PHBhdGggc3R5bGU9ImZpbGw6I2U3ZWFmMCIgZD0iTTUwOCA0NTMuNWMwIDExLjAzNi0xOS4xMiAyMC40MzgtNDUuODY5IDIzLjk4OC02LjM4IDEuODg1LTEzLjU1NiAzLjY2My0yMS40MzggNS4zMTVBMTYuODIgMTYuODIgMCAwIDEgNDQxIDQ4NmMwIDI0LjMtNTIuODQgNDQtMTE4IDQ0LTU4LjYyMyAwLTEwNy4yNzQtMTUuOTQ2LTExNi40NDUtMzYuODQxQzEyOC4zMjggNDg3LjIxNSA3MyA0NzIuNTkgNzMgNDU1LjVjMC0yMi4zNiA5NC43MS00MC41IDIxMS41LTQwLjUgNjEuMzYzIDAgMTE2LjYzMSA1LjAwOCAxNTUuMjY5IDEzLjAwNEM0NzcuNTYzIDQyOC4yNTMgNTA4IDQzOS41NzUgNTA4IDQ1My41eiIvPjxnIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZmlsbD0idXJsKCNlKSIgZD0iTTM1NiA2MmMtLjEyLTEuMzYtLjIzLTIuNzgtLjMxLTQuMjYtLjA5LTEuMjMtLjE2LTIuNjMtLjIyLTQuMTctLjA2LTEuNTUtLjA5LTMuMDgtLjA5LTQuNlYzOC42Nmw5Ljc0LS4xM2gxLjE5Yy40MiAwIC43OS0uMDIgMS4xMy0uMDYuNDEgMCAuODEtLjAyIDEuMTgtLjA2YTUuMzc0IDUuMzc0IDAgMCAwIDIuNDQtMS45NWMuNjMtLjg4Ljk0LTEuOS45NC0zLjA1bC0uMTMtLjgtLjI0LS45OWMtLjEzLS4zNy0uMjMtLjczLS4zMi0xLjA1bC0xLjA2LTIuMWMuMjEtLjc0LjMxLTEuNDQuMzEtMi4xIDAtMS42MS0uNDUtMy4wMy0xLjM3LTQuMjYtLjkyLTEuMjMtMi4wOS0yLjEtMy41LTIuNmwtNy44OC0xNS4yNWE3LjIyIDcuMjIgMCAwIDAtMi42NS0zLjA5QzM1My45Ny4zOSAzNTIuNjMgMCAzNTEuMTMgMGMtMS43MSAwLTMuMTEuNTEtNC4xOSAxLjU0LTEuMDggMS4wMy0yLjAyIDIuMjctMi44MiAzLjcxaC0uMDZsLTkuODEgMTcuOTdjLS42Ny41OC0xLjIyIDEuMjYtMS42NSAyLjA0LS40NS43OC0uNzEgMS42Mi0uNzkgMi41M2wtMS41NiAzLjU4Yy0uMDguMjEtLjE0LjQxLS4xOS42MiAwIDAtLjA2LjQzLS4wNi42OCAwIDEuNDQuNDYgMi42OCAxLjM3IDMuNzRhNi41MzUgNi41MzUgMCAwIDAgMy40NCAyLjA2bDcuMDYuMzdjLjM0LjU4Ljc2IDEuMDMgMS4yOCAxLjM2LjUzLjMzIDEuMTQuNSAxLjg1LjUuODggMCAxLjY3LS4zMSAyLjM4LS45M3Y5LjQ1YzAgMi43MS0uMDMgNC44OS0uMDcgNi41MS0uMDQgMS42My0uMDggMi45Mi0uMTIgMy44NkwzNDcgNjJoOXoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkyIDM3MCkiLz48cGF0aCBmaWxsPSJ1cmwoI2YpIiBkPSJNMzg1IDYwLjdjLjg4IDAgMS42Ny0uMzEgMi4zOC0uOTN2OS40NWMwIDIuNzEtLjAzIDQuODktLjA3IDYuNTEtLjA0IDEuNjMtLjA4IDIuOTItLjEyIDMuODZMMzg3IDgyaDljLS4xMi0xLjM2LS4yMy0yLjc4LS4zMS00LjI2LS4wOS0xLjIzLS4xNi0yLjYzLS4yMi00LjE3LS4wNi0xLjU1LS4wOS0zLjA4LS4wOS00LjZWNTguNjZsOS43NC0uMTNoMS4xOWMuNDIgMCAuNzktLjAyIDEuMTMtLjA2LjQxIDAgLjgxLS4wMiAxLjE4LS4wNmE1LjM3NCA1LjM3NCAwIDAgMCAyLjQ0LTEuOTVjLjYzLS44OC45NC0xLjkuOTQtMy4wNWwtLjEzLS44LS4yNC0uOTljLS4xMy0uMzctLjIzLS43My0uMzItMS4wNWwtMS4wNi0yLjFjLjIxLS43NC4zMS0xLjQ0LjMxLTIuMSAwLTEuNjEtLjQ1LTMuMDMtMS4zNy00LjI2LS45Mi0xLjIzLTIuMDktMi4xLTMuNS0yLjZsLTcuODgtMTUuMjVhNy4yMiA3LjIyIDAgMCAwLTIuNjUtMy4wOWMtMS4xOS0uNzgtMi41My0xLjE3LTQuMDMtMS4xNy0xLjcxIDAtMy4xMS41MS00LjE5IDEuNTQtMS4wOCAxLjAzLTIuMDIgMi4yNy0yLjgyIDMuNzFoLS4wNmwtOS44MSAxNy45N2MtLjY3LjU4LTEuMjIgMS4yNi0xLjY1IDIuMDQtLjQ1Ljc4LS43MSAxLjYyLS43OSAyLjUzbC0xLjU2IDMuNThjLS4wOC4yMS0uMTQuNDEtLjE5LjYyIDAgMC0uMDYuNDMtLjA2LjY4IDAgMS40NC40NiAyLjY4IDEuMzcgMy43NGE2LjUzNSA2LjUzNSAwIDAgMCAzLjQ0IDIuMDZsNy4wNi4zN2MuMzQuNTguNzYgMS4wMyAxLjI4IDEuMzYuNTMuMzMgMS4xNC41IDEuODUuNXoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkyIDM3MCkiLz48cGF0aCBmaWxsPSJ1cmwoI2cpIiBkPSJNMzUuMzQgMS42NkMzMy42Ny41NSAzMS43OCAwIDI5LjY4IDBjLTIuNCAwLTQuMzYuNzMtNS44OSAyLjE5LTEuNTIgMS40Ni0yLjgzIDMuMjEtMy45NSA1LjI2aC0uMDlMNS45NyAzMi45NmMtLjk0LjgxLTEuNzEgMS43OC0yLjMyIDIuODlhOC44NDUgOC44NDUgMCAwIDAtMS4xIDMuNTlsLTIuMiA1LjA5Yy0uMTEuMjktLjIuNTgtLjI2Ljg3IDAgMC0uMDkuNjItLjA5Ljk3IDAgMi4wNC42NCAzLjgxIDEuOTMgNS4zYTkgOSAwIDAgMCA0LjgzIDIuOTNsOS45Mi41M2MuNDcuODIgMS4wNyAxLjQ2IDEuOCAxLjkzczEuNi43IDIuNTkuN2MxLjIzIDAgMi4zNC0uNDQgMy4zNC0xLjMydjEzLjQxYzAgMy44Ni0uMDMgNi45NS0uMDkgOS4yNS0uMDYgMi4zMS0uMTIgNC4xNC0uMTggNS40OUwyMy44OCA4OGgxMi42NGMtLjE3LTEuOTMtLjMyLTMuOTQtLjQ0LTYuMDUtLjExLTEuNzUtLjIxLTMuNzMtLjMtNS45MnMtLjEzLTQuMzYtLjEzLTYuNTNWNTQuODdsMTMuNjktLjE4aDEuNjdjLjU5IDAgMS4xMS0uMDIgMS41OC0uMDkuNTkgMCAxLjE0LS4wMiAxLjY3LS4wOGE3LjU5OSA3LjU5OSAwIDAgMCAzLjQyLTIuNzdjLjg4LTEuMjUgMS4zMi0yLjcgMS4zMi00LjM0bC0uMTgtMS4xMy0uMzUtMS40Yy0uMTctLjUzLS4zMi0xLjAzLS40NC0xLjVsLTEuNDktMi45N2MuMjktMS4wNi40NC0yLjA1LjQ0LTIuOTggMC0yLjI4LS42NC00LjMtMS45My02LjA1cy0yLjkzLTIuOTgtNC45Mi0zLjY5TDM5LjA3IDYuMDVjLS44Mi0xLjgyLTIuMDctMy4yOC0zLjczLTQuMzl6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5MiAzNzApIi8+PC9nPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0idXJsKCNoKSIgb3BhY2l0eT0iLjUiIGQ9Ik0xOTUuMTcgMzM5LjAwOCAzMzYgMjU5LjExOGwtMTgwLjc5LTU2LjExTDMgMjQxLjA0OGwxOTIuMTcgOTcuOTZ6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAgMTk0Ljk5MikiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjaSkiIGQ9Im0xMjAuMTkgMjM4LjQ2OCAxNi43Ni02Ny0yMy4yMy01MC43TDE0NyA4Ny4wMDhsLTEzNy44MS44QTkuMjQyIDkuMjQyIDAgMCAwIDAgOTcuMDU4djEzMi4xNmMwIDUuMTIgNC4xNSA5LjI1IDkuMjYgOS4yNWwxMDMuNjEgNC41NCA3LjMyLTQuNTR6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAgMTk0Ljk5MikiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjaikiIGQ9Ik0wIDIzMy43MjhjMCA1LjEzIDQuMTMgOS4yOCA5LjIyIDkuMjhoMTAzLjE5bDE3LjU5LTcwLjgzLTI0Ljk1LTUyLjY1TDEzMCA5My4wMDhsLTEyMC44NS44Yy01LjA1LjA0LTkuMTUgNC4xOC05LjE1IDkuMjh2MTMwLjY0eiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTgwIDE5NC45OTIpIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSJ1cmwoI2spIiBkPSJNMTI5IDE3Ny40MDhzLTM5LjE1IDI1LjQxLTM5Ljg3IDI1LjQ3Yy0xNS41OS0xMy42MS00MS4xNy0zOS41NS00MS4xNy0zOS41NS0yLjk1LTMuMDEtOC4xMS0zLjExLTExLjE5LS4yTDAgMjE0LjE1OHYxOC44YzAgNS4wNSAzLjExIDEwLjA1IDEwLjEgMTAuMDVoMTAyLjg0bDEwLjA1LTQwLjgxIDYuMDEtMjQuNzl6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAgMTk0Ljk5MikiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjbCkiIGQ9Im0xNjEuMTE0IDEyMS41ODggMTAuMjEgNTAuOS0zOS4xNSA3Mi42NiA3Ny45NyAyMS4yYzUuMzQgMi4xMiAxMS4zMi0xLjA1IDEyLjUxLTYuNjNsMzYuMTQtMTM0LjA5YzEuMDMtNC44Mi0xLjk1LTkuNTgtNi43Ni0xMC44MWwtNTMuODEtMTMuODEtMzcuMTEgMjAuNTh6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAgMTk0Ljk5MikiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InVybCgjbSkiIGQ9Im0xNTMuNTMgMTI1LjIzMyAxMC4yMSA1MC44OS0zNy43NCA2Ny4zNiA3Ny45OCAyMS4yMWM1LjMzIDIuMTIgMTEuMzEtMS4wNCAxMi41LTYuNjNsMzQuNzMtMTI4LjhjMS4wMy00LjgyLTEuOTYtOS41OC02Ljc2LTEwLjgxbC01My44MS0xMy44MS0zNy4xMSAyMC41OXoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCAxOTQuOTkyKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0idXJsKCNuKSIgZD0iTTE4MS4zNDQgMTc0LjM2OGMtMi0zLjI3LTYuMjMtNC4zMy05LjUyLTIuMzlsLTguMDkgNC4xNi0zNy42NSA2Ny4zN3M2Ny4yMiAxOC43IDc1LjEyIDIwLjQ3YzcuOTEgMS43NiAxMy43LjU0IDE0Ljg5LTUuMDhsMy4zNy0xMS41MS0zOC4xMi03My4wMnoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCAxOTQuOTkyKSIvPjxwYXRoIHN0eWxlPSJmaWxsOiNmZmYiIGQ9Ik0yMjMuMTA0IDE1MS42OTdjMC05LjMyLTcuNTctMTYuODgtMTYuOS0xNi44OC05LjMzIDAtMTYuODkgNy41Ni0xNi44OSAxNi44OHM3LjU2IDE2Ljg4IDE2Ljg5IDE2Ljg4YzkuMzMgMCAxNi45LTcuNTYgMTYuOS0xNi44OHoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCAxOTQuOTkyKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0idXJsKCNvKSIgZD0ibTUwLjkyMSAzNy44MjMgMTIuMzg2LTYuMDQxIDExLjIwOSAyMi45ODItNy40NTItMzIuNjM3LTEyLjU5MiA2LjE0Mkw0Mi4xOTcgNi44NjRsOC43MjQgMzAuOTU5eiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTgwIDE5NC45OTIpIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSJ1cmwoI3ApIiBkPSJtMjE3LjU5OCA0OC44OTUgMTcuODg4IDE3LjE4NC0zMC45NDUgMjMuODE3czQ3LjkyOS0yMi4zNyA0Ni45OTYtMjMuNzA5Yy0uOTI1LTEuMzM1LTE4LjU3LTE2Ljk5Mi0xOC41Ny0xNi45OTJsMjQuMTM0LTI1LjUzNy0zOS41MDMgMjUuMjM2eiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTgwIDE5NC45OTIpIi8+PC9nPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iaSIgeDE9IjE3OC41NzklIiB5MT0iMTE0LjQxJSIgeDI9Ii02Ny42JSIgeTI9Ii0yMS42MzklIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjQTJBQkI5Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRTdFQUYwIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InAiIHgxPSIxOTguOTIzIiB5MT0iMTUxLjY4IiB4Mj0iMjUzLjU4OCIgeTI9IjQzLjI0NSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0U3RUFGMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJkIiB4MT0iMTQ0LjU4OCUiIHkxPSI5OC44JSIgeDI9IjI5LjUxNiUiIHkyPSIxMDAlIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRTBFNUVGIiBzdG9wLW9wYWNpdHk9IjAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNFMEU1RUYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZSIgeDE9IjE0NC41ODglIiB5MT0iOTguOCUiIHgyPSIyOS41MTYlIiB5Mj0iMTAwJSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0UwRTVFRiIgc3RvcC1vcGFjaXR5PSIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRTBFNUVGIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImYiIHgxPSIxNDQuNTg4JSIgeTE9Ijk4LjglIiB4Mj0iMjkuNTE2JSIgeTI9IjEwMCUiIGdyYWRpZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNFMEU1RUYiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0UwRTVFRiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJnIiB4MT0iMTQ0LjU4OCUiIHkxPSI5OC44JSIgeDI9IjI5LjUxNiUiIHkyPSIxMDAlIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRTBFNUVGIiBzdG9wLW9wYWNpdHk9IjAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNFMEU1RUYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaCIgeDE9IjUwJSIgeTE9IjMwLjM4NyUiIHgyPSItMzEuMjE1JSIgeTI9Ii02MC4yMjglIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRThFQkYxIiBzdG9wLW9wYWNpdHk9Ii4yNCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJjIiB4MT0iMTQ0LjU4OCUiIHkxPSI5OC44JSIgeDI9IjI5LjUxNiUiIHkyPSIxMDAlIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRTBFNUVGIiBzdG9wLW9wYWNpdHk9IjAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNFMEU1RUYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iaiIgeDE9IjEzNy40MDglIiB5MT0iMTE1LjUxOCUiIHgyPSI2NC4yMjUlIiB5Mj0iLTkuNjY2JSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0U3RUFGMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJrIiB4MT0iOTMuNTUlIiB5MT0iMTMyLjc4MiUiIHgyPSIyOS41NSUiIHkyPSIxOS45MDElIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjQTJBQkI5Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRTdFQUYwIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImwiIHgxPSIxNzguNTc5JSIgeTE9IjExNC40MSUiIHgyPSItNjcuNiUiIHkyPSItMjEuNjM5JSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0U3RUFGMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJtIiB4MT0iMTEzLjgwNSUiIHkxPSIxMjMuMjAxJSIgeDI9IjMwLjgzMiUiIHkyPSIwJSIgZ3JhZGllbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0U3RUFGMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJuIiB4MT0iMTEwLjAwNyUiIHkxPSIxMjguNDklIiB4Mj0iNTAlIiB5Mj0iMCUiIGdyYWRpZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNBMkFCQjkiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNFN0VBRjAiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0ibyIgeDE9IjkyLjUzNCIgeTE9Ijk0LjM4NCIgeDI9IjU1LjUyMyIgeTI9IjE5LjE2NiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0EyQUJCOSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0U3RUFGMCIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggaWQ9ImEiIGQ9Ik0wIDBoNjAwdjYwMEgweiIvPjwvZGVmcz48L3N2Zz4=\";\n","import { ReloadOutlined } from '@ant-design/icons';\nimport { Button, Spin } from 'antd';\nimport React, { useState } from 'react';\n\nimport ImgBroken from '../../assets/img-broken.svg';\n\nimport './index.less';\n\ninterface IProps {\n url: string;\n imgRef: React.RefObject;\n canvasRef: React.RefObject;\n activeCanvasRef: React.RefObject;\n clientSize: ISize;\n imagePos: React.MutableRefObject;\n onLoad: (e: React.UIEvent) => void;\n}\n\nexport const ImageView: React.FC = ({\n url = '',\n imgRef,\n canvasRef,\n activeCanvasRef,\n clientSize,\n imagePos,\n onLoad,\n}) => {\n const [showReload, setShowReload] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n\n const onLoadImg = (e: React.UIEvent) => {\n setIsLoading(false);\n // Callback\n onLoad(e);\n };\n\n const onReloadImg = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (imgRef?.current) {\n imgRef.current.src = url;\n setIsLoading(true);\n setShowReload(false);\n }\n };\n\n const onErrorImg = (e: React.UIEvent) => {\n const img = e.target as HTMLImageElement;\n img.src = ImgBroken;\n setIsLoading(false);\n setShowReload(true);\n };\n\n const crossOrigin =\n url.indexOf('aliyuncs.com') > -1 ? 'anonymous' : undefined;\n\n return (\n <>\n \n ) =>\n event.preventDefault()\n }\n className=\"dds-annotator-imageview-canvas\"\n />\n ) =>\n event.preventDefault()\n }\n className=\"dds-annotator-imageview-canvas\"\n />\n {showReload && (\n \n \"error-pic\"\n
\n }\n >\n
\n \n )}\n {isLoading && (\n \n \n \n )}\n \n );\n};\n","import Icon from '@ant-design/icons';\nimport { Modal, Tag } from 'antd';\nimport classNames from 'classnames';\nimport { useLocale } from 'dds-utils';\nimport { memo, useMemo } from 'react';\n\nimport { EnumModelType, MODEL_INTRO_MAP } from '../../constants';\nimport { FloatWrapper } from '../FloatWrapper';\n\nimport './index.less';\n\ninterface IProps {\n AIAnnotation: boolean;\n modelOptions: EnumModelType[];\n selectedModel?: EnumModelType;\n onSelectModel: (type: EnumModelType) => void;\n onCloseModal: () => void;\n}\n\nconst ModelSelectModal: React.FC = memo(\n ({\n AIAnnotation,\n modelOptions,\n selectedModel,\n onSelectModel,\n onCloseModal,\n }) => {\n const { localeText } = useLocale();\n\n const modalWidth =\n modelOptions.length * 220 + (modelOptions.length + 1) * 20;\n\n const autoOpen = useMemo(() => {\n if (\n AIAnnotation &&\n modelOptions &&\n modelOptions.length > 1 &&\n !selectedModel\n ) {\n return true;\n }\n return false;\n }, [AIAnnotation, modelOptions, selectedModel]);\n\n return (\n \n \n
\n {modelOptions.map((model, index) => {\n const intro = MODEL_INTRO_MAP[model];\n if (!intro) return <>;\n return (\n onSelectModel(model)}\n key={index}\n >\n \n
\n {localeText(intro.name)}\n
\n
\n {localeText(intro.description)}\n
\n {intro.hightlight && (\n \n {'New'}\n \n )}\n
\n );\n })}\n \n \n
\n );\n },\n);\n\nexport default ModelSelectModal;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgDownArror = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ width: 10, height: 10, fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M1.464 5.65A1 1 0 0 0 2.88 7.064l2.12-2.12 2.122 2.12A1 1 0 0 0 8.535 5.65L5.713 2.828a1 1 0 0 0-1.42-.006L1.464 5.65Z\", fill: \"#fff\" }));\nexport { SvgDownArror as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjQ2NCA1LjY1QTEgMSAwIDAgMCAyLjg4IDcuMDY0bDIuMTItMi4xMiAyLjEyMiAyLjEyQTEgMSAwIDAgMCA4LjUzNSA1LjY1TDUuNzEzIDIuODI4YTEgMSAwIDAgMC0xLjQyLS4wMDZMMS40NjQgNS42NVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgLayer = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 15 15\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#layer_svg__a)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m.57 6.625 5.805 3.48a2.182 2.182 0 0 0 2.25 0l5.805-3.48a1.163 1.163 0 0 0 0-1.995L8.625 1.144a2.18 2.18 0 0 0-2.25 0L.57 4.625a1.163 1.163 0 0 0 0 1.995v.005ZM7.34 2.75a.313.313 0 0 1 .32 0l4.789 2.875L7.66 8.5a.313.313 0 0 1-.322 0L2.551 5.625 7.34 2.75Z\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.304 11.77a1.562 1.562 0 0 1-1.608 0L1.42 8.603a.937.937 0 0 0-.965 1.607l5.276 3.164a3.43 3.43 0 0 0 3.538 0l5.276-3.166a.937.937 0 1 0-.965-1.605l-5.276 3.165Z\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"layer_svg__a\" }, /* @__PURE__ */ React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h15v15H0z\" }))));\nexport { SvgLayer as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTUgMTUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJtLjU3IDYuNjI1IDUuODA1IDMuNDhhMi4xODIgMi4xODIgMCAwIDAgMi4yNSAwbDUuODA1LTMuNDhhMS4xNjMgMS4xNjMgMCAwIDAgMC0xLjk5NUw4LjYyNSAxLjE0NGEyLjE4IDIuMTggMCAwIDAtMi4yNSAwTC41NyA0LjYyNWExLjE2MyAxLjE2MyAwIDAgMCAwIDEuOTk1di4wMDVaTTcuMzQgMi43NWEuMzEzLjMxMyAwIDAgMSAuMzIgMGw0Ljc4OSAyLjg3NUw3LjY2IDguNWEuMzEzLjMxMyAwIDAgMS0uMzIyIDBMMi41NTEgNS42MjUgNy4zNCAyLjc1WiIvPjxwYXRoIGQ9Ik04LjMwNCAxMS43N2ExLjU2MiAxLjU2MiAwIDAgMS0xLjYwOCAwTDEuNDIgOC42MDNhLjkzNy45MzcgMCAwIDAtLjk2NSAxLjYwN2w1LjI3NiAzLjE2NGEzLjQzIDMuNDMgMCAwIDAgMy41MzggMGw1LjI3Ni0zLjE2NmEuOTM3LjkzNyAwIDEgMC0uOTY1LTEuNjA1bC01LjI3NiAzLjE2NVoiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDE1djE1SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgPalette = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ className: \"palette_svg__icon\", viewBox: \"0 0 1024 1024\", xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16 }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M512 102.39c-226.202 0-409.6 183.367-409.6 409.6S285.798 921.62 512 921.62a408.556 408.556 0 0 0 156.672-31.2 68.332 68.332 0 0 0 22.16-111.402l-48.057-48.056a68.28 68.28 0 0 1 48.261-116.542l162.304-.04a68.26 68.26 0 0 0 68.27-68.26v-34.13c-.01-226.243-183.378-409.6-409.61-409.6zm341.33 443.73-162.304.03c-75.305 0-136.53 61.225-136.53 136.53 0 36.485 14.203 70.738 39.997 96.543l48.067 48.056a338.166 338.166 0 0 1-130.57 26.082c-188.201 0-341.33-153.14-341.33-341.371S323.799 170.65 512 170.65s341.33 153.098 341.33 341.33v34.14z\", fill: \"#fff\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M443.73 307.19a68.27 68.27 0 1 0 136.54 0 68.27 68.27 0 1 0-136.54 0ZM300.503 555.254a68.198 68.198 0 0 1 93.225 24.996 68.3 68.3 0 0 1-24.934 93.266 68.352 68.352 0 0 1-93.297-24.996 68.321 68.321 0 0 1 25.006-93.266zM621.056 409.59a68.29 68.29 0 1 0 136.581 0 68.29 68.29 0 1 0-136.581 0ZM300.503 468.716a68.26 68.26 0 0 1-24.965-93.266 68.25 68.25 0 1 1 118.2 68.239 68.27 68.27 0 0 1-93.235 25.027z\", fill: \"#fff\" }));\nexport { SvgPalette as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik01MTIgMTAyLjM5Yy0yMjYuMjAyIDAtNDA5LjYgMTgzLjM2Ny00MDkuNiA0MDkuNlMyODUuNzk4IDkyMS42MiA1MTIgOTIxLjYyYTQwOC41NTYgNDA4LjU1NiAwIDAgMCAxNTYuNjcyLTMxLjIgNjguMzMyIDY4LjMzMiAwIDAgMCAyMi4xNi0xMTEuNDAybC00OC4wNTctNDguMDU2YTY4LjI4IDY4LjI4IDAgMCAxIDQ4LjI2MS0xMTYuNTQybDE2Mi4zMDQtLjA0YTY4LjI2IDY4LjI2IDAgMCAwIDY4LjI3LTY4LjI2di0zNC4xM2MtLjAxLTIyNi4yNDMtMTgzLjM3OC00MDkuNi00MDkuNjEtNDA5LjZ6bTM0MS4zMyA0NDMuNzMtMTYyLjMwNC4wM2MtNzUuMzA1IDAtMTM2LjUzIDYxLjIyNS0xMzYuNTMgMTM2LjUzIDAgMzYuNDg1IDE0LjIwMyA3MC43MzggMzkuOTk3IDk2LjU0M2w0OC4wNjcgNDguMDU2YTMzOC4xNjYgMzM4LjE2NiAwIDAgMS0xMzAuNTcgMjYuMDgyYy0xODguMjAxIDAtMzQxLjMzLTE1My4xNC0zNDEuMzMtMzQxLjM3MVMzMjMuNzk5IDE3MC42NSA1MTIgMTcwLjY1czM0MS4zMyAxNTMuMDk4IDM0MS4zMyAzNDEuMzN2MzQuMTR6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTQ0My43MyAzMDcuMTlhNjguMjcgNjguMjcgMCAxIDAgMTM2LjU0IDAgNjguMjcgNjguMjcgMCAxIDAtMTM2LjU0IDBaTTMwMC41MDMgNTU1LjI1NGE2OC4xOTggNjguMTk4IDAgMCAxIDkzLjIyNSAyNC45OTYgNjguMyA2OC4zIDAgMCAxLTI0LjkzNCA5My4yNjYgNjguMzUyIDY4LjM1MiAwIDAgMS05My4yOTctMjQuOTk2IDY4LjMyMSA2OC4zMjEgMCAwIDEgMjUuMDA2LTkzLjI2NnpNNjIxLjA1NiA0MDkuNTlhNjguMjkgNjguMjkgMCAxIDAgMTM2LjU4MSAwIDY4LjI5IDY4LjI5IDAgMSAwLTEzNi41ODEgMFpNMzAwLjUwMyA0NjguNzE2YTY4LjI2IDY4LjI2IDAgMCAxLTI0Ljk2NS05My4yNjYgNjguMjUgNjguMjUgMCAxIDEgMTE4LjIgNjguMjM5IDY4LjI3IDY4LjI3IDAgMCAxLTkzLjIzNSAyNS4wMjd6IiBmaWxsPSIjZmZmIi8+PC9zdmc+\";\n","export enum EShortcutType {\n Tool = 'DDSAnnotator.shortcuts.tools',\n GeneralAction = 'DDSAnnotator.shortcuts.general',\n ViewAction = 'DDSAnnotator.shortcuts.viewControl',\n AnnotationAction = 'DDSAnnotator.shortcuts.annotsControl',\n}\n\nexport type TShortcutItem = {\n name: string;\n type: EShortcutType;\n shortcut: string[];\n descTextKey: string;\n};\n\nexport enum EShortcuts {\n /** Tools */\n RectangleTool,\n PolygonTool,\n SkeletonTool,\n DragTool,\n MaskTool,\n /** General Actions */\n SmartAnnotation,\n Undo,\n Redo,\n RepeatPrevious,\n DeleteAll,\n NextImage,\n PreviousImage,\n Save,\n Accept,\n Reject,\n /** View Actions */\n ZoomIn,\n ZoomOut,\n Reset,\n HideCurrObject,\n HideCurrCategory,\n HideAll,\n PanImage,\n /** Annotation Actions */\n DeleteCurrObject,\n SaveCurrObject,\n CancelCurrObject,\n}\n\nexport const EDITOR_SHORTCUTS: Record = {\n [EShortcuts.RectangleTool]: {\n name: 'RectangleTool',\n type: EShortcutType.Tool,\n shortcut: ['r'],\n descTextKey: 'DDSAnnotator.shortcuts.tools.rectangle',\n },\n [EShortcuts.PolygonTool]: {\n name: 'PolygonTool',\n type: EShortcutType.Tool,\n shortcut: ['p'],\n descTextKey: 'DDSAnnotator.shortcuts.tools.polygon',\n },\n [EShortcuts.SkeletonTool]: {\n name: 'SkeletonTool',\n type: EShortcutType.Tool,\n shortcut: ['s'],\n descTextKey: 'DDSAnnotator.shortcuts.tools.skeleton',\n },\n [EShortcuts.MaskTool]: {\n name: 'MaskTool',\n type: EShortcutType.Tool,\n shortcut: ['m'],\n descTextKey: 'DDSAnnotator.shortcuts.tools.mask',\n },\n [EShortcuts.DragTool]: {\n name: 'DragTool',\n type: EShortcutType.Tool,\n shortcut: ['d'],\n descTextKey: 'DDSAnnotator.shortcuts.tools.drag',\n },\n [EShortcuts.SmartAnnotation]: {\n name: 'SmartAnnotation',\n type: EShortcutType.GeneralAction,\n shortcut: ['a'],\n descTextKey: 'DDSAnnotator.shortcuts.general.smart',\n },\n [EShortcuts.Undo]: {\n name: 'Undo',\n type: EShortcutType.GeneralAction,\n shortcut: ['ctrl.z', 'meta.z'],\n descTextKey: 'DDSAnnotator.shortcuts.general.undo',\n },\n [EShortcuts.Redo]: {\n name: 'Redo',\n type: EShortcutType.GeneralAction,\n shortcut: ['ctrl.shift.z', 'meta.shift.z'],\n descTextKey: 'DDSAnnotator.shortcuts.general.redo',\n },\n [EShortcuts.RepeatPrevious]: {\n name: 'RepeatPrevious',\n type: EShortcutType.GeneralAction,\n shortcut: ['ctrl.r', 'meta.r'],\n descTextKey: 'DDSAnnotator.shortcuts.general.repeatPrevious',\n },\n [EShortcuts.DeleteAll]: {\n name: 'DeleteAll',\n type: EShortcutType.GeneralAction,\n shortcut: ['ctrl.shift.d', 'meta.shift.d'],\n descTextKey: 'DDSAnnotator.shortcuts.general.deleteAll',\n },\n [EShortcuts.Save]: {\n name: 'Save',\n type: EShortcutType.GeneralAction,\n shortcut: ['ctrl.s', 'meta.s'],\n descTextKey: 'DDSAnnotator.shortcuts.general.save',\n },\n [EShortcuts.HideCurrObject]: {\n name: 'HideCurrObject',\n type: EShortcutType.ViewAction,\n shortcut: ['h'],\n descTextKey: 'DDSAnnotator.shortcuts.viewControl.hideCurrObject',\n },\n [EShortcuts.HideCurrCategory]: {\n name: 'HideCurrCategory',\n type: EShortcutType.ViewAction,\n shortcut: ['ctrl.h', 'meta.h'],\n descTextKey: 'DDSAnnotator.shortcuts.viewControl.hideCurrCategory',\n },\n [EShortcuts.HideAll]: {\n name: 'HideAll',\n type: EShortcutType.ViewAction,\n shortcut: ['ctrl.shift.h', 'meta.shift.h'],\n descTextKey: 'DDSAnnotator.shortcuts.viewControl.hideAll',\n },\n [EShortcuts.ZoomIn]: {\n name: 'ZoomIn',\n type: EShortcutType.ViewAction,\n shortcut: ['equalsign'],\n descTextKey: 'DDSAnnotator.shortcuts.viewControl.zoomIn',\n },\n [EShortcuts.ZoomOut]: {\n name: 'ZoomOut',\n type: EShortcutType.ViewAction,\n shortcut: ['dash'],\n descTextKey: 'DDSAnnotator.shortcuts.viewControl.zoomOut',\n },\n [EShortcuts.Reset]: {\n name: 'Reset',\n type: EShortcutType.ViewAction,\n shortcut: ['0'],\n descTextKey: 'DDSAnnotator.shortcuts.viewControl.zoomReset',\n },\n [EShortcuts.Accept]: {\n name: 'Accept',\n type: EShortcutType.GeneralAction,\n shortcut: ['ctrl.a', 'meta.a'],\n descTextKey: 'DDSAnnotator.shortcuts.general.accept',\n },\n [EShortcuts.Reject]: {\n name: 'Reject',\n type: EShortcutType.GeneralAction,\n shortcut: ['ctrl.r', 'meta.r'],\n descTextKey: 'DDSAnnotator.shortcuts.general.reject',\n },\n [EShortcuts.NextImage]: {\n name: 'NextImage',\n type: EShortcutType.ViewAction,\n shortcut: ['rightarrow'],\n descTextKey: 'DDSAnnotator.shortcuts.general.next',\n },\n [EShortcuts.PreviousImage]: {\n name: 'PreviousImage',\n type: EShortcutType.ViewAction,\n shortcut: ['leftarrow'],\n descTextKey: 'DDSAnnotator.shortcuts.general.prev',\n },\n [EShortcuts.PanImage]: {\n name: 'PanImage',\n type: EShortcutType.ViewAction,\n shortcut: ['Space'],\n descTextKey: 'DDSAnnotator.shortcuts.viewControl.panImage',\n },\n [EShortcuts.SaveCurrObject]: {\n name: 'SaveCurrObject',\n type: EShortcutType.AnnotationAction,\n shortcut: ['enter'],\n descTextKey: 'DDSAnnotator.shortcuts.annotsControl.finish',\n },\n [EShortcuts.DeleteCurrObject]: {\n name: 'DeleteCurrObject',\n type: EShortcutType.AnnotationAction,\n shortcut: ['Backspace', 'Delete'],\n descTextKey: 'DDSAnnotator.shortcuts.annotsControl.delete',\n },\n [EShortcuts.CancelCurrObject]: {\n name: 'CancelCurrObject',\n type: EShortcutType.AnnotationAction,\n shortcut: ['esc'],\n descTextKey: 'DDSAnnotator.shortcuts.annotsControl.cancel',\n },\n};\n\nexport const convertAliasToSymbol = (key: string) => {\n let res = key;\n switch (key) {\n case 'meta':\n res = '⌘';\n break;\n case 'shift':\n res = '⇧';\n break;\n case 'equalsign':\n case 'add':\n res = '+';\n break;\n case 'dash':\n case 'subtract':\n res = '-';\n break;\n case 'leftarrow':\n res = '←';\n break;\n case 'rightarrow':\n res = '→';\n break;\n default:\n res = key.toUpperCase();\n break;\n }\n return res;\n};\n","import Icon, {\n DeleteOutlined,\n EyeInvisibleOutlined,\n EyeOutlined,\n} from '@ant-design/icons';\nimport { useKeyPress } from 'ahooks';\nimport { Button, Collapse, List, Tabs, Tooltip } from 'antd';\nimport classNames from 'classnames';\nimport { useWindowResize } from 'dds-hooks';\nimport { useLocale } from 'dds-utils/locale';\nimport { isEqual } from 'lodash';\nimport VirtualList, { ListRef } from 'rc-virtual-list';\nimport React, {\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Updater } from 'use-immer';\n\nimport { ReactComponent as Attribute } from '../../assets/attribute.svg';\nimport { ReactComponent as DownArrorIcon } from '../../assets/downArror.svg';\nimport { ReactComponent as Layer } from '../../assets/layer.svg';\nimport { ReactComponent as Palette } from '../../assets/palette.svg';\nimport { OBJECT_ICON } from '../../constants';\nimport { EDITOR_SHORTCUTS, EShortcuts } from '../../constants/shortcuts';\nimport {\n Category,\n DrawData,\n IAnnotationObject,\n IAnnotsDisplayOptions,\n} from '../../type';\n\nimport './index.less';\n\nexport interface IProps {\n objects: IAnnotationObject[];\n framesObjects?: IAnnotationObject[][];\n activeObjectIndex: number;\n className?: string;\n supportEdit?: boolean;\n activeClassName: string;\n onFocusObject: (index: number) => void;\n onActiveObject: (index: number) => void;\n onChangeObjectHidden: (index: number, hidden: boolean) => void;\n onChangeCategoryHidden: (category: string, hidden: boolean) => void;\n onDeleteObject: (index: number) => void;\n onChangeActiveClassName: (className: string) => void;\n categories: Category[];\n setDrawDataWithHistory: Updater;\n colorByCategory: boolean;\n onChangeAnnotsDisplayOpts: (options: IAnnotsDisplayOptions) => void;\n}\n\nenum ETab {\n Object = 'object',\n Class = 'class',\n}\n\ntype TObjectItem = IAnnotationObject & {\n /** Index in the ObjectList Array */\n originIndex: number;\n};\n\n// TODO: 优化objectList数据, 缩放或移动鼠标不应该刷新ObjectList\nconst propsAreEqual = (prev: IProps, next: IProps): boolean => {\n return (\n isEqual(prev.objects, next.objects) &&\n isEqual(prev.framesObjects, next.framesObjects) &&\n prev.activeObjectIndex === next.activeObjectIndex &&\n prev.supportEdit === next.supportEdit &&\n prev.activeClassName === next.activeClassName &&\n prev.className === next.className &&\n prev.onChangeActiveClassName === next.onChangeActiveClassName &&\n prev.onFocusObject === next.onFocusObject &&\n prev.onDeleteObject === next.onDeleteObject &&\n prev.onChangeObjectHidden === next.onChangeObjectHidden &&\n prev.onChangeCategoryHidden === next.onChangeCategoryHidden &&\n prev.setDrawDataWithHistory === next.setDrawDataWithHistory &&\n isEqual(prev.categories, next.categories) &&\n prev.colorByCategory === next.colorByCategory &&\n prev.onChangeAnnotsDisplayOpts === next.onChangeAnnotsDisplayOpts\n );\n};\n\nexport const ObjectList: React.FC = memo((props) => {\n const {\n objects,\n framesObjects,\n activeObjectIndex,\n className,\n supportEdit,\n activeClassName,\n onFocusObject,\n onActiveObject,\n onChangeObjectHidden,\n onDeleteObject,\n onChangeCategoryHidden,\n onChangeActiveClassName,\n categories,\n setDrawDataWithHistory,\n colorByCategory,\n onChangeAnnotsDisplayOpts,\n } = props;\n const { localeText } = useLocale();\n\n const DEFAULT_CLASS_NAME = localeText(\n 'DDSAnnotator.annotsList.uncategorized',\n );\n\n const [curTab, setCurTab] = useState(ETab.Class);\n const onChangeTab = (key: string) => {\n setCurTab(key as ETab);\n };\n\n /** Attributes for Virtual List */\n const { height } = useWindowResize();\n const collapseHeaderHeight = 45;\n const itemHeight = 35;\n const containerHeight = height - collapseHeaderHeight - 56;\n const virtualListRef = useRef(null);\n\n const hideAllObjs = useMemo(() => {\n return !objects.some((item) => !item.hidden);\n }, [objects]);\n\n const onAllObjectHidden = () => {\n objects.forEach((_, index) => {\n onChangeObjectHidden(index, !hideAllObjs);\n });\n };\n\n const switchColorMode = () => {\n onChangeAnnotsDisplayOpts({\n colorByCategory: !colorByCategory,\n });\n };\n\n const showEditingAttributes = useCallback(\n (object: IAnnotationObject, label: Category, index: number) => {\n onActiveObject(index);\n setDrawDataWithHistory((s) => {\n s.editingAttribute = {\n index,\n labelId: object.labelId,\n attributes: label.attributes || [],\n values: object.attributes || [],\n };\n });\n },\n [onActiveObject, setDrawDataWithHistory],\n );\n\n /** Hide All Objects */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.HideAll].shortcut,\n (event) => {\n event.preventDefault();\n onAllObjectHidden();\n },\n {\n exactMatch: true,\n },\n );\n\n /** Map of instances grouped by category */\n const objectMapByClass: Record = useMemo(() => {\n return objects.reduce(\n (\n acc: Record,\n obj: IAnnotationObject,\n index: number,\n ) => {\n const labelName =\n categories.find((c) => c.id === obj.labelId)?.name ||\n DEFAULT_CLASS_NAME;\n if (!acc[labelName]) {\n acc[labelName] = [];\n }\n acc[labelName].push({ ...obj, originIndex: index });\n return acc;\n },\n {},\n );\n }, [objects]);\n\n /** Automatically scroll the currently active instance into view */\n useEffect(() => {\n if (activeObjectIndex < 0) return;\n const activeTab = document.querySelector('.ant-tabs-tabpane-active');\n if (curTab === ETab.Object) {\n const activeElement = activeTab?.querySelector(\n `.tab-collapse .ant-collapse-item:nth-child(${activeObjectIndex + 1})`,\n );\n activeElement?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n } else if (curTab === ETab.Class && objectMapByClass[activeClassName]) {\n const index = objectMapByClass[activeClassName].findIndex(\n (item) => item.originIndex === activeObjectIndex,\n );\n if (index > -1) {\n virtualListRef.current?.scrollTo({\n index,\n align: 'auto',\n });\n }\n }\n }, [activeObjectIndex]);\n\n /** ClassTab: Tiling by category with support for expanding to the instance level */\n const classTab = (\n \n {objects.length > 0 &&\n Object.keys(objectMapByClass)\n .sort()\n .map((labelName) => {\n const subObjects = objectMapByClass[labelName];\n const isHidden = subObjects.every((item) => item.hidden);\n const firstColor = subObjects[0]?.color;\n return (\n {\n onChangeActiveClassName(\n labelName === activeClassName ? '' : labelName,\n );\n }}\n >\n {activeClassName === labelName && (\n \n )}\n
{labelName}
\n
\n {subObjects.length}\n \n \n ) : (\n \n )\n }\n shape={'circle'}\n onClick={(event) => {\n event.stopPropagation();\n onChangeCategoryHidden(labelName, !isHidden);\n }}\n />\n \n }\n shape={'circle'}\n />\n
\n \n }\n >\n {activeClassName === labelName && (\n \n \n {(object: TObjectItem, objIndex: number) => {\n const label = categories.find(\n (c) => c.id === object.labelId,\n );\n const hasAttributes = !!label?.attributes?.length;\n const requireAttribute = label?.attributes?.find(\n (attribute, index) =>\n attribute.required &&\n [undefined, null, ''].includes(\n object.attributes?.[index] as any,\n ),\n );\n const frameCount =\n framesObjects?.[object.originIndex]?.filter(\n (obj) => obj && !obj.frameEmpty,\n )?.length || 1;\n return (\n {\n onFocusObject(object.originIndex);\n }}\n onClick={(event) => {\n event.stopPropagation();\n onActiveObject(object.originIndex);\n }}\n >\n {activeObjectIndex === object.originIndex && (\n \n )}\n \n
\n # {object.originIndex + 1}\n
\n
\n {framesObjects && (\n \n {frameCount}\n \n )}\n {hasAttributes && (\n \n }\n shape={'circle'}\n onClick={(event) => {\n event.stopPropagation();\n showEditingAttributes(\n object,\n label,\n object.originIndex,\n );\n }}\n />\n \n )}\n \n \n ) : (\n \n )\n }\n shape={'circle'}\n onClick={(event) => {\n event.stopPropagation();\n onChangeObjectHidden(\n object.originIndex,\n !object.hidden,\n );\n }}\n />\n \n {supportEdit && (\n <>\n \n }\n shape={'circle'}\n onClick={(event) => {\n event.stopPropagation();\n onDeleteObject(object.originIndex);\n }}\n />\n \n \n )}\n
\n \n );\n }}\n \n
\n )}\n \n );\n })}\n \n );\n\n return (\n {\n event.stopPropagation();\n }}\n >\n \n \n }\n onClick={switchColorMode}\n >\n \n {objects.length > 0 && (\n \n : \n }\n shape={'circle'}\n onClick={onAllObjectHidden}\n />\n \n )}\n \n }\n />\n \n );\n}, propsAreEqual);\n","// This icon file is generated automatically.\nvar DownCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.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\": \"down-circle\", \"theme\": \"outlined\" };\nexport default DownCircleOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DownCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DownCircleOutlined = function DownCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DownCircleOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n DownCircleOutlined.displayName = 'DownCircleOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(DownCircleOutlined);","// This icon file is generated automatically.\nvar UpCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M518.5 360.3a7.95 7.95 0 00-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7H381c10.2 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246z\" } }, { \"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\": \"up-circle\", \"theme\": \"outlined\" };\nexport default UpCircleOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UpCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/UpCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UpCircleOutlined = function UpCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UpCircleOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n UpCircleOutlined.displayName = 'UpCircleOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(UpCircleOutlined);","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"item___v9XQ_\",\"selected\":\"selected___H8gjQ\",\"info\":\"info___YLqTh\",\"action\":\"action___zGuUy\",\"btn\":\"btn___ean1l\"};","import { Select } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\n\nimport { KEYPOINTS_VISIBLE_TYPE } from '../../constants';\n\nimport styles from './index.less';\n\ninterface IProps {\n point: IElement;\n index: number;\n active: boolean;\n onVisibleChange: (val: number) => void;\n onMouseEnter?: React.MouseEventHandler;\n onMouseOut?: React.MouseEventHandler;\n onMouseOver?: React.MouseEventHandler;\n}\n\nconst PointItem: React.FC = ({\n point,\n index,\n active,\n onMouseEnter,\n onMouseOut,\n onMouseOver,\n onVisibleChange,\n}) => {\n const { localeText } = useLocale();\n\n return (\n \n {active && (\n \n )}\n
\n {point.name ? `#${index + 1} ${point.name}` : `${index + 1} `}\n
\n
\n \n \n {localeText('DDSAnnotator.annotsList.point.notInImage')}\n \n \n {localeText('DDSAnnotator.annotsList.point.notVisible')}\n \n \n {localeText('DDSAnnotator.annotsList.point.visible')}\n \n \n
\n \n );\n};\n\nexport default PointItem;\n","import { DownCircleOutlined, UpCircleOutlined } from '@ant-design/icons';\nimport { Card } from 'antd';\nimport classNames from 'classnames';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo, useMemo, useState } from 'react';\nimport { Updater } from 'use-immer';\n\nimport {\n EElementType,\n EObjectType,\n KEYPOINTS_VISIBLE_TYPE,\n} from '../../constants';\nimport { EditState, EditorMode, IAnnotationObject } from '../../type';\nimport { FloatWrapper } from '../FloatWrapper';\nimport PointItem from '../PointItem';\n\nimport './index.less';\n\ninterface IProps {\n mode: EditorMode;\n isAiAnnotation: boolean;\n currObject: IAnnotationObject | undefined;\n currObjectIndex: number;\n focusObjectIndex: number;\n focusEleType: EElementType;\n focusEleIndex: number;\n onChangePointVisible: (\n pointIndex: number,\n visible: KEYPOINTS_VISIBLE_TYPE,\n ) => void;\n setEditState: Updater;\n}\n\nconst PointsEditModal: React.FC = memo(\n ({\n mode,\n isAiAnnotation,\n currObject,\n currObjectIndex,\n focusObjectIndex,\n focusEleType,\n focusEleIndex,\n onChangePointVisible,\n setEditState,\n }) => {\n const { localeText } = useLocale();\n const [collapsed, setCollapsed] = useState(true);\n\n const show = useMemo(() => {\n if (\n currObjectIndex > -1 &&\n currObject?.type === EObjectType.Skeleton &&\n !isAiAnnotation\n ) {\n return true;\n }\n return false;\n }, [mode, currObject, currObjectIndex, isAiAnnotation]);\n\n const onFocusEleIndex = (index: number) => {\n setEditState((s) => {\n s.focusObjectIndex = currObjectIndex;\n s.focusEleIndex = index;\n s.focusEleType = EElementType.Circle;\n });\n };\n\n return (\n \n setCollapsed((s) => !s)}>\n {localeText('DDSAnnotator.points.editor')}\n
\n {collapsed ? : }\n
\n \n }\n >\n {!collapsed && (\n {\n event.stopPropagation();\n }}\n >\n {currObject &&\n currObject.keypoints &&\n currObject.keypoints.points.map((ele, eleIndex) => (\n onFocusEleIndex(eleIndex)}\n onVisibleChange={(visible) => {\n onChangePointVisible(eleIndex, visible);\n }}\n />\n ))}\n \n )}\n \n
\n );\n },\n);\n\nexport default PointsEditModal;\n","import { useKeyPress } from 'ahooks';\nimport { Button, Card } from 'antd';\nimport classNames from 'classnames';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo, useMemo } from 'react';\n\nimport { EObjectType } from '../../constants';\nimport { EDITOR_SHORTCUTS, EShortcuts } from '../../constants/shortcuts';\nimport { EditorMode, IAnnotationObject } from '../../type';\nimport { FloatWrapper } from '../FloatWrapper';\n\nimport './index.less';\n\ninterface IProps {\n mode: EditorMode;\n isAiAnnotation: boolean;\n latestLabelId: string;\n currObject: IAnnotationObject | undefined;\n onFinishCurrCreate: (labelId: string) => void;\n}\n\nconst SegConfirmModal: React.FC = memo(\n ({ mode, isAiAnnotation, latestLabelId, currObject, onFinishCurrCreate }) => {\n const { localeText } = useLocale();\n\n const show = useMemo(() => {\n if (mode !== EditorMode.Edit) return false;\n if (\n currObject?.type === EObjectType.Mask ||\n (currObject?.type === EObjectType.Polygon && isAiAnnotation)\n ) {\n return true;\n }\n return false;\n }, [mode, currObject, isAiAnnotation]);\n\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.SaveCurrObject].shortcut,\n (event: KeyboardEvent) => {\n if (currObject) {\n event.preventDefault();\n onFinishCurrCreate(latestLabelId);\n }\n },\n {\n exactMatch: true,\n },\n );\n\n return (\n \n {localeText('DDSAnnotator.seg.tool')}\n }\n >\n
\n
{localeText('DDSAnnotator.seg.tool.content')}
\n {\n event.preventDefault();\n onFinishCurrCreate(latestLabelId);\n }}\n >\n {localeText('DDSAnnotator.confirm')}\n \n
\n \n
\n );\n },\n);\n\nexport default SegConfirmModal;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgDrag = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 29 29\" }, props), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"style\", null, \".drag_svg__cls-1{fill:none}\")), /* @__PURE__ */ React.createElement(\"path\", { className: \"drag_svg__cls-1\", d: \"M2.83 2.83h28.35v28.35H2.83z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"drag_svg__cls-1\", d: \"M2.83 2.83h28.35v28.35H2.83z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"drag_svg__cls-1\", d: \"M2.83 2.83h28.35v28.35H2.83Z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"drag_svg__cls-2\", d: \"m21.73 18.19 8.23 4.8-3.51 1 2.51 4.35-2.05 1.18-2.51-4.35-2.63 2.54-.04-9.52z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"drag_svg__cls-2\", d: \"M19.37 9.92h2.36v2.36h5.91a1.18 1.18 0 0 1 1.18 1.18v4.73h-2.36v-3.54H14.65v11.81h4.72v2.36h-5.91a1.18 1.18 0 0 1-1.18-1.18v-5.91H9.92v-2.36h2.36v-5.91a1.18 1.18 0 0 1 1.18-1.18h5.91ZM5.2 19.37h2.36v2.36H5.2zM5.2 14.65h2.36v2.36H5.2zM5.2 9.92h2.36v2.36H5.2zM5.2 5.2h2.36v2.36H5.2zM9.92 5.2h2.36v2.36H9.92zM14.65 5.2h2.36v2.36h-2.36zM19.37 5.2h2.36v2.36h-2.36z\" }));\nexport { SvgDrag as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOSAyOSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOm5vbmV9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMi44MyAyLjgzaDI4LjM1djI4LjM1SDIuODN6Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMi44MyAyLjgzaDI4LjM1djI4LjM1SDIuODN6Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMi44MyAyLjgzaDI4LjM1djI4LjM1SDIuODNaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJtMjEuNzMgMTguMTkgOC4yMyA0LjgtMy41MSAxIDIuNTEgNC4zNS0yLjA1IDEuMTgtMi41MS00LjM1LTIuNjMgMi41NC0uMDQtOS41MnoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xOS4zNyA5LjkyaDIuMzZ2Mi4zNmg1LjkxYTEuMTggMS4xOCAwIDAgMSAxLjE4IDEuMTh2NC43M2gtMi4zNnYtMy41NEgxNC42NXYxMS44MWg0LjcydjIuMzZoLTUuOTFhMS4xOCAxLjE4IDAgMCAxLTEuMTgtMS4xOHYtNS45MUg5Ljkydi0yLjM2aDIuMzZ2LTUuOTFhMS4xOCAxLjE4IDAgMCAxIDEuMTgtMS4xOGg1LjkxWk01LjIgMTkuMzdoMi4zNnYyLjM2SDUuMnpNNS4yIDE0LjY1aDIuMzZ2Mi4zNkg1LjJ6TTUuMiA5LjkyaDIuMzZ2Mi4zNkg1LjJ6TTUuMiA1LjJoMi4zNnYyLjM2SDUuMnpNOS45MiA1LjJoMi4zNnYyLjM2SDkuOTJ6TTE0LjY1IDUuMmgyLjM2djIuMzZoLTIuMzZ6TTE5LjM3IDUuMmgyLjM2djIuMzZoLTIuMzZ6Ii8+PC9zdmc+\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgZoomResize = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ className: \"zoomResize_svg__icon\", viewBox: \"0 0 1024 1024\", xmlns: \"http://www.w3.org/2000/svg\", width: 200, height: 200 }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M981.333 42.667v938.666H42.667V42.667h938.666zM128 896h768V128H128v768zm170.667-170.667H448v85.334H213.333V576h85.334v149.333zm426.666-426.666H576v-85.334h234.667V448h-85.334V298.667z\" }));\nexport { SvgZoomResize as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTk4MS4zMzMgNDIuNjY3djkzOC42NjZINDIuNjY3VjQyLjY2N2g5MzguNjY2ek0xMjggODk2aDc2OFYxMjhIMTI4djc2OHptMTcwLjY2Ny0xNzAuNjY3SDQ0OHY4NS4zMzRIMjEzLjMzM1Y1NzZoODUuMzM0djE0OS4zMzN6bTQyNi42NjYtNDI2LjY2Nkg1NzZ2LTg1LjMzNGgyMzQuNjY3VjQ0OGgtODUuMzM0VjI5OC42Njd6Ii8+PC9zdmc+\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgKeyboardDown = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M21.5 3h-19A2.503 2.503 0 0 0 0 5.5V17h24V5.5C24 4.122 22.878 3 21.5 3Zm.5 12H2V5.5a.5.5 0 0 1 .5-.5h19a.5.5 0 0 1 .5.5V15ZM4 7h3v2H4V7Zm8 2H9V7h3v2Zm2-2h6v2h-6V7Zm-6 4h8v2H8v-2Zm10 0h2v2h-2v-2ZM4 11h2v2H4v-2Zm11.293 7.707 1.414 1.414-3.293 3.293c-.39.39-.902.585-1.414.585a1.993 1.993 0 0 1-1.414-.585l-3.293-3.293 1.414-1.414L12 22l3.293-3.293Z\" }));\nexport { SvgKeyboardDown as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxLjUgM2gtMTlBMi41MDMgMi41MDMgMCAwIDAgMCA1LjVWMTdoMjRWNS41QzI0IDQuMTIyIDIyLjg3OCAzIDIxLjUgM1ptLjUgMTJIMlY1LjVhLjUuNSAwIDAgMSAuNS0uNWgxOWEuNS41IDAgMCAxIC41LjVWMTVaTTQgN2gzdjJINFY3Wm04IDJIOVY3aDN2MlptMi0yaDZ2MmgtNlY3Wm0tNiA0aDh2Mkg4di0yWm0xMCAwaDJ2MmgtMnYtMlpNNCAxMWgydjJINHYtMlptMTEuMjkzIDcuNzA3IDEuNDE0IDEuNDE0LTMuMjkzIDMuMjkzYy0uMzkuMzktLjkwMi41ODUtMS40MTQuNTg1YTEuOTkzIDEuOTkzIDAgMCAxLTEuNDE0LS41ODVsLTMuMjkzLTMuMjkzIDEuNDE0LTEuNDE0TDEyIDIybDMuMjkzLTMuMjkzWiIvPjwvc3ZnPg==\";\n","import Icon from '@ant-design/icons';\nimport { Dropdown, Menu, MenuProps, Tooltip } from 'antd';\nimport classNames from 'classnames';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo, useMemo } from 'react';\n\nimport { ReactComponent as KeyboardIcon } from '../../assets/keyboard-down.svg';\nimport {\n convertAliasToSymbol,\n EDITOR_SHORTCUTS,\n EShortcuts,\n EShortcutType,\n TShortcutItem,\n} from '../../constants/shortcuts';\nimport { EditorMode } from '../../type';\n\nimport './index.less';\n\ninterface IProps {\n mode: EditorMode;\n // viewOnly: boolean;\n}\n\nexport const getIconFromShortcut = (keys: string[], withStyle = true) => {\n const userAgent = navigator.userAgent.toLowerCase();\n const isMac = userAgent.indexOf('mac') > -1;\n const icons: any[] = [];\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index];\n if ((!isMac && key.includes('meta')) || (isMac && key.includes('ctrl'))) {\n continue;\n }\n if (key.includes('.')) {\n const combineKeys = key.split('.');\n combineKeys.forEach((key, idx) => {\n const letter = (\n \n {convertAliasToSymbol(key)}\n \n );\n icons.push(letter);\n if (idx !== combineKeys.length - 1) {\n icons.push(\n \n {' '}\n +{' '}\n ,\n );\n }\n });\n } else {\n const letter = (\n \n {convertAliasToSymbol(key)}\n \n );\n icons.push(letter);\n }\n if (index !== keys.length - 1) {\n icons.push(\n \n {' '}\n /{' '}\n ,\n );\n }\n }\n return {icons};\n};\n\nexport const ShortcutsInfo: React.FC = memo(({ mode }) => {\n const { localeText } = useLocale();\n\n const convertShortcutsToMenuProps = (\n shortcuts: Record,\n ): MenuProps['items'] => {\n const categories: Record = {};\n for (const key in shortcuts) {\n if (shortcuts.hasOwnProperty(key)) {\n // @ts-ignore\n const { name, type, descTextKey, shortcut } = shortcuts[key];\n const description = localeText(descTextKey);\n if (mode === EditorMode.View && type !== EShortcutType.ViewAction) {\n continue;\n }\n if (mode === EditorMode.Review) {\n if (\n [EShortcutType.AnnotationAction, EShortcutType.Tool].includes(type)\n ) {\n continue;\n }\n if (\n [EShortcutType.GeneralAction].includes(type) &&\n name !== 'Accept' &&\n name !== 'Reject'\n ) {\n continue;\n }\n }\n\n if (categories[type]) {\n categories[type].children.push({\n key,\n label: description,\n icon: {getIconFromShortcut(shortcut)},\n });\n } else {\n categories[type] = {\n key: type,\n type: 'group',\n label: localeText(type),\n children: [\n {\n key,\n label: description,\n icon: {getIconFromShortcut(shortcut)},\n },\n ],\n };\n }\n }\n }\n return Object.values(categories);\n };\n\n const items = useMemo(() => {\n return convertShortcutsToMenuProps(EDITOR_SHORTCUTS) || [];\n }, [mode]);\n\n return (\n (\n \n )}\n trigger={['click']}\n >\n \n \n \n \n );\n});\n","import Icon, { ZoomInOutlined, ZoomOutOutlined } from '@ant-design/icons';\nimport { useKeyPress } from 'ahooks';\nimport { Button, Popover } from 'antd';\nimport classNames from 'classnames';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo, useMemo } from 'react';\n\nimport { ReactComponent as DragToolIcon } from '../../assets/drag.svg';\nimport { ReactComponent as ZoomResize } from '../../assets/zoomResize.svg';\nimport {\n EBasicToolItem,\n EObjectType,\n EActionToolItem,\n EToolType,\n OBJECT_ICON,\n EDITOR_TOOL_ICON,\n MAX_SCALE,\n MIN_SCALE,\n OBJECT_AI_ICON,\n TOOL_MODELS_MAP,\n EnumModelType,\n} from '../../constants';\nimport {\n EDITOR_SHORTCUTS,\n EShortcuts,\n TShortcutItem,\n} from '../../constants/shortcuts';\nimport { getIconFromShortcut } from '../ShortcutsInfo';\n\nimport './index.less';\n\ntype TToolItem = {\n key: T;\n name: string;\n shortcut: TShortcutItem;\n icon: JSX.Element;\n aiIcon?: JSX.Element;\n aiModels?: EnumModelType[];\n description?: string;\n};\n\ninterface IProps {\n selectedTool: EToolType;\n manualMode?: boolean;\n limitToolTypes?: EBasicToolItem[];\n supportRepeat?: boolean;\n isAIAnnotationActive: boolean;\n onChangeSelectedTool: (type: EToolType) => void;\n onActiveAIAnnotation: (active: boolean) => void;\n undo: () => void;\n redo: () => void;\n repeatPrevious?: () => void;\n deleteAll: () => void;\n scale: number;\n onZoomIn: () => void;\n onZoomOut: () => void;\n onZoomReset: () => void;\n onlySupportZoom: boolean;\n hideUndoRedoActions?: boolean;\n}\n\nconst SliderToolBar: React.FC = memo(\n ({\n selectedTool,\n manualMode,\n supportRepeat,\n limitToolTypes,\n isAIAnnotationActive,\n onChangeSelectedTool,\n onActiveAIAnnotation,\n undo,\n redo,\n repeatPrevious,\n deleteAll,\n scale,\n onZoomIn,\n onZoomOut,\n onZoomReset,\n onlySupportZoom,\n hideUndoRedoActions,\n }) => {\n const { localeText } = useLocale();\n\n const dragTools: TToolItem[] = useMemo(() => {\n return [\n {\n key: EBasicToolItem.Drag,\n name: localeText('DDSAnnotator.toolbar.drag'),\n shortcut: EDITOR_SHORTCUTS[EShortcuts.DragTool],\n icon: ,\n description: localeText('DDSAnnotator.toolbar.drag.desc'),\n },\n ];\n }, []);\n\n const annoTools: TToolItem[] = useMemo(() => {\n const typeTools = [\n {\n key: EBasicToolItem.Rectangle,\n name: localeText('DDSAnnotator.toolbar.rectangle'),\n shortcut: EDITOR_SHORTCUTS[EShortcuts.RectangleTool],\n icon: ,\n aiIcon: ,\n aiModels: TOOL_MODELS_MAP[EBasicToolItem.Rectangle],\n description: localeText('DDSAnnotator.toolbar.rectangle.desc'),\n },\n {\n key: EBasicToolItem.Polygon,\n name: localeText('DDSAnnotator.toolbar.polygon'),\n shortcut: EDITOR_SHORTCUTS[EShortcuts.PolygonTool],\n icon: ,\n aiIcon: ,\n description: localeText('DDSAnnotator.toolbar.polygon.desc'),\n },\n {\n key: EBasicToolItem.Skeleton,\n name: localeText('DDSAnnotator.toolbar.skeleton'),\n shortcut: EDITOR_SHORTCUTS[EShortcuts.SkeletonTool],\n icon: ,\n aiIcon: ,\n description: localeText('DDSAnnotator.toolbar.skeleton.desc'),\n },\n {\n key: EBasicToolItem.Mask,\n name: localeText('DDSAnnotator.toolbar.mask'),\n shortcut: EDITOR_SHORTCUTS[EShortcuts.MaskTool],\n icon: ,\n aiIcon: ,\n description: localeText('DDSAnnotator.toolbar.mask.desc'),\n },\n ];\n if (limitToolTypes) {\n return typeTools.filter((item) => limitToolTypes.includes(item.key));\n }\n return typeTools;\n }, [limitToolTypes]);\n\n const smartTool: TToolItem = {\n key: EActionToolItem.SmartAnnotation,\n name: localeText('DDSAnnotator.toolbar.aiAnno'),\n shortcut: EDITOR_SHORTCUTS[EShortcuts.SmartAnnotation],\n icon: (\n \n ),\n description: localeText('DDSAnnotator.toolbar.aiAnno.desc'),\n };\n\n const actionTools = [\n ...(!hideUndoRedoActions\n ? [\n {\n key: EActionToolItem.Undo,\n name: localeText('DDSAnnotator.toolbar.undo'),\n icon: ,\n shortcut: EDITOR_SHORTCUTS[EShortcuts.Undo],\n handler: undo,\n description: localeText('DDSAnnotator.toolbar.undo.desc'),\n },\n {\n key: EActionToolItem.Redo,\n name: localeText('DDSAnnotator.toolbar.redo'),\n icon: ,\n shortcut: EDITOR_SHORTCUTS[EShortcuts.Redo],\n handler: redo,\n description: localeText('DDSAnnotator.toolbar.redo.desc'),\n },\n ]\n : []),\n ...(supportRepeat\n ? [\n {\n key: EActionToolItem.RepeatPrevious,\n name: localeText('DDSAnnotator.toolbar.repeatPrevious'),\n icon: (\n \n ),\n shortcut: EDITOR_SHORTCUTS[EShortcuts.RepeatPrevious],\n handler: repeatPrevious,\n description: localeText(\n 'DDSAnnotator.toolbar.repeatPrevious.desc',\n ),\n },\n ]\n : []),\n {\n key: EActionToolItem.DeleteAll,\n name: localeText('DDSAnnotator.toolbar.deleteAll'),\n icon: ,\n shortcut: EDITOR_SHORTCUTS[EShortcuts.DeleteAll],\n handler: deleteAll,\n description: localeText('DDSAnnotator.toolbar.deleteAll.desc'),\n },\n ];\n\n const basicToolKeys: string[] = useMemo(() => {\n return [...dragTools, ...annoTools].reduce((keys: string[], tool) => {\n return keys.concat(tool.shortcut.shortcut);\n }, []);\n }, [dragTools, annoTools]);\n\n /** Active Basic Tool */\n useKeyPress(\n basicToolKeys,\n (event) => {\n const activeTool = [...dragTools, ...annoTools].find((tool) => {\n return tool.shortcut.shortcut.includes(event.key);\n });\n if (activeTool) {\n onChangeSelectedTool(activeTool.key);\n }\n },\n {\n exactMatch: true,\n },\n );\n\n /** Active AI Annotation */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.SmartAnnotation].shortcut,\n () => {\n if (selectedTool !== EBasicToolItem.Drag) {\n onActiveAIAnnotation(!isAIAnnotationActive);\n }\n },\n {\n exactMatch: true,\n },\n );\n\n /** Undo */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.Undo].shortcut,\n (event: KeyboardEvent) => {\n event.preventDefault();\n undo();\n },\n {\n exactMatch: true,\n },\n );\n\n /** Redo */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.Redo].shortcut,\n (event: KeyboardEvent) => {\n event.preventDefault();\n redo();\n },\n {\n exactMatch: true,\n },\n );\n\n /** Repeat Previous */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.RepeatPrevious].shortcut,\n (event: KeyboardEvent) => {\n event.preventDefault();\n repeatPrevious?.();\n },\n {\n exactMatch: true,\n },\n );\n\n /** Delete All */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.DeleteAll].shortcut,\n (event: KeyboardEvent) => {\n event.preventDefault();\n deleteAll();\n },\n {\n exactMatch: true,\n },\n );\n\n const disabledZoomIn = scale >= MAX_SCALE;\n const disabledZoomOut = scale <= MIN_SCALE;\n\n useKeyPress(EDITOR_SHORTCUTS[EShortcuts.ZoomIn].shortcut, () => {\n if (disabledZoomIn) return;\n onZoomIn();\n });\n\n useKeyPress(EDITOR_SHORTCUTS[EShortcuts.ZoomOut].shortcut, () => {\n if (disabledZoomOut) return;\n onZoomOut();\n });\n\n useKeyPress(EDITOR_SHORTCUTS[EShortcuts.Reset].shortcut, () => {\n onZoomReset();\n });\n\n const popoverContent = (\n item: TToolItem,\n ) => {\n const icon = getIconFromShortcut(item.shortcut.shortcut, false);\n return (\n
\n
\n {item.name}\n {icon}\n
\n
\n
{item.description}
\n
\n );\n };\n\n return (\n {\n event.stopPropagation();\n }}\n >\n {!onlySupportZoom ? (\n
\n {dragTools.map((item) => (\n \n onChangeSelectedTool(item.key)}\n />\n \n ))}\n {annoTools.map((item) => (\n \n \n onChangeSelectedTool(item.key)}\n />\n \n {selectedTool === item.key && !manualMode && (\n \n \n onActiveAIAnnotation(!isAIAnnotationActive)\n }\n />\n \n )}\n
\n ))}\n
\n {actionTools.map((item) => (\n \n \n \n ))}\n \n ) : (\n
\n )}\n
\n }\n />\n }\n onClick={onZoomOut}\n />\n
\n {Math.floor(scale * 100)}%\n
\n }\n onClick={onZoomIn}\n />\n
\n
\n );\n },\n);\n\nexport default SliderToolBar;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgMouseLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ width: 32, height: 32, viewBox: \"0 0 34 34\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M23.737 13.118v7.764a6.713 6.713 0 0 1-6.706 6.707 6.713 6.713 0 0 1-6.705-6.707v-7.764a6.713 6.713 0 0 1 6.705-6.707 6.713 6.713 0 0 1 6.706 6.707Zm-.693 3.662H11.018v4.102a6.02 6.02 0 0 0 6.013 6.017 6.02 6.02 0 0 0 6.013-6.017V16.78Zm0-3.662a6.02 6.02 0 0 0-5.698-6.008v8.977h5.698v-2.969Z\", fill: \"#fff\" }));\nexport { SvgMouseLeft as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzNCAzNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjMuNzM3IDEzLjExOHY3Ljc2NGE2LjcxMyA2LjcxMyAwIDAgMS02LjcwNiA2LjcwNyA2LjcxMyA2LjcxMyAwIDAgMS02LjcwNS02LjcwN3YtNy43NjRhNi43MTMgNi43MTMgMCAwIDEgNi43MDUtNi43MDcgNi43MTMgNi43MTMgMCAwIDEgNi43MDYgNi43MDdabS0uNjkzIDMuNjYySDExLjAxOHY0LjEwMmE2LjAyIDYuMDIgMCAwIDAgNi4wMTMgNi4wMTcgNi4wMiA2LjAyIDAgMCAwIDYuMDEzLTYuMDE3VjE2Ljc4Wm0wLTMuNjYyYTYuMDIgNi4wMiAwIDAgMC01LjY5OC02LjAwOHY4Ljk3N2g1LjY5OHYtMi45NjlaIiBmaWxsPSIjZmZmIi8+PC9zdmc+\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgMouseRight = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ width: 32, height: 32, viewBox: \"0 0 34 34\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M10.263 13.118v7.764a6.713 6.713 0 0 0 6.706 6.707 6.713 6.713 0 0 0 6.705-6.707v-7.764a6.713 6.713 0 0 0-6.705-6.707 6.713 6.713 0 0 0-6.706 6.707Zm.693 3.662h12.026v4.102a6.02 6.02 0 0 1-6.013 6.017 6.02 6.02 0 0 1-6.013-6.017V16.78Zm0-3.662a6.02 6.02 0 0 1 5.698-6.008v8.977h-5.698v-2.969Z\", fill: \"#fff\" }));\nexport { SvgMouseRight as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzNCAzNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAuMjYzIDEzLjExOHY3Ljc2NGE2LjcxMyA2LjcxMyAwIDAgMCA2LjcwNiA2LjcwNyA2LjcxMyA2LjcxMyAwIDAgMCA2LjcwNS02LjcwN3YtNy43NjRhNi43MTMgNi43MTMgMCAwIDAtNi43MDUtNi43MDcgNi43MTMgNi43MTMgMCAwIDAtNi43MDYgNi43MDdabS42OTMgMy42NjJoMTIuMDI2djQuMTAyYTYuMDIgNi4wMiAwIDAgMS02LjAxMyA2LjAxNyA2LjAyIDYuMDIgMCAwIDEtNi4wMTMtNi4wMTdWMTYuNzhabTAtMy42NjJhNi4wMiA2LjAyIDAgMCAxIDUuNjk4LTYuMDA4djguOTc3aC01LjY5OHYtMi45NjlaIiBmaWxsPSIjZmZmIi8+PC9zdmc+\";\n","import { CloseOutlined } from '@ant-design/icons';\nimport Icon from '@ant-design/icons/lib/components/Icon';\nimport { Button, Card, Input, Slider, Space } from 'antd';\nimport classNames from 'classnames';\nimport { useLocale } from 'dds-utils/locale';\nimport { useMemo, useState, memo, useEffect } from 'react';\nimport { useImmer } from 'use-immer';\n\nimport { ReactComponent as DragToolIcon } from '../../assets/drag.svg';\nimport { ReactComponent as MouseLeftIcon } from '../../assets/mouse-left.svg';\nimport { ReactComponent as MouseRightIcon } from '../../assets/mouse-right.svg';\nimport {\n OBJECT_ICON,\n EBasicToolItem,\n EObjectType,\n EDITOR_TOOL_ICON,\n EActionToolItem,\n ESubToolItem,\n EToolType,\n EnumModelType,\n} from '../../constants';\nimport { OnAiAnnotationFunc } from '../../hooks/useAiModels';\nimport { FloatWrapper } from '../FloatWrapper';\n\nimport './index.less';\n\ninterface IProps {\n selectedTool: EToolType;\n selectedSubTool: ESubToolItem;\n selectedModel?: EnumModelType;\n AIAnnotation: boolean;\n hasPolygonPreds: boolean;\n isBatchEditing: boolean;\n isCtrlPressed: boolean;\n naturalSize: ISize;\n limitConf: number;\n latestLabel: string;\n forceChangeTool: (tool: EBasicToolItem, subtool: ESubToolItem) => void;\n onExitAIAnnotation: () => void;\n onAiAnnotation: OnAiAnnotationFunc;\n onChangeConfidenceRange: (range: [number, number]) => void;\n onChangeLimitConf: (value: number) => void;\n onAcceptValidObjects: () => void;\n onCancelBatchEdit: () => void;\n}\n\nconst SmartAnnotationControl: React.FC = memo(\n ({\n selectedTool,\n selectedSubTool,\n selectedModel,\n AIAnnotation,\n isBatchEditing,\n isCtrlPressed,\n naturalSize,\n limitConf,\n latestLabel,\n onExitAIAnnotation,\n onAiAnnotation,\n onChangeConfidenceRange,\n onChangeLimitConf,\n onAcceptValidObjects,\n onCancelBatchEdit,\n forceChangeTool,\n }) => {\n const { localeText } = useLocale();\n const [promptText, setPromptText] = useState(\n () => latestLabel,\n );\n\n useEffect(() => {\n setPromptText(latestLabel);\n }, [latestLabel]);\n\n /** Parameters for requesting segmemt everything API */\n const [samParams, setSamParams] = useImmer({\n predIouThresh: 0.89,\n pointsPerSide: 32,\n minMaskRegionArea: 300,\n });\n\n const titleMap = {\n [EBasicToolItem.Drag]: {\n name: localeText('DDSAnnotator.shortcuts.tools.drag'),\n icon: DragToolIcon,\n },\n [EBasicToolItem.Rectangle]: {\n name:\n selectedModel === EnumModelType.Detection\n ? localeText('DDSAnnotator.smart.detection.name')\n : localeText('DDSAnnotator.smart.ivp.name'),\n icon: OBJECT_ICON[EObjectType.Rectangle],\n },\n [EBasicToolItem.Polygon]: {\n name: localeText('DDSAnnotator.smart.segmentation.name'),\n icon: OBJECT_ICON[EObjectType.Polygon],\n },\n [EBasicToolItem.Skeleton]: {\n name: localeText('DDSAnnotator.smart.pose.name'),\n icon: OBJECT_ICON[EObjectType.Skeleton],\n },\n [EBasicToolItem.Mask]: {\n name:\n selectedModel === EnumModelType.SegmentByMask\n ? localeText('DDSAnnotator.smart.isg.name')\n : selectedModel === EnumModelType.SegmentEverything\n ? localeText('DDSAnnotator.smart.sam.name')\n : localeText('DDSAnnotator.smart.ivp.name'),\n icon: OBJECT_ICON[EObjectType.Mask],\n },\n };\n\n const mouseEventHandler = (event: React.MouseEvent) => {\n if (\n event.type === 'mouseup' &&\n (selectedTool === EBasicToolItem.Skeleton ||\n (selectedTool === EBasicToolItem.Mask &&\n selectedSubTool === ESubToolItem.AutoSegmentEverything) ||\n selectedTool === EBasicToolItem.Rectangle)\n ) {\n event.preventDefault();\n return;\n } else {\n event.stopPropagation();\n }\n };\n\n const isVisible = useMemo(() => {\n if (!AIAnnotation || selectedTool === EBasicToolItem.Drag) return false;\n\n if (selectedTool === EBasicToolItem.Mask) {\n if (selectedModel === EnumModelType.SegmentEverything) {\n return selectedSubTool === ESubToolItem.AutoSegmentEverything;\n } else if (selectedModel === EnumModelType.SegmentByMask) {\n return false;\n } else if (selectedModel === EnumModelType.IVP) {\n return isBatchEditing;\n }\n return false;\n }\n\n if (selectedTool === EBasicToolItem.Polygon) return false;\n\n if (selectedTool === EBasicToolItem.Rectangle) {\n if (selectedModel === EnumModelType.Detection) {\n return !(isBatchEditing && isCtrlPressed);\n } else if (selectedModel === EnumModelType.IVP) {\n return isBatchEditing;\n } else {\n return false;\n }\n }\n\n return true;\n }, [\n selectedTool,\n selectedSubTool,\n selectedModel,\n AIAnnotation,\n isBatchEditing,\n isCtrlPressed,\n ]);\n\n const aiDetectionTip = useMemo(() => {\n if (\n selectedTool === EBasicToolItem.Rectangle &&\n selectedModel === EnumModelType.Detection &&\n isBatchEditing &&\n isCtrlPressed\n ) {\n return [\n {\n text: localeText('DDSAnnotator.smart.tip.recover'),\n logo: ,\n },\n {\n text: localeText('DDSAnnotator.smart.tip.overlayobject'),\n logo: ,\n },\n ];\n }\n return [];\n }, [isBatchEditing, isCtrlPressed, selectedModel]);\n\n const imageArea = useMemo(() => {\n return naturalSize.width * naturalSize.height;\n }, [naturalSize]);\n\n return (\n \n {aiDetectionTip.length > 0 && (\n
\n {aiDetectionTip.map((item) => (\n
\n {item.text}\n {item.logo}\n
\n ))}\n
\n )}\n \n
\n \n
{titleMap[selectedTool].name}
\n
\n }\n shape=\"circle\"\n size=\"small\"\n onClick={() => {\n onExitAIAnnotation();\n forceChangeTool(selectedTool, ESubToolItem.PenAdd);\n }}\n >\n \n }\n >\n
\n {selectedTool === EBasicToolItem.Rectangle &&\n selectedModel === EnumModelType.Detection &&\n (isBatchEditing ? (\n
\n
\n
\n
\n {localeText('DDSAnnotator.smart.detection.confidence')}:\n
\n \n
\n
\n
\n {localeText('DDSAnnotator.smart.tip')}: \n {localeText('DDSAnnotator.smart.tip.ctrl')}\n
\n
\n \n {localeText('DDSAnnotator.smart.back')}\n \n \n
\n
\n ) : (\n
\n
\n \n {localeText('DDSAnnotator.smart.detection.label')}:\n \n {latestLabel}\n
\n
\n \n {localeText('DDSAnnotator.smart.detection.prompt')}:\n \n setPromptText(e.target.value)}\n onKeyUp={(event) => event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n />\n
\n
\n onAiAnnotation({ text: promptText })}\n >\n {localeText('DDSAnnotator.smart.annotate')}\n \n
\n
\n ))}\n {((selectedTool === EBasicToolItem.Rectangle &&\n selectedModel === EnumModelType.IVP) ||\n (selectedTool === EBasicToolItem.Mask &&\n selectedModel === EnumModelType.IVP)) && (\n
\n
\n {localeText('DDSAnnotator.smart.tip')}: \n {localeText('DDSAnnotator.smart.tip.visualPrompt')}\n
\n
\n \n {localeText('DDSAnnotator.smart.back')}\n \n \n
\n
\n )}\n {selectedTool === EBasicToolItem.Skeleton &&\n (isBatchEditing ? (\n <>\n
\n
\n
\n {localeText('DDSAnnotator.confidence')}\n
\n \n onChangeConfidenceRange([\n range[0] / 100,\n range[1] / 100,\n ])\n }\n tooltip={{\n formatter: (value?: number) => {\n return <>{`${value! / 100}`};\n },\n //@ts-ignore\n getPopupContainer: () =>\n document.getElementById('conf-slider'),\n }}\n />\n
\n
\n \n {localeText('DDSAnnotator.save')}\n \n \n ) : (\n <>\n onAiAnnotation({})}\n >\n {localeText('DDSAnnotator.smart.annotate')}\n \n \n ))}\n {selectedTool === EBasicToolItem.Mask &&\n selectedModel === EnumModelType.SegmentEverything &&\n selectedSubTool === ESubToolItem.AutoSegmentEverything && (\n <>\n \n
\n
\n {localeText('DDSAnnotator.smart.iouThres')}\n
\n \n setSamParams((s) => {\n s.predIouThresh = 1 - val;\n })\n }\n min={0}\n max={0.99}\n step={0.01}\n reverse\n tooltip={{\n formatter: (val) =>\n `${Math.floor((1 - val!) * 100)}%`,\n //@ts-ignore\n getPopupContainer: () =>\n document.getElementById('param-controls'),\n }}\n />\n
\n
\n
\n {localeText('DDSAnnotator.smart.minArea')}\n
\n \n setSamParams((s) => {\n s.minMaskRegionArea = val * imageArea;\n })\n }\n min={0.01}\n max={0.3}\n step={0.01}\n tooltip={{\n formatter: (val) => `${Math.ceil(val! * 100)}%`,\n //@ts-ignore\n getPopupContainer: () =>\n document.getElementById('param-controls'),\n }}\n />\n
\n
\n {isBatchEditing ? (\n \n \n onAiAnnotation({\n segmentEverythingParams: samParams,\n })\n }\n >\n {localeText('DDSAnnotator.smart.retry')}\n \n {\n onAcceptValidObjects();\n forceChangeTool(\n EBasicToolItem.Mask,\n ESubToolItem.AutoEdgeStitching,\n );\n }}\n >\n {localeText('DDSAnnotator.annotsEditor.finish')}\n \n \n ) : (\n \n onAiAnnotation({\n segmentEverythingParams: samParams,\n })\n }\n >\n {localeText('DDSAnnotator.smart.annotate')}\n \n )}\n \n )}\n \n \n
\n );\n },\n);\n\nexport default SmartAnnotationControl;\n","import { LeftOutlined, RightOutlined } from '@ant-design/icons';\nimport { useKeyPress } from 'ahooks';\nimport { Button, Tooltip } from 'antd';\nimport classNames from 'classnames';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo, useState } from 'react';\n\nimport { EDITOR_SHORTCUTS, EShortcuts } from '../../constants/shortcuts';\nimport { AnnoItem } from '../../type';\n\nimport './index.less';\n\ninterface IProps {\n list: AnnoItem[];\n current: number;\n total: number;\n customText?: React.ReactElement;\n customDisableNext?: boolean;\n onPrev?: () => Promise;\n onNext?: () => Promise;\n}\n\nconst propsAreEqual = (prev: IProps, next: IProps): boolean => {\n return (\n prev.current === next.current &&\n prev.total === next.total &&\n prev.customText === next.customText &&\n prev.customDisableNext === next.customDisableNext\n );\n};\n\nexport const TopPagination: React.FC = memo(\n ({\n current,\n total,\n customText,\n customDisableNext,\n onPrev = () => Promise.resolve(),\n onNext = () => Promise.resolve(),\n }) => {\n const { localeText } = useLocale();\n\n const [loadingPred, setLoadingPred] = useState(false);\n const [loadingNext, setLoadingNext] = useState(false);\n\n const clickPrev = async () => {\n setLoadingPred(true);\n await onPrev();\n setLoadingPred(false);\n };\n\n const clickNext = async () => {\n setLoadingNext(true);\n await onNext();\n setLoadingNext(false);\n };\n\n const disablePrev = current <= 0;\n const disableNext = customDisableNext ?? current >= total - 1;\n\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.PreviousImage].shortcut,\n () => {\n if (disablePrev) return;\n clickPrev();\n },\n {\n exactMatch: true,\n },\n );\n\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.NextImage].shortcut,\n () => {\n if (disableNext) return;\n clickNext();\n },\n {\n exactMatch: true,\n },\n );\n\n return (\n
\n \n }\n loading={loadingPred}\n onClick={clickPrev}\n />\n \n {customText ? (\n customText\n ) : (\n
\n {current + 1} / {total}\n
\n )}\n \n }\n loading={loadingNext}\n onClick={clickNext}\n />\n \n
\n );\n },\n propsAreEqual,\n);\n","import { Modal } from 'antd';\nimport { ModalStaticFunctions } from 'antd/es/modal/confirm';\nimport { useLocale } from 'dds-utils/locale';\nimport { useCallback } from 'react';\nimport { Updater } from 'use-immer';\n\nimport {\n DrawData,\n AnnoItem,\n EditState,\n EditorMode,\n Category,\n VideoFramesData,\n ICreatingObject,\n} from '../type';\nimport { isRequiredAttributeValueEmpty } from '../utils/verify';\n\ninterface IProps {\n mode: EditorMode;\n currImageItem?: AnnoItem;\n modal: Omit;\n framesData?: VideoFramesData;\n drawData: DrawData;\n editState: EditState;\n setEditState: Updater;\n hadChangeRecord: boolean;\n categories: Category[];\n translateObject?: (object: any) => any;\n flagSaved?: () => void;\n onCancel?: () => void;\n onSave?: (id: string, labels: any[]) => Promise;\n onCommit?: (id: string, labels: any[]) => Promise;\n onReviewModify?: (\n id: string,\n labels: any[],\n frameIssues?: Record,\n ) => Promise;\n onReviewAccept?: (\n id: string,\n labels: any[],\n frameIssues?: Record,\n ) => Promise;\n onReviewReject?: (\n id: string,\n labels: any[],\n frameIssues?: Record,\n ) => Promise;\n classificationOptions?: Category[];\n isInAiSession: () => boolean | ICreatingObject | undefined;\n}\n\nconst useActions = ({\n mode,\n currImageItem,\n modal,\n framesData,\n drawData: editorDrawData,\n editState,\n setEditState,\n hadChangeRecord,\n categories,\n translateObject,\n flagSaved,\n onCancel,\n onSave,\n onCommit,\n onReviewModify,\n onReviewAccept,\n onReviewReject,\n classificationOptions,\n isInAiSession,\n}: IProps) => {\n const { localeText } = useLocale();\n const { isRequiring } = editState;\n const setIsRequiring = (requiring: boolean) =>\n setEditState((s) => {\n s.isRequiring = requiring;\n });\n\n const translateDrawData = useCallback(\n (drawData: DrawData): [string, any[], any] => {\n let objectList = [];\n if (framesData) {\n objectList = framesData.objects.map((objs) => {\n const availObjs: any = {};\n objs.forEach((obj, frameIndex) => {\n if (obj && !obj.frameEmpty) {\n // TODO: adapt for old format\n const { labelId, attributes, labelValue } =\n translateObject?.(obj);\n availObjs.labelId = labelId;\n availObjs.attributes = attributes;\n if (!availObjs.labelValue) availObjs.labelValue = {};\n availObjs.labelValue[String(frameIndex)] = labelValue;\n }\n });\n return availObjs;\n });\n } else {\n objectList = drawData.objectList.map((obj) => translateObject?.(obj));\n }\n return [\n framesData?.id || currImageItem?.id || '',\n [\n ...drawData.classifications.map((item) => {\n const label = categories.find((c) => c.id === item.labelId);\n return {\n ...item,\n attributes:\n item.attributes || label?.attributes?.map(() => null) || [],\n };\n }),\n ...objectList,\n ],\n framesData ? { [framesData.activeIndex]: {} } : undefined,\n ];\n },\n [currImageItem, translateObject, framesData],\n );\n\n const judgeLimitCommit = (labels: any[]) => {\n const errorList: string[] = [];\n // check classification\n classificationOptions?.forEach((item, idx) => {\n const value = labels.find((label) => label.labelId === item.id);\n if (!value || isRequiredAttributeValueEmpty(value.labelValue)) {\n errorList.push(\n localeText('DDSAnnotator.save.check.classification', {\n idx: idx + 1,\n }),\n );\n }\n });\n // check label\n labels.forEach((item, idx) => {\n const label = categories.find((label) => label.id === item.labelId);\n if (\n label?.attributes?.find(\n (attribute, index) =>\n attribute.required &&\n isRequiredAttributeValueEmpty(item.attributes?.[index]),\n )\n ) {\n errorList.push(\n localeText('DDSAnnotator.save.check.label', {\n idx: idx + 1,\n labelName: label.labelName,\n }),\n );\n }\n });\n\n if (errorList.length > 0) {\n Modal.warning({\n width: 480,\n title: localeText('DDSAnnotator.save.check.error'),\n content: (\n
\n {errorList.map((item, index) => (\n \n {item}\n
\n
\n ))}\n {localeText('DDSAnnotator.save.check.tip')}\n
\n ),\n });\n return true;\n }\n\n return false;\n };\n\n const onSaveAnnotations = async () => {\n if (isRequiring || !onSave || isInAiSession()) return;\n\n const [id, labels] = translateDrawData(editorDrawData);\n console.log('>>> save', id, labels);\n if (judgeLimitCommit(labels)) return;\n\n setIsRequiring(true);\n try {\n await onSave(id, labels);\n flagSaved?.();\n } catch (error) {\n console.error(error);\n }\n setIsRequiring(false);\n };\n\n const onCommitAnnotations = async () => {\n if (isRequiring || !onCommit || isInAiSession()) return;\n\n const [id, labels] = translateDrawData(editorDrawData);\n if (judgeLimitCommit(labels)) return;\n\n setIsRequiring(true);\n try {\n await onCommit(id, labels);\n } catch (error) {\n console.error(error);\n }\n setIsRequiring(false);\n };\n\n const onRejectAnnotations = async () => {\n if (mode === EditorMode.Review && onReviewReject) {\n onReviewReject(...translateDrawData(editorDrawData));\n }\n };\n\n const onAcceptAnnotations = async () => {\n if (mode === EditorMode.Review && onReviewAccept) {\n onReviewAccept(...translateDrawData(editorDrawData));\n }\n };\n\n const onModifyAnnotations = async () => {\n if (mode === EditorMode.Review && onReviewModify) {\n onReviewModify(...translateDrawData(editorDrawData));\n }\n };\n\n const onCancelAnnotations = async () => {\n if (mode === EditorMode.Edit && hadChangeRecord) {\n modal.confirm({\n getContainer: () => document.body,\n content: localeText('DDSAnnotator.confirmLeave.content'),\n cancelText: localeText('DDSAnnotator.confirmLeave.cancel'),\n okText: localeText('DDSAnnotator.confirmLeave.ok'),\n okButtonProps: { danger: true },\n onOk: () => {\n if (onCancel) onCancel();\n },\n });\n return;\n }\n if (onCancel) onCancel();\n };\n\n return {\n onSaveAnnotations,\n onCommitAnnotations,\n onCancelAnnotations,\n onRejectAnnotations,\n onAcceptAnnotations,\n onModifyAnnotations,\n };\n};\n\nexport default useActions;\n","/* eslint-disable @typescript-eslint/no-namespace */\nimport { request } from '@umijs/max';\nimport { Modal } from 'antd';\nimport { globalLocaleText } from 'dds-utils/locale';\n\nimport { EnumModelType, EnumTaskStatus } from '../constants';\nimport { IMask, ReqPromptItem } from '../type';\n\nexport namespace NsApiAnnotator {\n export type ModelParam =\n T extends EnumModelType.Detection\n ? FetchAIDetectionReq\n : T extends EnumModelType.IVP\n ? FetchIVPReq\n : T extends EnumModelType.SegmentByPolygon\n ? FetchAIPolygonSegmentReq\n : T extends EnumModelType.SegmentByMask\n ? FetchAIMaskSegmentReq\n : T extends EnumModelType.MaskEdgeStitching\n ? FetchEdgeStitchingReq\n : T extends EnumModelType.SegmentEverything\n ? FetchSegmentEverythingReq\n : T extends EnumModelType.Pose\n ? FetchAIPoseEstimationReq\n : never;\n\n export type ModelResult =\n T extends EnumModelType.Detection\n ? FetchAIDetectionRsp\n : T extends EnumModelType.IVP\n ? FetchIVPRsp\n : T extends EnumModelType.SegmentByPolygon\n ? FetchAIPolygonSegmentRsp\n : T extends EnumModelType.SegmentByMask\n ? FetchAIMaskSegmentRsp\n : T extends EnumModelType.MaskEdgeStitching\n ? FetchEdgeStitchingRsp\n : T extends EnumModelType.SegmentEverything\n ? FetchSegmentEverythingRsp\n : T extends EnumModelType.Pose\n ? FetchAIPoseEstimationRsp\n : never;\n\n export interface CommonReqParams {\n image?: string;\n sessionId?: string;\n }\n\n export interface FetchAIDetectionReq extends CommonReqParams {\n prompts: ReqPromptItem[];\n }\n\n export interface FetchIVPReq extends CommonReqParams {\n promptImage?: string;\n inferImage?: string;\n labelTypes: string[]; // [\"bbox\", \"mask\"]\n prompts: ReqPromptItem[];\n }\n\n export interface FetchAIPolygonSegmentReq extends CommonReqParams {\n density: number; // (0, 1) default 0.2\n prompts: ReqPromptItem[];\n }\n\n export interface FetchAIMaskSegmentReq extends CommonReqParams {\n prompts: ReqPromptItem[];\n }\n\n export interface FetchEdgeStitchingReq extends CommonReqParams {\n masks: IMask[];\n prompts: ReqPromptItem[];\n }\n\n export interface FetchSegmentEverythingReq extends CommonReqParams {\n pointsPerSide?: number; // default 32\n predIouThresh?: number; // default 0.89\n minMaskRegionArea?: number; // default 300\n }\n\n export interface FetchAIPoseEstimationReq extends CommonReqParams {\n objects?: Array<{\n bbox: [number, number, number, number];\n keypoints: number[]; // [x, y, visible, conf, ...]\n }>;\n }\n\n export interface FetchAIDetectionRsp {\n objects: Array<{\n bbox: [number, number, number, number];\n score: number;\n }>;\n suggestThreshold: number;\n }\n\n export interface FetchIVPRsp {\n objects: Array<{\n bbox?: number[];\n mask?: IMask;\n maskUrl?: string;\n score: number;\n }>;\n }\n\n export interface FetchAIPolygonSegmentRsp {\n polygons: number[][]; // [[x1, y1, x2, y2, ...], [xn, yn, xn+1, yn+1, ...], ....]\n }\n\n export interface FetchAIMaskSegmentRsp {\n mask: IMask;\n }\n export interface FetchEdgeStitchingRsp {\n masks: IMask[];\n }\n export interface FetchAIPoseEstimationRsp {\n objects: Array<{\n bbox: [number, number, number, number];\n keypoints: number[]; // [x, y, visible, conf, ...]\n score: number;\n }>;\n }\n\n export interface FetchSegmentEverythingRsp {\n masks: IMask[];\n }\n\n export interface fetchTaskUuid {\n taskUuid: string;\n }\n\n export interface FetchModelRsp {\n error: string;\n status: EnumTaskStatus;\n uuid: string;\n sessionId: string;\n result: ModelResult;\n }\n}\n\nasync function fetchTaskUuid(\n type: EnumModelType,\n params: any,\n options?: { [key: string]: any },\n) {\n const postUrl = process.env.MODEL_API_PATH\n ? `${process.env.MODEL_API_PATH}/tasks/${type}`\n : `/v1/algos/${type}`;\n return request(postUrl, {\n method: 'POST',\n data: {\n ...params,\n },\n ...(options || {\n hideCodeErrorMsg: true,\n }),\n });\n}\n\nfunction fetchTaskResults(\n taskUuid: string,\n options?: { [key: string]: any },\n) {\n const getUrl = process.env.MODEL_API_PATH\n ? `${process.env.MODEL_API_PATH}/task_statuses/${taskUuid}`\n : `/v1/algos/tasks/${taskUuid}`;\n return request>(getUrl, {\n method: 'GET',\n ...(options || {}),\n });\n}\n\nexport async function pollTaskResults(\n type: EnumModelType,\n taskUuid: string,\n maxAttempts = 5000,\n interval = 1000,\n) {\n let attempts = 0;\n\n while (attempts < maxAttempts) {\n const rsp = await fetchTaskResults(taskUuid);\n\n if (rsp.status === EnumTaskStatus.Success) {\n return rsp;\n }\n\n if (rsp.status === EnumTaskStatus.Failed) {\n throw new Error(rsp.error);\n }\n\n await new Promise((resolve) => {\n setTimeout(resolve, interval);\n });\n attempts++;\n }\n\n throw new Error('Max attempts exceeded');\n}\n\nexport async function fetchModelResults(\n type: EnumModelType,\n params: NsApiAnnotator.ModelParam,\n): Promise> {\n try {\n const { taskUuid } = await fetchTaskUuid(type, params);\n const result = await pollTaskResults(type, taskUuid);\n return result;\n } catch (error: any) {\n // status 429 indicates warning for rate limit of AI annotate request\n if (error.response.status === 429) {\n Modal.info({\n title: globalLocaleText('DDSAnnotator.smart.rateLimit.title'),\n centered: true,\n content: globalLocaleText('DDSAnnotator.smart.rateLimit.content'),\n okText: globalLocaleText('DDSAnnotator.smart.rateLimit.okText'),\n onOk: () => {},\n });\n }\n throw new Error(error.message);\n }\n}\n","/**\n * Convert image to base64.\n * @param imgUrl\n * @returns\n */\nexport const getImageBase64 = async (imgUrl: string): Promise => {\n return new Promise((resolve, reject) => {\n window.URL = window.URL || window.webkitURL;\n\n const xhr = new XMLHttpRequest();\n xhr.open('get', imgUrl, true);\n xhr.responseType = 'blob';\n xhr.setRequestHeader('If-Modified-Since', '0');\n xhr.send();\n xhr.onload = function () {\n if (this.status === 200) {\n const blob = this.response;\n const oFileReader = new FileReader();\n oFileReader.onloadend = function (e) {\n const base64 = e.target?.result;\n resolve(base64 as string);\n };\n oFileReader.onerror = function (e) {\n reject(e);\n };\n oFileReader.readAsDataURL(blob);\n }\n };\n xhr.onerror = function (e) {\n reject(e);\n };\n });\n};\n\nexport const isBase64 = (str: string) => {\n const base64Regex = /^data:image\\/(png|jpe?g|gif|svg|webp);base64,/i;\n return base64Regex.test(str);\n};\n\nexport const isBlobUrl = (str: string) => {\n const blobUrlRegex = /^blob:/i;\n return blobUrlRegex.test(str);\n};\n\nexport const isHttpsUrl = (str: string) => {\n const httpsRegex = /^https?:\\/\\//i;\n return httpsRegex.test(str);\n};\n\nexport const isHttpUrl = (str: string) => {\n const httpsRegex = /^http?:\\/\\//i;\n return httpsRegex.test(str);\n};\n\nexport const getServerAddressableUrl = async (url: string) => {\n if (isBlobUrl(url) || isHttpUrl(url)) {\n return await getImageBase64(url);\n }\n return url;\n};\n\nexport const getImgBase64ByBlob = (blobUrl: Blob) => {\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = (e) => {\n resolve(e.target?.result);\n };\n fileReader.readAsDataURL(blobUrl);\n fileReader.onerror = (e) => {\n reject(e);\n };\n });\n};\n","import { useModel } from '@umijs/max';\nimport { message } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\nimport { useCallback } from 'react';\nimport { Updater } from 'use-immer';\n\nimport {\n BODY_TEMPLATE,\n EBasicToolTypeMap,\n EnumModelType,\n EObjectType,\n ESubToolItem,\n} from '../constants';\nimport { NsApiAnnotator, fetchModelResults } from '../sevices';\nimport { rleToCanvas } from '../tools/useMask';\nimport {\n DrawData,\n AnnoItem,\n EditState,\n IAnnotationObject,\n PromptItem,\n EObjectStatus,\n EPromptType,\n ReqPromptItem,\n IMask,\n} from '../type';\nimport { getServerAddressableUrl } from '../utils/base64';\nimport {\n translateRectToAbsBbox,\n getCanvasPoint,\n getNaturalPoint,\n translateRectZoom,\n translateAbsBBoxToRect,\n translatePointsToRect,\n translateRectToPointsArray,\n newTranslatePointsToPointObjs,\n newTranslatePointObjsToPointAttrs,\n} from '../utils/compute';\n\ninterface IProps {\n currImageItem?: AnnoItem;\n drawData: DrawData;\n setDrawData: Updater;\n setDrawDataWithHistory: Updater;\n editState: EditState;\n setEditState: Updater;\n naturalSize: ISize;\n clientSize: ISize;\n getAnnotColor: (category: string, forceColorByCategory?: boolean) => string;\n}\n\nexport type OnAiAnnotationFunc = ({\n type,\n drawData,\n text,\n bbox,\n promptsQueue,\n segmentationClicks,\n segmentEverythingParams,\n}: {\n type?: EObjectType;\n drawData?: DrawData;\n text?: string;\n bbox?: IBoundingBox;\n promptsQueue?: PromptItem[];\n segmentationClicks?: {\n point: IPoint;\n isPositive: boolean;\n }[];\n segmentEverythingParams?: NsApiAnnotator.FetchSegmentEverythingReq;\n}) => Promise;\n\nconst useAiModels = ({\n currImageItem,\n drawData: editorDrawData,\n setDrawData,\n setDrawDataWithHistory,\n editState,\n setEditState,\n naturalSize,\n clientSize,\n getAnnotColor,\n}: IProps) => {\n const { localeText } = useLocale();\n const { setLoading } = useModel('global');\n\n const fetchCommonReqParams = async (\n drawData: DrawData,\n reqParams: T,\n ): Promise => {\n if (drawData.prompt.sessionId) {\n Object.assign(reqParams, { sessionId: drawData.prompt.sessionId });\n } else if (currImageItem) {\n Object.assign(reqParams, {\n image: await getServerAddressableUrl(currImageItem.url),\n });\n }\n return reqParams;\n };\n\n const convertPromptFormat = (prompt: PromptItem[]): ReqPromptItem[] => {\n const newPromptArr = prompt.map((item) => {\n const { type, isPositive, point, rect, stroke, radius, polygons } = item;\n\n const newItem = { type, isPositive };\n\n if (rect) {\n const { xmax, xmin, ymax, ymin } = translateRectToAbsBbox(rect);\n const topleftPoint = getNaturalPoint(\n [xmin, ymin],\n naturalSize,\n clientSize,\n );\n const bottomRightPoint = getNaturalPoint(\n [xmax, ymax],\n naturalSize,\n clientSize,\n );\n Object.assign(newItem, {\n rect: [\n topleftPoint.x,\n topleftPoint.y,\n bottomRightPoint.x,\n bottomRightPoint.y,\n ],\n });\n }\n\n if (point) {\n const naturalPoint = getNaturalPoint(\n [point.x, point.y],\n naturalSize,\n clientSize,\n );\n Object.assign(newItem, {\n point: [naturalPoint.x, naturalPoint.y],\n });\n }\n\n if (stroke) {\n const points = stroke.reduce((acc: number[], point: IPoint) => {\n const { x, y } = point;\n const naturalPoint = getNaturalPoint([x, y], naturalSize, clientSize);\n return acc.concat([naturalPoint.x, naturalPoint.y]);\n }, []);\n Object.assign(newItem, {\n stroke: points,\n radius,\n });\n }\n\n if (polygons) {\n const transformedPolygons = polygons.map((polygon) => {\n const res = [];\n for (let i = 0; i < polygon.length; i += 2) {\n const transformedPoint = getNaturalPoint(\n [polygon[i], polygon[i + 1]],\n naturalSize,\n clientSize,\n );\n res.push(transformedPoint.x, transformedPoint.y);\n }\n return res;\n });\n Object.assign(newItem, {\n polygons: transformedPolygons,\n });\n }\n\n return newItem;\n });\n\n return newPromptArr;\n };\n\n const requestAiDetection = async (drawData: DrawData, text: string) => {\n if (!text) {\n message.warning(localeText('DDSAnnotator.smart.msg.labelRequired'));\n return;\n }\n\n const reqParams = await fetchCommonReqParams(drawData, {\n prompts: [\n {\n type: EPromptType.Text,\n text,\n },\n ],\n });\n\n const { result, sessionId } =\n await fetchModelResults(\n EnumModelType.Detection,\n reqParams,\n );\n\n if (result) {\n const { objects, suggestThreshold } = result;\n const limitConf = suggestThreshold || 0;\n const maxScore = objects.reduce(\n (max, item) => (item.score > max ? item.score : max),\n objects[0]?.score || 0,\n );\n const newObjects: IAnnotationObject[] = objects\n .map((item) => {\n // mouse.elementW is not necessarily identical to the size during initialization transformation\n const rect = {\n ...translatePointsToRect(item.bbox, naturalSize, clientSize),\n };\n const conf = item.score / maxScore;\n return {\n rect: { ...rect, visible: true },\n labelId: editState.latestLabelId,\n type: EObjectType.Rectangle,\n hidden: false,\n status:\n conf >= limitConf\n ? EObjectStatus.Checked\n : EObjectStatus.Unchecked,\n conf,\n color: getAnnotColor(editState.latestLabelId, true),\n };\n })\n .reverse();\n setDrawDataWithHistory((s) => {\n s.isBatchEditing = true;\n s.limitConf = limitConf;\n const commitedObjects = s.objectList.filter(\n (obj) => obj?.status === EObjectStatus.Commited,\n );\n s.objectList = [...commitedObjects, ...newObjects];\n if (s.creatingObject && s.objectList[s.activeObjectIndex]) {\n s.creatingObject = { ...s.objectList[s.activeObjectIndex] };\n }\n s.prompt.sessionId = sessionId;\n });\n return true;\n }\n };\n\n const requestIvpDetection = async (\n drawData: DrawData,\n promptsQueue?: PromptItem[],\n ) => {\n if (!currImageItem || !promptsQueue) return;\n\n const reqParams = {\n prompts: convertPromptFormat(promptsQueue || []),\n labelTypes: ['bbox'],\n };\n if (drawData.prompt.sessionId) {\n Object.assign(reqParams, { sessionId: drawData.prompt.sessionId });\n } else {\n const url = await getServerAddressableUrl(currImageItem.url);\n Object.assign(reqParams, {\n promptImage: url,\n inferImage: url,\n });\n }\n\n const { result, sessionId } = await fetchModelResults(\n EnumModelType.IVP,\n reqParams,\n );\n\n if (result) {\n const { objects } = result;\n const limitConf = 0.3;\n const newObjects: IAnnotationObject[] = objects\n .filter((item) => {\n return item.bbox;\n })\n .map((item) => {\n const [xmin, ymin, xmax, ymax] = item.bbox!;\n const rect = translateRectZoom(\n translateAbsBBoxToRect({ xmin, ymin, xmax, ymax }),\n naturalSize,\n clientSize,\n );\n return {\n rect: { ...rect, visible: true },\n labelId: editState.latestLabelId,\n type: EObjectType.Rectangle,\n hidden: false,\n status:\n item.score >= limitConf\n ? EObjectStatus.Checked\n : EObjectStatus.Unchecked,\n conf: item.score,\n color: getAnnotColor(editState.latestLabelId, true),\n };\n })\n .reverse();\n\n setDrawDataWithHistory((s) => {\n s.isBatchEditing = true;\n s.limitConf = limitConf;\n const commitedObjects = s.objectList.filter(\n (obj) => obj.status === EObjectStatus.Commited,\n );\n s.objectList = [...commitedObjects, ...newObjects];\n if (s.creatingObject && s.objectList[s.activeObjectIndex]) {\n s.creatingObject = { ...s.objectList[s.activeObjectIndex] };\n }\n s.prompt.promptsQueue = promptsQueue;\n s.prompt.sessionId = sessionId;\n s.prompt.creatingPrompt = undefined;\n });\n return true;\n }\n };\n\n const requestIvpMask = async (\n drawData: DrawData,\n promptsQueue?: PromptItem[],\n ) => {\n if (!currImageItem || !promptsQueue) return;\n\n const reqParams = {\n prompts: convertPromptFormat(promptsQueue || []),\n labelTypes: ['mask'],\n };\n if (drawData.prompt.sessionId) {\n Object.assign(reqParams, { sessionId: drawData.prompt.sessionId });\n } else {\n const url = await getServerAddressableUrl(currImageItem.url);\n Object.assign(reqParams, {\n promptImage: url,\n inferImage: url,\n });\n }\n\n const { result, sessionId } = await fetchModelResults(\n EnumModelType.IVP,\n reqParams,\n );\n\n if (result) {\n // Display mask in different color\n setEditState((s) => {\n s.annotsDisplayOptions.colorByCategory = false;\n });\n\n const { objects } = result;\n const newObjects: IAnnotationObject[] = objects\n .filter((item) => !!item.mask)\n .map((item) => {\n const color = getAnnotColor(editState.latestLabelId);\n const maskRleStr = item.mask?.counts || '';\n return {\n type: EObjectType.Mask,\n hidden: false,\n labelId: editState.latestLabelId,\n maskRle: maskRleStr,\n maskCanvasElement: rleToCanvas(maskRleStr, naturalSize, color),\n status: EObjectStatus.Checked,\n conf: item.score,\n color: getAnnotColor(editState.latestLabelId, true),\n };\n });\n\n setDrawDataWithHistory((s) => {\n s.isBatchEditing = true;\n const commitedObjects = s.objectList.filter(\n (obj) => obj.status === EObjectStatus.Commited,\n );\n s.objectList = [...commitedObjects, ...newObjects];\n if (s.creatingObject && s.objectList[s.activeObjectIndex]) {\n s.creatingObject = { ...s.objectList[s.activeObjectIndex] };\n }\n s.prompt.promptsQueue = promptsQueue;\n s.prompt.sessionId = sessionId;\n s.prompt.creatingPrompt = undefined;\n });\n return true;\n }\n };\n\n const requestAiSegmentByPolygon = async (\n drawData: DrawData,\n promptsQueue?: PromptItem[],\n ) => {\n if (!promptsQueue) return;\n\n const reqParams = await fetchCommonReqParams(drawData, {\n density: drawData.pointResolution,\n prompts: convertPromptFormat(promptsQueue || []),\n });\n\n const { result, sessionId } =\n await fetchModelResults(\n EnumModelType.SegmentByPolygon,\n reqParams,\n );\n if (result) {\n const { polygons } = result;\n\n if (polygons && polygons.length > 0) {\n const predictPolygons = polygons\n .filter((item) => {\n return item.length >= 6;\n })\n .map((item) => {\n const result: IPolygon = [];\n for (let i = 0; i < item.length; i += 2) {\n const x = item[i];\n const y = item[i + 1];\n const canvasPoint = getCanvasPoint(\n [x, y],\n naturalSize,\n clientSize,\n );\n result.push(canvasPoint);\n }\n return result;\n });\n\n const creatingObj = {\n type: EObjectType.Polygon,\n hidden: false,\n labelId: editState.latestLabelId,\n color:\n drawData.creatingObject?.color ||\n getAnnotColor(editState.latestLabelId),\n currIndex: -1,\n polygon: {\n visible: true,\n group: predictPolygons,\n },\n status: EObjectStatus.Checked,\n };\n\n setDrawDataWithHistory((s) => {\n s.creatingObject = creatingObj;\n s.prompt.promptsQueue = promptsQueue;\n s.prompt.sessionId = sessionId;\n s.prompt.creatingPrompt = undefined;\n });\n return true;\n }\n }\n };\n\n const requestAiSegmentByMask = async (\n drawData: DrawData,\n promptsQueue?: PromptItem[],\n ) => {\n if (!promptsQueue) return;\n\n const reqParams = await fetchCommonReqParams(drawData, {\n prompts: convertPromptFormat(promptsQueue || []),\n });\n\n const { result, sessionId } =\n await fetchModelResults(\n EnumModelType.SegmentByMask,\n reqParams,\n );\n if (result) {\n const { mask } = result;\n const color =\n drawData.creatingObject?.color ||\n getAnnotColor(editState.latestLabelId);\n const maskRleStr = mask.counts || '';\n const creatingObj = {\n type: EObjectType.Mask,\n hidden: false,\n labelId: editState.latestLabelId,\n currIndex: -1,\n maskCanvasElement: rleToCanvas(maskRleStr, naturalSize, color),\n maskRle: maskRleStr,\n status: EObjectStatus.Checked,\n color,\n };\n setDrawDataWithHistory((s) => {\n s.creatingObject = creatingObj;\n s.prompt.promptsQueue = promptsQueue;\n s.prompt.sessionId = sessionId;\n s.prompt.creatingPrompt = undefined;\n });\n return true;\n }\n };\n\n const requestAiPoseEstimation = async (drawData: DrawData) => {\n // TODO: Integrate custom templates\n const { lines, pointNames, pointColors } = BODY_TEMPLATE;\n const reqParams = await fetchCommonReqParams(drawData, {});\n if (drawData.isBatchEditing) {\n const objectList = [...drawData.objectList];\n if (\n drawData.activeObjectIndex > -1 &&\n objectList[drawData.activeObjectIndex] &&\n drawData.creatingObject\n ) {\n // update creating object\n objectList[drawData.activeObjectIndex] = {\n ...objectList[drawData.activeObjectIndex],\n ...drawData.creatingObject,\n };\n }\n const skeletonObjs = objectList.filter(\n (obj) =>\n obj.type === EObjectType.Skeleton &&\n obj.status === EObjectStatus.Checked,\n );\n if (skeletonObjs.length > 0) {\n const objects = skeletonObjs.map((item) => {\n return {\n keypoints: item.keypoints\n ? newTranslatePointObjsToPointAttrs(\n item.keypoints.points,\n naturalSize,\n clientSize,\n ).points\n : undefined,\n bbox: item.rect\n ? translateRectToPointsArray(item.rect, clientSize, naturalSize)\n : undefined,\n };\n });\n Object.assign(reqParams, { objects });\n }\n }\n\n const { result, sessionId } = await fetchModelResults(\n EnumModelType.Pose,\n reqParams,\n );\n\n if (result) {\n const { objects } = result;\n if (objects && objects.length > 0) {\n const skeletonObjs = objects.map((obj) => {\n let { bbox, keypoints, score } = obj;\n const newObj: IAnnotationObject = {\n labelId: editState.latestLabelId,\n color: getAnnotColor(editState.latestLabelId),\n type: EObjectType.Skeleton,\n hidden: false,\n conf: score,\n status: EObjectStatus.Checked,\n };\n if (bbox) {\n const rect = translatePointsToRect(bbox, naturalSize, clientSize);\n Object.assign(newObj, { rect: { visible: true, ...rect } });\n }\n if (keypoints && lines && pointColors && pointNames) {\n const pointObjs = newTranslatePointsToPointObjs(\n keypoints,\n pointNames,\n pointColors,\n naturalSize,\n clientSize,\n );\n Object.assign(newObj, {\n keypoints: {\n points: pointObjs,\n lines,\n },\n });\n }\n return newObj;\n });\n\n setDrawDataWithHistory((s) => {\n if (!s.isBatchEditing) {\n s.isBatchEditing = true;\n }\n const commitedObjects = s.objectList.filter(\n (obj) => obj.status === EObjectStatus.Commited,\n );\n s.objectList = [...commitedObjects, ...skeletonObjs];\n if (s.creatingObject && s.objectList[s.activeObjectIndex]) {\n s.creatingObject = { ...s.objectList[s.activeObjectIndex] };\n }\n s.prompt.sessionId = sessionId;\n });\n return true;\n }\n }\n };\n\n const requestEdgeStitchingForMask = async (drawData: DrawData) => {\n if (\n !drawData.prompt.creatingPrompt?.stroke ||\n !drawData.prompt.creatingPrompt?.radius\n )\n return;\n\n const { stroke, radius } = drawData.prompt.creatingPrompt;\n\n const maskObjects = drawData.objectList.filter(\n (item) => item.type === EObjectType.Mask,\n );\n\n if (maskObjects.length < 2) {\n message.error(localeText('DDSAnnotator.smart.tip.edgeStitchError'));\n setDrawData((s) => {\n s.prompt.creatingPrompt = undefined;\n });\n return;\n }\n\n const masks: IMask[] = maskObjects.map((item) => ({\n counts: item.maskRle || '',\n size: [naturalSize.height, naturalSize.width],\n }));\n\n const points = stroke.reduce((acc: number[], point: IPoint) => {\n const { x, y } = point;\n const naturalPoint = getNaturalPoint([x, y], naturalSize, clientSize);\n return acc.concat([naturalPoint.x, naturalPoint.y]);\n }, []);\n\n const reqParams = await fetchCommonReqParams(drawData, {\n masks,\n prompts: [\n {\n type: EPromptType.Stroke,\n stroke: points,\n radius,\n },\n ],\n });\n\n const { result, sessionId } =\n await fetchModelResults(\n EnumModelType.MaskEdgeStitching,\n reqParams,\n );\n if (result && result.masks?.length > 0) {\n const newMaskObjects = maskObjects.map((item, index) => {\n const maskRleStr = result.masks?.[index]?.counts || '';\n return {\n ...item,\n maskRle: maskRleStr,\n maskCanvasElement: rleToCanvas(maskRleStr, naturalSize, item.color),\n };\n });\n\n // Replace all instances of the mask type\n const leftObjs = drawData.objectList.filter(\n (obj) => obj.type !== EObjectType.Mask,\n );\n\n setDrawDataWithHistory((s) => {\n s.objectList = [...leftObjs, ...newMaskObjects];\n s.prompt.creatingPrompt = undefined;\n s.prompt.sessionId = sessionId;\n });\n return true;\n }\n };\n\n const requestSegmentEverything = async (\n params?: NsApiAnnotator.FetchSegmentEverythingReq,\n ) => {\n if (!currImageItem) return;\n\n const reqParams = {\n image: await getServerAddressableUrl(currImageItem.url),\n ...params,\n };\n\n const { result } = await fetchModelResults(\n EnumModelType.SegmentEverything,\n reqParams,\n );\n if (result && result.masks?.length > 0) {\n // change to display different color\n setEditState((s) => {\n s.annotsDisplayOptions.colorByCategory = false;\n });\n const maskObjects: IAnnotationObject[] = result.masks.map((item) => {\n const color = getAnnotColor(editState.latestLabelId);\n const maskRleStr = item?.counts || '';\n return {\n type: EObjectType.Mask,\n hidden: false,\n labelId: editState.latestLabelId,\n maskRle: maskRleStr,\n maskCanvasElement: rleToCanvas(maskRleStr, naturalSize, color),\n conf: 1,\n status: EObjectStatus.Checked,\n color,\n };\n });\n setDrawDataWithHistory((s) => {\n s.objectList = maskObjects;\n s.isBatchEditing = true;\n });\n return true;\n }\n };\n\n const onAiAnnotation: OnAiAnnotationFunc = useCallback(\n async ({\n type,\n drawData: propsDrawData,\n text,\n promptsQueue,\n segmentEverythingParams,\n }) => {\n if (editState.isRequiring || !currImageItem) return;\n\n const drawData = propsDrawData || editorDrawData;\n\n const hide = message.loading(\n localeText('DDSAnnotator.smart.msg.loading'),\n 100000,\n );\n try {\n setLoading(true);\n setEditState((s) => {\n s.isRequiring = true;\n });\n const aiType = type || EBasicToolTypeMap[drawData.selectedTool];\n let isSuccess;\n switch (aiType) {\n case EObjectType.Rectangle: {\n if (\n drawData.selectedModel[drawData.selectedTool] ===\n EnumModelType.Detection\n ) {\n isSuccess = await requestAiDetection(drawData, text || '');\n } else {\n isSuccess = await requestIvpDetection(drawData, promptsQueue);\n }\n break;\n }\n case EObjectType.Skeleton: {\n isSuccess = await requestAiPoseEstimation(drawData);\n break;\n }\n case EObjectType.Polygon: {\n isSuccess = await requestAiSegmentByPolygon(drawData, promptsQueue);\n break;\n }\n case EObjectType.Mask: {\n const model = drawData.selectedModel[drawData.selectedTool];\n if (model === EnumModelType.SegmentEverything) {\n if (drawData.selectedSubTool === ESubToolItem.AutoEdgeStitching) {\n isSuccess = await requestEdgeStitchingForMask(drawData);\n } else if (\n drawData.selectedSubTool === ESubToolItem.AutoSegmentEverything\n ) {\n isSuccess = await requestSegmentEverything(\n segmentEverythingParams,\n );\n }\n } else if (model === EnumModelType.IVP) {\n isSuccess = await requestIvpMask(drawData, promptsQueue);\n } else {\n isSuccess = await requestAiSegmentByMask(drawData, promptsQueue);\n }\n break;\n }\n default:\n message.warning('Plan to Support!');\n break;\n }\n if (isSuccess) {\n message.success(localeText('DDSAnnotator.smart.msg.success'));\n }\n } catch (error) {\n setDrawDataWithHistory((s) => {\n if (s.prompt.creatingPrompt) {\n s.prompt.creatingPrompt = undefined;\n }\n });\n message.error(localeText('DDSAnnotator.smart.msg.error'));\n } finally {\n setLoading(false);\n setEditState((s) => {\n s.isRequiring = false;\n });\n setDrawData((s) => {\n s.prompt.activeRectWhileLoading = undefined;\n });\n hide();\n }\n },\n [\n editorDrawData,\n currImageItem,\n editState,\n naturalSize,\n clientSize,\n getAnnotColor,\n setDrawDataWithHistory,\n ],\n );\n\n return {\n onAiAnnotation,\n };\n};\n\nexport default useAiModels;\n","import { useCallback } from 'react';\nimport { Updater } from 'use-immer';\n\nimport {\n Category,\n DrawData,\n IAnnotationObject,\n IAttributeValue,\n} from '../type';\n\ninterface IProps {\n setDrawDataWithHistory: Updater;\n categories: Category[];\n}\n\nexport default function useAttributes({\n setDrawDataWithHistory,\n categories,\n}: IProps) {\n const judgeEditingAttribute = useCallback(\n (object: IAnnotationObject, index: number) => {\n const label = categories.find((item) => item.id === object.labelId);\n if (label?.attributes && label.attributes.length > 0) {\n return {\n index,\n labelId: object.labelId,\n attributes: label.attributes,\n values: object.attributes || [],\n };\n }\n return undefined;\n },\n [categories],\n );\n\n const onConfirmAttibuteEdit = useCallback(\n (values: IAttributeValue[]) => {\n setDrawDataWithHistory((s) => {\n if (s.editingAttribute) {\n if (s.objectList[s.editingAttribute.index]) {\n // object attributes\n s.objectList[s.editingAttribute.index].attributes = values;\n } else {\n // classification attributes\n const i = s.classifications.findIndex(\n (item) => item.labelId === s.editingAttribute?.labelId,\n );\n if (i > -1) {\n s.classifications[i].attributes = values;\n } else {\n s.classifications.push({\n labelId: s.editingAttribute?.labelId,\n labelValue: null,\n attributes: values,\n });\n }\n }\n s.editingAttribute = undefined;\n }\n });\n },\n [setDrawDataWithHistory],\n );\n\n const onCancelAttibuteEdit = () => {\n setDrawDataWithHistory((s) => {\n s.editingAttribute = undefined;\n });\n };\n\n return {\n judgeEditingAttribute,\n onConfirmAttibuteEdit,\n onCancelAttibuteEdit,\n };\n}\n","import { __read } from \"tslib\";\nimport useRafState from '../useRafState';\nimport useEventListener from '../useEventListener';\nimport { getTargetElement } from '../utils/domTarget';\nvar initState = {\n screenX: NaN,\n screenY: NaN,\n clientX: NaN,\n clientY: NaN,\n pageX: NaN,\n pageY: NaN,\n elementX: NaN,\n elementY: NaN,\n elementH: NaN,\n elementW: NaN,\n elementPosX: NaN,\n elementPosY: NaN\n};\nexport default (function (target) {\n var _a = __read(useRafState(initState), 2),\n state = _a[0],\n setState = _a[1];\n useEventListener('mousemove', function (event) {\n var screenX = event.screenX,\n screenY = event.screenY,\n clientX = event.clientX,\n clientY = event.clientY,\n pageX = event.pageX,\n pageY = event.pageY;\n var newState = {\n screenX: screenX,\n screenY: screenY,\n clientX: clientX,\n clientY: clientY,\n pageX: pageX,\n pageY: pageY,\n elementX: NaN,\n elementY: NaN,\n elementH: NaN,\n elementW: NaN,\n elementPosX: NaN,\n elementPosY: NaN\n };\n var targetElement = getTargetElement(target);\n if (targetElement) {\n var _a = targetElement.getBoundingClientRect(),\n left = _a.left,\n top_1 = _a.top,\n width = _a.width,\n height = _a.height;\n newState.elementPosX = left + window.pageXOffset;\n newState.elementPosY = top_1 + window.pageYOffset;\n newState.elementX = pageX - newState.elementPosX;\n newState.elementY = pageY - newState.elementPosY;\n newState.elementW = width;\n newState.elementH = height;\n }\n setState(newState);\n }, {\n target: function () {\n return document;\n }\n });\n return state;\n});","import { useEventListener, useMouse, useSize } from 'ahooks';\nimport { fixedFloatNum } from 'dds-utils/digit';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useImmer } from 'use-immer';\n\nimport {\n MIN_SCALE,\n MAX_SCALE,\n BUTTON_SCALE_STEP,\n WHEEL_SCALE_STEP,\n ESubToolItem,\n EObjectType,\n EBasicToolItem,\n} from '../constants';\nimport { DrawData } from '../type';\nimport { isInCanvas, zoomImgSize } from '../utils/compute';\n\ninterface IProps {\n isRequiring: boolean;\n visible: boolean;\n minPadding?: {\n top: number;\n left: number;\n };\n allowMove: boolean;\n cursorSize: number;\n drawData: DrawData;\n onClickMaskBg?: React.MouseEventHandler;\n hideReferenceLine?: boolean;\n}\n\nexport default function useCanvasContainer({\n isRequiring,\n visible,\n minPadding = { top: 0, left: 0 },\n allowMove,\n drawData,\n cursorSize,\n onClickMaskBg,\n hideReferenceLine,\n}: IProps) {\n const containerRef = useRef(null);\n const containerSize = useSize(() => containerRef.current);\n const containerMouse = useMouse(() => containerRef.current); // delayed get size when move don't move\n\n /** The original size of image */\n const [naturalSize, setNaturalSize] = useState({\n width: 0,\n height: 0,\n });\n\n /** The scaled size of image */\n const [clientSize, setClientSize] = useImmer<{\n width: number;\n height: number;\n scale: number;\n }>({\n width: naturalSize.width,\n height: naturalSize.height,\n scale: 1,\n });\n\n /** The top-left location on canvas container */\n const imagePos = useRef({ x: 0, y: 0 });\n\n // Scale info\n const lastScalePosRef = useRef<\n | {\n posRatioX: number;\n posRatioY: number;\n mouseX: number;\n mouseY: number;\n }\n | undefined\n >(undefined);\n\n const contentMouse = useMemo(() => {\n return {\n ...containerMouse,\n elementW: clientSize.width,\n elementH: clientSize.height,\n elementX: containerMouse.elementX - imagePos.current.x,\n elementY: containerMouse.elementY - imagePos.current.y,\n };\n }, [containerMouse, clientSize]);\n\n const [movingImgAnchor, setMovingImgAnchor] = useImmer(null);\n\n const initClientSizeToFit = (naturalSize: ISize, containerSize: ISize) => {\n if (naturalSize?.width && containerSize?.height) {\n const containerWidth = containerSize.width;\n const containerHeight = containerSize.height;\n const [width, height, scale] = zoomImgSize(\n naturalSize.width,\n naturalSize.height,\n containerWidth - minPadding.left * 2,\n containerHeight - minPadding.top * 2,\n );\n imagePos.current = {\n x: (containerWidth - width) * 0.5,\n y: (containerHeight - height) * 0.5,\n };\n setClientSize({\n scale,\n width: naturalSize.width * scale,\n height: naturalSize.height * scale,\n });\n lastScalePosRef.current = undefined;\n }\n };\n\n /** Initial position to fit container */\n useEffect(() => {\n if (naturalSize && containerSize) {\n initClientSizeToFit(naturalSize, containerSize);\n }\n }, [containerSize]);\n\n const adaptImagePosWhileZoom = () => {\n if (!containerSize) return;\n\n const containerWidth = containerSize?.width;\n const containerHeight = containerSize?.height;\n\n // Default zoom center\n let posRatioX = 0.5;\n let posRatioY = 0.5;\n let mouseX = containerWidth / 2;\n let mouseY = containerHeight / 2;\n\n if (lastScalePosRef.current) {\n posRatioX = lastScalePosRef.current.posRatioX;\n posRatioY = lastScalePosRef.current.posRatioY;\n mouseX = lastScalePosRef.current.mouseX;\n mouseY = lastScalePosRef.current.mouseY;\n }\n const x = mouseX - clientSize.width * posRatioX;\n const y = mouseY - clientSize.height * posRatioY;\n\n imagePos.current = { x, y };\n };\n\n useEffect(() => {\n adaptImagePosWhileZoom();\n }, [clientSize]);\n\n const zoom = (isZoomIn: boolean, step: number, isZoomBtn?: boolean) => {\n if (!visible || isRequiring) return;\n setClientSize((s) => {\n let scale = isZoomIn\n ? Math.min(MAX_SCALE, fixedFloatNum(s.scale + step, 2))\n : Math.max(MIN_SCALE, fixedFloatNum(s.scale - step, 2));\n\n // update scale center\n if (\n !lastScalePosRef.current ||\n containerMouse.elementX !== lastScalePosRef.current.mouseX ||\n containerMouse.elementY !== lastScalePosRef.current.mouseY\n ) {\n if (\n !isZoomBtn &&\n !isNaN(contentMouse.elementX) &&\n !isNaN(containerMouse.elementX) &&\n clientSize.width\n ) {\n const scalePos = {\n posRatioX: contentMouse.elementX / clientSize.width,\n posRatioY: contentMouse.elementY / clientSize.height,\n mouseX: containerMouse.elementX,\n mouseY: containerMouse.elementY,\n };\n lastScalePosRef.current = scalePos;\n }\n }\n\n s.scale = scale;\n s.width = naturalSize.width * scale;\n s.height = naturalSize.height * scale;\n });\n };\n\n const onZoomIn = useCallback(() => {\n zoom(true, BUTTON_SCALE_STEP, true);\n }, [BUTTON_SCALE_STEP, zoom]);\n\n const onZoomOut = useCallback(() => {\n zoom(false, BUTTON_SCALE_STEP, true);\n }, [BUTTON_SCALE_STEP, zoom]);\n\n // Zoom gesture.\n const onWheelMove: React.WheelEventHandler = (event) => {\n if (!visible || isRequiring) return;\n const wheelDirection = event.deltaY;\n if (wheelDirection > 0) {\n zoom(false, WHEEL_SCALE_STEP);\n } else if (wheelDirection < 0) {\n zoom(true, WHEEL_SCALE_STEP);\n }\n };\n\n const onReset = useCallback(() => {\n lastScalePosRef.current = undefined;\n if (containerSize && naturalSize) {\n initClientSizeToFit(naturalSize, containerSize);\n }\n }, [\n naturalSize.width,\n naturalSize.height,\n containerSize?.width,\n containerSize?.height,\n ]);\n\n // Reset data when hidden.\n useEffect(() => {\n if (!visible) {\n setNaturalSize({ width: 0, height: 0 });\n setClientSize({\n scale: 1,\n width: 0,\n height: 0,\n });\n imagePos.current = { x: 0, y: 0 };\n lastScalePosRef.current = undefined;\n }\n }, [visible]);\n\n const [isMousePress, setMousePress] = useState(false);\n\n useEventListener('mousedown', () => {\n if (!visible || !containerRef.current || !isInCanvas(containerMouse))\n return;\n setMousePress(true);\n setMovingImgAnchor({\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n });\n });\n\n useEventListener('mousemove', () => {\n if (!visible) return;\n if (movingImgAnchor && allowMove && isMousePress) {\n const offsetX = contentMouse.elementX - movingImgAnchor.x;\n const offsetY = contentMouse.elementY - movingImgAnchor.y;\n const { x, y } = imagePos.current;\n imagePos.current = {\n x: x + offsetX,\n y: y + offsetY,\n };\n }\n });\n\n useEventListener('mouseup', () => {\n setMousePress(false);\n if (!visible || !allowMove) return;\n // Stop moving the image.\n if (movingImgAnchor) {\n setMovingImgAnchor(null);\n return;\n }\n });\n\n useEffect(() => {\n if (!allowMove) {\n setMovingImgAnchor(null);\n } else {\n setMovingImgAnchor({\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n });\n }\n }, [allowMove]);\n\n const onLoadImg = (\n e: React.UIEvent,\n withoutInitClientSize?: boolean,\n ) => {\n const img = e.target as HTMLImageElement;\n const naturalSize = { width: img.naturalWidth, height: img.naturalHeight };\n setNaturalSize(naturalSize);\n if (containerSize && naturalSize && !withoutInitClientSize) {\n initClientSizeToFit(naturalSize, containerSize);\n }\n };\n\n const onClickBg = (event: React.MouseEvent) => {\n if (!isInCanvas(contentMouse)) {\n onClickMaskBg?.(event);\n }\n };\n\n const isCustomCursorActive = useMemo(() => {\n const isToolWithSize = [\n ESubToolItem.AutoEdgeStitching,\n ESubToolItem.AutoSegmentByStroke,\n ESubToolItem.BrushAdd,\n ESubToolItem.BrushErase,\n ].includes(drawData.selectedSubTool);\n\n if (\n drawData.creatingObject &&\n drawData.activeObjectIndex > -1 &&\n [EObjectType.Mask, EObjectType.Polygon].includes(\n drawData.creatingObject.type,\n )\n ) {\n return isToolWithSize;\n }\n if (\n drawData.selectedTool !== EBasicToolItem.Drag &&\n !drawData.isBatchEditing\n ) {\n return (\n [EBasicToolItem.Mask, EBasicToolItem.Polygon].includes(\n drawData.selectedTool,\n ) && isToolWithSize\n );\n }\n return false;\n }, [drawData.selectedTool, drawData.selectedSubTool]);\n\n const showReferenceLine = useMemo(() => {\n return (\n drawData.selectedTool !== EBasicToolItem.Drag &&\n !isCustomCursorActive &&\n !hideReferenceLine\n );\n }, [drawData.selectedTool, isCustomCursorActive, hideReferenceLine]);\n\n /** Container render function */\n const CanvasContainer = ({\n children,\n className,\n }: {\n children: React.ReactNode;\n className?: string;\n }) => {\n if (!visible) return null;\n return (\n \n {children}\n {showReferenceLine && !allowMove && isInCanvas(contentMouse) && (\n <>\n {/* leftLine */}\n \n {/* rightLine */}\n \n {/* upLine */}\n \n {/* downLine */}\n \n \n )}\n {isCustomCursorActive &&\n cursorSize > 0 &&\n isInCanvas(containerMouse) &&\n isInCanvas(contentMouse) &&\n !allowMove && (\n \n )}\n \n );\n };\n\n return {\n CanvasContainer,\n scale: clientSize.scale,\n containerRef,\n naturalSize,\n clientSize: {\n width: clientSize.width,\n height: clientSize.height,\n },\n containerSize,\n containerMouse: {\n ...containerMouse,\n elementW: containerSize?.width || containerMouse.elementW,\n elementH: containerSize?.height || containerMouse.elementH,\n },\n contentMouse,\n imagePos,\n isMousePress,\n onLoadImg,\n onZoomIn,\n onZoomOut,\n onWheelMove,\n onReset,\n };\n}\n","import { FloatWrapper } from '../FloatWrapper';\n\nimport './index.less';\n\ninterface IPopoverMenu {\n index: number;\n targetElement: IElement;\n imagePos: IPoint;\n}\n\nconst PopoverMenu: React.FC = ({\n index,\n targetElement,\n imagePos,\n}) => {\n return (\n \n \n
\n {`${index + 1} ${\n targetElement.name\n }`}\n
\n \n
\n );\n};\n\nexport default PopoverMenu;\n","import { CursorState } from 'ahooks/lib/useMouse';\nimport React from 'react';\n\nimport PopoverMenu from '../components/PopoverMenu';\nimport {\n EBasicToolItem,\n EElementType,\n EnumModelType,\n EObjectType,\n} from '../constants';\nimport {\n ANNO_FILL_ALPHA,\n ANNO_FILL_COLOR,\n ANNO_MASK_ALPHA,\n ANNO_STROKE_ALPHA,\n ANNO_STROKE_COLOR,\n} from '../constants/render';\nimport { ToolInstanceHookReturn } from '../tools/base';\nimport {\n DrawData,\n EditState,\n EObjectStatus,\n IAnnotationObject,\n ICreatingObject,\n} from '../type';\nimport { hexToRgba } from '../utils/color';\nimport { translateAnnotCoord } from '../utils/compute';\nimport {\n addFilter,\n clearCanvas,\n drawImage,\n removeFilter,\n resizeSmoothCanvas,\n setCanvasGlobalAlpha,\n} from '../utils/draw';\n\ninterface IProps {\n visible: boolean;\n drawData: DrawData;\n editState: EditState;\n clientSize: ISize;\n imagePos: React.MutableRefObject;\n containerMouse: CursorState;\n canvasRef: React.RefObject;\n activeCanvasRef: React.RefObject;\n imgRef: React.RefObject;\n objectHooksMap: Record;\n videoLoading?: boolean;\n}\n\nconst useCanvasRender = ({\n visible,\n drawData,\n editState,\n clientSize,\n imagePos,\n containerMouse,\n canvasRef,\n activeCanvasRef,\n imgRef,\n objectHooksMap,\n videoLoading,\n}: IProps) => {\n // =================================================================================================================\n // Render\n // =================================================================================================================\n\n const getObjectStyles = (\n object: IAnnotationObject,\n color: string,\n status?: 'focus' | 'justCreated' | 'creating' | 'editing',\n ) => {\n let [strokeColor, fillColor, maskAlpha] = [\n hexToRgba(color, ANNO_STROKE_ALPHA.DEFAULT),\n hexToRgba(color, ANNO_FILL_ALPHA.DEFAULT),\n ANNO_MASK_ALPHA.DEFAULT,\n ];\n if (status === 'focus') {\n maskAlpha = ANNO_MASK_ALPHA.FOCUS;\n strokeColor = hexToRgba(color, ANNO_STROKE_ALPHA.FOCUS);\n fillColor = hexToRgba(color, ANNO_FILL_ALPHA.FOCUS);\n } else if (status === 'justCreated') {\n maskAlpha = ANNO_MASK_ALPHA.JUST_CREATED;\n fillColor = hexToRgba(color, ANNO_FILL_ALPHA.JUST_CREATED);\n } else if (status === 'editing') {\n maskAlpha = ANNO_MASK_ALPHA.CREATING;\n strokeColor = hexToRgba(color, ANNO_STROKE_ALPHA.CREATING);\n fillColor = hexToRgba(color, ANNO_FILL_ALPHA.CREATING);\n } else if (status === 'creating') {\n maskAlpha = ANNO_MASK_ALPHA.CREATING;\n strokeColor = ANNO_STROKE_COLOR.CREATING;\n fillColor = ANNO_FILL_COLOR.CREATING;\n }\n\n return {\n strokeColor,\n fillColor,\n maskAlpha,\n strokeDash: [0],\n thickness: 2,\n pointAplha: 1,\n ...(object.customStyles || {}),\n };\n };\n\n const updateCreatingRender = (creatingObject: ICreatingObject) => {\n const styles = getObjectStyles(\n creatingObject,\n creatingObject.color,\n 'creating',\n );\n\n objectHooksMap[creatingObject.type].renderCreatingObject({\n object: creatingObject,\n color: creatingObject.color,\n styles,\n });\n return;\n };\n\n const updateEditingRender = (creatingObject: ICreatingObject) => {\n // draw currently annotated objects\n if (creatingObject.hidden) return;\n\n const canvasCoordObject = translateAnnotCoord(creatingObject, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n const isFocus = editState.focusObjectIndex === drawData.activeObjectIndex;\n const styles = getObjectStyles(\n creatingObject,\n creatingObject.color,\n isFocus ? 'focus' : 'editing',\n );\n\n objectHooksMap[creatingObject.type].renderEditingObject({\n object: canvasCoordObject,\n color: creatingObject.color,\n styles,\n isFocus,\n });\n return;\n };\n\n const updateCreatingPromptRender = (theDrawData: DrawData) => {\n const { prompt } = theDrawData;\n\n if (\n prompt.creatingPrompt ||\n prompt.promptsQueue ||\n prompt.activeRectWhileLoading\n ) {\n if (\n theDrawData.selectedTool === EBasicToolItem.Mask ||\n theDrawData.creatingObject?.type === EObjectType.Mask\n ) {\n objectHooksMap[EObjectType.Mask].renderPrompt({\n prompt,\n });\n } else if (\n theDrawData.selectedTool === EBasicToolItem.Polygon ||\n theDrawData.creatingObject?.type === EObjectType.Polygon\n ) {\n objectHooksMap[EObjectType.Polygon].renderPrompt({\n prompt,\n });\n } else if (\n theDrawData.selectedTool === EBasicToolItem.Rectangle &&\n theDrawData.selectedModel[theDrawData.selectedTool] ===\n EnumModelType.IVP\n ) {\n objectHooksMap[EObjectType.Rectangle].renderPrompt({\n prompt,\n });\n }\n }\n return;\n };\n\n const updateRenderActiveCanvas = (updateDrawData?: DrawData) => {\n if (!visible || !activeCanvasRef.current) return;\n\n resizeSmoothCanvas(activeCanvasRef.current, {\n width: containerMouse.elementW,\n height: containerMouse.elementH,\n });\n activeCanvasRef.current.getContext('2d')!.imageSmoothingEnabled = false;\n clearCanvas(activeCanvasRef.current);\n\n const theDrawData = updateDrawData || drawData;\n if (theDrawData.creatingObject) {\n if (theDrawData.activeObjectIndex > -1) {\n updateEditingRender(theDrawData.creatingObject);\n } else {\n updateCreatingRender(theDrawData.creatingObject);\n }\n }\n\n updateCreatingPromptRender(theDrawData);\n };\n\n const renderObject = (\n object: IAnnotationObject,\n isFocus: boolean,\n isJustCreated: boolean,\n ) => {\n const canvasCoordObject = translateAnnotCoord(object, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n const { type } = canvasCoordObject;\n // Color styles\n const status = isFocus\n ? 'focus'\n : isJustCreated\n ? 'justCreated'\n : undefined;\n const styles = getObjectStyles(object, object.color, status);\n\n // Change globalAlpha when creating / editing object\n setCanvasGlobalAlpha(canvasRef.current!, drawData.creatingObject ? 0.6 : 1);\n\n objectHooksMap[type].renderObject({\n object: canvasCoordObject,\n color: object.color,\n styles,\n isFocus,\n isJustCreated,\n });\n };\n\n const renderObjectList = (\n list: IAnnotationObject[],\n activeObjectIndex: number,\n ) => {\n // render normal objects\n list.forEach((obj, index) => {\n if (\n obj.hidden ||\n index === activeObjectIndex ||\n index === editState.focusObjectIndex ||\n obj.frameEmpty\n ) {\n return;\n }\n\n const isFocus = drawData.editingAttribute?.index === index;\n const isJustCreated =\n (!editState.isCtrlPressed && obj.status === EObjectStatus.Checked) ||\n (drawData.isJustCreated && index === list.length - 1);\n\n renderObject(obj, isFocus, isJustCreated);\n });\n };\n\n const updateRender = (updateDrawData?: DrawData) => {\n if (\n !visible ||\n !canvasRef.current ||\n !imgRef.current ||\n !imgRef.current.complete\n )\n return;\n\n // video load maybe use long time, should clearCanvas first\n if (videoLoading) {\n clearCanvas(canvasRef.current);\n return;\n }\n\n resizeSmoothCanvas(canvasRef.current, {\n width: containerMouse.elementW,\n height: containerMouse.elementH,\n });\n canvasRef.current.getContext('2d')!.imageSmoothingEnabled = false;\n clearCanvas(canvasRef.current);\n\n // add filter before drawImage and apply for image only\n addFilter(\n canvasRef.current,\n editState.imageDisplayOptions.brightness,\n editState.imageDisplayOptions.contrast,\n editState.imageDisplayOptions.saturate,\n );\n\n drawImage(canvasRef.current, imgRef.current, {\n x: imagePos.current.x,\n y: imagePos.current.y,\n width: clientSize.width,\n height: clientSize.height,\n });\n\n // remove filter just in case it may be applied on all canvas\n removeFilter(canvasRef.current);\n\n const theDrawData = updateDrawData || drawData;\n\n // draw esisting objects\n renderObjectList(theDrawData.objectList, theDrawData.activeObjectIndex);\n\n // draw creating object\n updateRenderActiveCanvas(theDrawData);\n\n // render focus object\n if (\n editState.focusObjectIndex > -1 &&\n editState.focusObjectIndex !== drawData.activeObjectIndex &&\n theDrawData.objectList[editState.focusObjectIndex] &&\n !theDrawData.objectList[editState.focusObjectIndex].hidden &&\n !theDrawData.objectList[editState.focusObjectIndex].frameEmpty\n ) {\n renderObject(\n theDrawData.objectList[editState.focusObjectIndex],\n true,\n false,\n );\n }\n };\n\n const renderPopoverMenu = () => {\n if (\n editState.focusObjectIndex > -1 &&\n drawData.objectList[editState.focusObjectIndex] &&\n !drawData.objectList[editState.focusObjectIndex].hidden &&\n editState.focusEleIndex > -1 &&\n editState.focusEleType === EElementType.Circle\n ) {\n const target =\n drawData.objectList[editState.focusObjectIndex].keypoints?.points?.[\n editState.focusEleIndex\n ];\n if (target) {\n return (\n \n );\n }\n }\n return <>;\n };\n\n return {\n updateRender,\n renderPopoverMenu,\n };\n};\n\nexport default useCanvasRender;\n","import { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { Category, EditState } from '../type';\nimport { getCategoryColors, hsvToRgb, rgbArrayToHex } from '../utils/color';\n\ninterface IProps {\n categories: Category[];\n editState: EditState;\n forceColorByObject?: boolean;\n}\n\nexport default function useColor({\n categories,\n editState,\n forceColorByObject,\n}: IProps) {\n const labelColors = useMemo(() => {\n return getCategoryColors(categories.map((item) => item.id));\n }, [categories]);\n\n const colorSeedRef = useRef(0);\n\n const getUniformHexColor = (seed: number) => {\n // update seed\n const goldenRatio = 0.618;\n colorSeedRef.current = seed + goldenRatio;\n\n // generate uniform hex color\n const hue = (seed + goldenRatio) % 1;\n const rgbColor = hsvToRgb(hue, 0.8, 0.95);\n return rgbArrayToHex(rgbColor);\n };\n\n useEffect(() => {\n // reset seed\n colorSeedRef.current = 0;\n }, [editState.annotsDisplayOptions.colorByCategory]);\n\n const getAnnotColor = useCallback(\n (categoryId: string, forceColorByCategory?: boolean) => {\n if (\n !forceColorByObject &&\n (editState.annotsDisplayOptions.colorByCategory || forceColorByCategory)\n ) {\n const catagory = categories.find((item) => item.id === categoryId);\n return catagory?.renderColor || labelColors[categoryId] || '#fff';\n } else {\n return getUniformHexColor(colorSeedRef.current);\n }\n },\n [\n editState.annotsDisplayOptions.colorByCategory,\n labelColors,\n getUniformHexColor,\n colorSeedRef.current,\n forceColorByObject,\n ],\n );\n\n return {\n labelColors,\n getAnnotColor,\n };\n}\n","import { useRef } from 'react';\n\nexport type compareFunction = (prev: T | undefined, next: T) => boolean;\n\nexport default function usePreviousState(\n state: T,\n compare?: compareFunction,\n): [T | undefined, () => void] {\n const prevRef = useRef();\n const curRef = useRef();\n\n const needUpdate =\n typeof compare === 'function' ? compare(curRef.current, state) : true;\n if (needUpdate) {\n prevRef.current = curRef.current;\n curRef.current = state;\n }\n\n const clearPrev = () => {\n prevRef.current = undefined;\n };\n\n return [prevRef.current, clearPrev];\n}\n","import { cloneDeep } from 'lodash';\nimport { useCallback, useEffect } from 'react';\nimport { Updater } from 'use-immer';\n\nimport {\n BaseObject,\n Category,\n DEFAULT_DRAW_DATA,\n DEFAULT_EDIT_STATE,\n DrawData,\n AnnoItem,\n DrawObject,\n EditState,\n VideoFramesData,\n} from '../type';\nimport { scaleDrawData, scaleFramesObjects } from '../utils/compute';\n\nimport usePreviousState from './usePreviousState';\n\ninterface IProps {\n imagePos: React.MutableRefObject;\n clientSize: ISize;\n naturalSize: ISize;\n annotations: DrawObject[];\n setAnnotations: Updater;\n drawData: DrawData;\n setDrawData: Updater;\n setFramesData?: Updater;\n editState: EditState;\n setEditState: Updater;\n initObjectList: (annotations: DrawObject[]) => void;\n updateRender: (updateDrawData?: DrawData) => void;\n clearHistory: () => void;\n objectsFilter?: (imageData: any) => BaseObject[];\n labelOptions: Category[];\n customDefaultDrawData?: Partial;\n}\n\nconst useDataEffect = ({\n imagePos,\n clientSize,\n naturalSize,\n annotations,\n setAnnotations,\n drawData,\n setDrawData,\n setFramesData,\n editState,\n setEditState,\n initObjectList,\n updateRender,\n clearHistory,\n objectsFilter,\n labelOptions,\n customDefaultDrawData,\n}: IProps) => {\n const [preClientSize, clearPreClientSize] =\n usePreviousState(clientSize);\n\n /**\n * Rebuilds the draw data for the annotation tool.\n * @param {boolean} isUpdateDrawData - Optional parameter that specifies whether to update draw data.\n * @return {void}\n */\n const rebuildDrawData = (\n isForce?: boolean,\n theAnnotations?: DrawObject[],\n ) => {\n if (\n !clientSize.width ||\n !clientSize.height ||\n !naturalSize.width ||\n !naturalSize.height\n )\n return;\n if (!drawData.initialized || isForce) {\n initObjectList(theAnnotations || annotations);\n } else if (drawData.initialized && preClientSize) {\n // scale change\n if (setFramesData) {\n setFramesData?.((s) => {\n s.objects = scaleFramesObjects(s.objects, preClientSize, clientSize);\n });\n }\n const updateDrawData = scaleDrawData(drawData, preClientSize, clientSize);\n setDrawData(updateDrawData);\n updateRender(updateDrawData);\n clearPreClientSize();\n }\n };\n\n const resetDrawData = useCallback(() => {\n setDrawData({\n ...cloneDeep(DEFAULT_DRAW_DATA),\n brushSize: drawData.brushSize,\n selectedTool: drawData.selectedTool,\n selectedSubTool: drawData.selectedSubTool,\n selectedModel: drawData.selectedModel,\n AIAnnotation: drawData.AIAnnotation,\n ...customDefaultDrawData,\n });\n }, [\n DEFAULT_DRAW_DATA,\n customDefaultDrawData,\n drawData.brushSize,\n drawData.selectedSubTool,\n drawData.selectedTool,\n drawData.AIAnnotation,\n ]);\n\n const resetEditData = useCallback(() => {\n setEditState({\n ...cloneDeep(DEFAULT_EDIT_STATE),\n latestLabelId: labelOptions?.[0]?.id || '',\n imageDisplayOptions: editState.imageDisplayOptions,\n annotsDisplayOptions: editState.annotsDisplayOptions,\n });\n }, [\n DEFAULT_EDIT_STATE,\n labelOptions,\n editState.imageDisplayOptions,\n editState.annotsDisplayOptions,\n ]);\n\n const applyImageAnnots = useCallback(\n (imageData: AnnoItem) => {\n const annotations = imageData?.objects ? [...imageData?.objects] : [];\n const currAnnotations =\n imageData && objectsFilter\n ? objectsFilter(imageData) || []\n : annotations;\n setAnnotations(currAnnotations);\n rebuildDrawData(true, currAnnotations);\n },\n [objectsFilter, rebuildDrawData],\n );\n\n const resetDataWithImageData = useCallback(\n (\n imageData?: AnnoItem,\n visible: boolean = false,\n clearHistoryQueue: boolean = true,\n ) => {\n setAnnotations([]);\n resetDrawData();\n resetEditData();\n if (clearHistoryQueue) clearHistory();\n if (visible && imageData) {\n applyImageAnnots(imageData);\n }\n },\n [resetDrawData, resetEditData, clearHistory, applyImageAnnots],\n );\n\n /** Update canvas while data changing */\n useEffect(() => {\n updateRender();\n }, [drawData, editState, imagePos.current.x, imagePos.current.y]);\n\n /** Recalculate drawData while changing size */\n useEffect(() => {\n rebuildDrawData();\n }, [clientSize.height, clientSize.width]);\n\n /** Annotations / naturalSize changed */\n useEffect(() => {\n rebuildDrawData(true);\n }, [naturalSize.width, naturalSize.height]);\n\n useEffect(() => {\n if (!labelOptions?.length) return;\n setEditState((s) => {\n if (\n !s.latestLabelId ||\n !labelOptions.find((item) => item.id === s.latestLabelId)\n ) {\n s.latestLabelId = labelOptions[0]?.id;\n }\n });\n }, [labelOptions]);\n\n return {\n rebuildDrawData,\n resetDataWithImageData,\n };\n};\n\nexport default useDataEffect;\n","import { cloneDeep, isEqual } from 'lodash';\nimport { useCallback, useRef, useState } from 'react';\nimport { DraftFunction, Updater, useImmer } from 'use-immer';\n\nimport { BaseObject, DrawData, VideoFramesData } from '../type';\nimport {\n convertFrameObjectsIntoFramesObjects,\n scaleDrawData,\n scaleFramesObjects,\n} from '../utils/compute';\n\nexport interface HistoryItem {\n drawData: DrawData;\n framesData?: VideoFramesData;\n clientSize: ISize;\n}\n\ninterface IProps {\n clientSize: ISize;\n naturalSize: ISize;\n framesData?: VideoFramesData;\n setFramesData?: Updater;\n setDrawData: Updater;\n onAutoSave?: (annotations: BaseObject[], naturalSize: ISize) => void;\n translateObject?: (object: any) => any;\n}\n\nconst useHistory = ({\n clientSize,\n naturalSize,\n onAutoSave,\n setDrawData,\n translateObject,\n framesData,\n setFramesData,\n}: IProps) => {\n const hadChangeRecordRef = useRef(false);\n const [historyQueue, setHistoryQueue] = useImmer([]);\n const [currentIndex, setCurrIndex] = useState(0);\n const maxCacheSize = 20;\n\n const flagSaved = () => {\n hadChangeRecordRef.current = false;\n };\n\n const autoSave = (item: HistoryItem) => {\n if (onAutoSave) {\n const annotations = item.drawData.objectList.map(\n (obj) => translateObject?.(obj) || {},\n );\n onAutoSave(annotations, naturalSize);\n }\n };\n\n const updateCurrentRecord = useCallback(\n (record: HistoryItem) => {\n // video\n setFramesData?.((s) => {\n if (record.framesData) {\n s.activeIndex = record.framesData?.activeIndex;\n s.objects = scaleFramesObjects(\n record.framesData.objects,\n record.clientSize,\n clientSize,\n );\n }\n });\n\n const updateDrawData = scaleDrawData(\n record.drawData,\n record.clientSize,\n clientSize,\n );\n setDrawData(updateDrawData);\n autoSave(record);\n },\n [clientSize.width, clientSize.height],\n );\n\n /**\n * Undo the last action\n */\n const undo = useCallback(() => {\n if (currentIndex > 0) {\n setCurrIndex((prevIndex) => {\n hadChangeRecordRef.current = Boolean(\n historyQueue.length > 1 && prevIndex - 1 !== 0,\n );\n return prevIndex - 1;\n });\n updateCurrentRecord(historyQueue[currentIndex - 1]);\n }\n }, [currentIndex, historyQueue, updateCurrentRecord]);\n\n /**\n * Redo the last undone action\n */\n const redo = useCallback(() => {\n if (currentIndex < historyQueue.length - 1) {\n setCurrIndex((prevIndex) => {\n hadChangeRecordRef.current = Boolean(\n historyQueue.length > 1 && prevIndex + 1 !== 0,\n );\n return prevIndex + 1;\n });\n updateCurrentRecord(historyQueue[currentIndex + 1]);\n }\n }, [currentIndex, historyQueue, updateCurrentRecord]);\n\n /**\n * Update the history queue with the new objects\n */\n const updateHistory = (\n drawData: DrawData,\n theframesData?: VideoFramesData,\n ) => {\n const item = cloneDeep({\n drawData,\n clientSize,\n framesData: theframesData || framesData,\n });\n setHistoryQueue((queue) => {\n if (queue[currentIndex] && isEqual(item, queue[currentIndex])) {\n return queue;\n }\n if (\n currentIndex === 0 &&\n isEqual(item.drawData, queue[currentIndex]?.drawData)\n ) {\n // fix to change image current render\n return queue;\n }\n\n if (\n !theframesData &&\n item.framesData &&\n setFramesData &&\n item.drawData.objectList.length &&\n !isEqual(\n item.drawData.objectList,\n queue[currentIndex]?.drawData?.objectList,\n )\n ) {\n // video && not update framesData && single frame objectList changed\n // sync frame objectlist change to every frame\n item.framesData.objects = convertFrameObjectsIntoFramesObjects(\n item.drawData.objectList,\n item.framesData.objects,\n item.framesData.list.length,\n item.framesData.activeIndex,\n naturalSize,\n );\n setFramesData((s) => {\n s.objects = cloneDeep(item.framesData!.objects);\n });\n }\n queue.splice(currentIndex + 1);\n queue.push(item);\n if (queue.length > maxCacheSize) {\n queue.shift();\n }\n setCurrIndex(queue.length - 1);\n\n hadChangeRecordRef.current = Boolean(\n queue.length > 1 && queue.length - 1 !== 0,\n );\n });\n autoSave(item);\n };\n\n const clearHistory = useCallback(() => {\n setHistoryQueue([]);\n }, []);\n\n const setDrawDataWithHistory: Updater = (\n updater: DrawData | DraftFunction,\n ) => {\n if (typeof updater === 'function') {\n setDrawData((s) => {\n updater(s);\n updateHistory(cloneDeep(s));\n });\n } else {\n setDrawData(updater);\n updateHistory(cloneDeep(updater));\n }\n };\n\n return {\n updateHistory,\n undo,\n redo,\n clearHistory,\n setDrawDataWithHistory,\n flagSaved,\n hadChangeRecord: hadChangeRecordRef.current,\n };\n};\n\nexport default useHistory;\n","import { cloneDeep } from 'lodash';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { Updater } from 'use-immer';\n\nimport {\n EBasicToolItem,\n EBasicToolTypeMap,\n EElementType,\n ELabelType,\n KEYPOINTS_VISIBLE_TYPE,\n LABEL_TOOL_MAP,\n} from '../constants';\nimport {\n Category,\n DrawData,\n EditState,\n EditorMode,\n IAnnotationObject,\n} from '../type';\n\ninterface IProps {\n isOldMode?: boolean;\n mode: EditorMode;\n categories: Category[];\n setCategories?: Updater;\n drawData: DrawData;\n setDrawData: Updater;\n editState: EditState;\n updateObjectWithoutHistory: (\n object: IAnnotationObject,\n index: number,\n ) => void;\n updateAllObjectWithoutHistory: (objectList: IAnnotationObject[]) => void;\n}\n\nexport default function useLabels({\n isOldMode,\n categories,\n setCategories,\n drawData,\n setDrawData,\n editState,\n updateObjectWithoutHistory,\n updateAllObjectWithoutHistory,\n}: IProps) {\n const curObjects = drawData.objectList;\n\n const labelOptions: Category[] = useMemo(() => {\n if (isOldMode) return categories;\n\n if (\n drawData.objectList[drawData.activeObjectIndex] ||\n drawData.selectedTool !== EBasicToolItem.Drag\n ) {\n const toolType = drawData.objectList[drawData.activeObjectIndex]\n ? Object.keys(EBasicToolTypeMap).find(\n (key) =>\n drawData.objectList[drawData.activeObjectIndex].type ===\n EBasicToolTypeMap[key as unknown as EBasicToolItem],\n )\n : drawData.selectedTool;\n const labelType = Object.keys(LABEL_TOOL_MAP).find(\n // @ts-ignore\n (key) => toolType === LABEL_TOOL_MAP[key],\n );\n return categories.filter((category) => category.labelType === labelType);\n }\n\n return [];\n }, [\n categories,\n drawData.objectList,\n drawData.activeObjectIndex,\n drawData.selectedTool,\n ]);\n\n const classificationOptions: Category[] = useMemo(() => {\n return (\n categories?.filter(\n (category) => category.labelType === ELabelType.Classification,\n ) || []\n );\n }, [categories]);\n\n const onCreateCategory = useCallback(\n (name: string) => {\n if (categories.find((item) => item.name === name) || !setCategories)\n return;\n setCategories((categories) => [\n ...categories,\n {\n id: name,\n name,\n },\n ]);\n },\n [categories],\n );\n\n const onChangeObjectHidden = useCallback(\n (index: number, hidden: boolean) => {\n const newObject = { ...drawData.objectList[index] };\n newObject.hidden = hidden;\n updateObjectWithoutHistory(newObject, index);\n },\n [drawData.objectList],\n );\n\n const onChangeCategoryHidden = useCallback(\n (categoryName: string, hidden: boolean) => {\n const updatedObjects = drawData.objectList.map((item) => {\n const temp = { ...item };\n if (\n categories.find((c) => c.id === item.labelId)?.name === categoryName\n ) {\n temp.hidden = hidden;\n }\n return temp;\n });\n updateAllObjectWithoutHistory(updatedObjects);\n },\n [drawData.objectList],\n );\n\n const onChangeElementVisible = (eleType: EElementType, visible: boolean) => {\n const newObject = { ...drawData.objectList[editState.focusObjectIndex] };\n switch (eleType) {\n case EElementType.Rect: {\n if (newObject.rect) {\n newObject.rect.visible = visible;\n updateObjectWithoutHistory(newObject, editState.focusObjectIndex);\n }\n break;\n }\n case EElementType.Polygon: {\n if (newObject.polygon) {\n newObject.polygon.visible = visible;\n updateObjectWithoutHistory(newObject, editState.focusObjectIndex);\n }\n break;\n }\n }\n };\n\n /**\n * Updates the visibility of a keypoint and then updates the object in the draw\n * data object list at the focus object index with the new object.\n *\n * @param {KEYPOINTS_VISIBLE_TYPE} visible - The visibility value for the keypoint.\n */\n const onChangePointVisible = useCallback(\n (pointIndex: number, visible: KEYPOINTS_VISIBLE_TYPE) => {\n const newObject = cloneDeep(\n drawData.objectList[drawData.activeObjectIndex],\n );\n const point = newObject.keypoints?.points?.[pointIndex];\n if (point) {\n point.visible = visible;\n }\n updateObjectWithoutHistory(newObject, drawData.activeObjectIndex);\n },\n [drawData.activeObjectIndex, drawData.objectList],\n );\n\n const onChangeActiveClass = useCallback((name: string) => {\n setDrawData((s) => {\n if (name === s.activeClassName) return;\n s.activeClassName = name;\n });\n }, []);\n\n useEffect(() => {\n if (drawData.activeObjectIndex < 0) return;\n const activeItemLabelName =\n categories.find(\n (item) =>\n item.id === drawData.objectList[drawData.activeObjectIndex].labelId,\n )?.name || '';\n if (activeItemLabelName !== drawData.activeClassName) {\n onChangeActiveClass(activeItemLabelName);\n }\n }, [drawData.activeObjectIndex]);\n\n const latestLabel = useMemo(() => {\n const label = labelOptions.find(\n (item) => item.id === editState.latestLabelId,\n );\n return label?.labelName || label?.name || '';\n }, [labelOptions, editState.latestLabelId]);\n\n return {\n labelOptions,\n latestLabel,\n classificationOptions,\n curObjects,\n onChangeObjectHidden,\n onChangeCategoryHidden,\n onChangeElementVisible,\n onChangePointVisible,\n onChangeActiveClass,\n onCreateCategory,\n };\n}\n","import { useCallback, useEffect } from 'react';\n\nimport { EBasicToolItem } from '../constants';\nimport { DrawData, EditState } from '../type';\nimport { Direction } from '../utils/compute';\n\ninterface IProps {\n topCanvas: HTMLCanvasElement | null;\n editState: EditState;\n drawData: DrawData;\n}\n\nconst useMouseCursor = ({ topCanvas, editState, drawData }: IProps) => {\n const updateMouseCursor = useCallback(\n (value: string, position?: Direction) => {\n if (!topCanvas) return;\n\n let cursor = value;\n if (position) {\n switch (position) {\n case Direction.TOP:\n case Direction.BOTTOM:\n cursor = 'ns-resize';\n break;\n case Direction.TOP_LEFT:\n case Direction.BOTTOM_RIGHT:\n cursor = 'nwse-resize';\n break;\n case Direction.BOTTOM_LEFT:\n case Direction.TOP_RIGHT:\n cursor = 'nesw-resize';\n break;\n default:\n cursor = 'ew-resize';\n }\n }\n if (cursor !== topCanvas.style.cursor) {\n topCanvas.style.cursor = cursor;\n }\n },\n [topCanvas],\n );\n\n useEffect(() => {\n if (editState.allowMove) {\n updateMouseCursor('grabbing');\n } else {\n if (drawData.selectedTool === EBasicToolItem.Drag) {\n updateMouseCursor('grab');\n } else {\n updateMouseCursor('crosshair');\n }\n }\n }, [editState.allowMove]);\n\n return {\n updateMouseCursor,\n };\n};\n\nexport default useMouseCursor;\n","import { useCallback, useEffect, useRef } from 'react';\nimport useLatest from '../useLatest';\nimport { isNumber } from '../utils';\nvar setRafInterval = function (callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (typeof requestAnimationFrame === typeof undefined) {\n return {\n id: setInterval(callback, delay)\n };\n }\n var start = new Date().getTime();\n var handle = {\n id: 0\n };\n var loop = function () {\n var current = new Date().getTime();\n if (current - start >= delay) {\n callback();\n start = new Date().getTime();\n }\n handle.id = requestAnimationFrame(loop);\n };\n handle.id = requestAnimationFrame(loop);\n return handle;\n};\nfunction cancelAnimationFrameIsNotDefined(t) {\n return typeof cancelAnimationFrame === typeof undefined;\n}\nvar clearRafInterval = function (handle) {\n if (cancelAnimationFrameIsNotDefined(handle.id)) {\n return clearInterval(handle.id);\n }\n cancelAnimationFrame(handle.id);\n};\nfunction useRafInterval(fn, delay, options) {\n var immediate = options === null || options === void 0 ? void 0 : options.immediate;\n var fnRef = useLatest(fn);\n var timerRef = useRef();\n useEffect(function () {\n if (!isNumber(delay) || delay < 0) return;\n if (immediate) {\n fnRef.current();\n }\n timerRef.current = setRafInterval(function () {\n fnRef.current();\n }, delay);\n return function () {\n if (timerRef.current) {\n clearRafInterval(timerRef.current);\n }\n };\n }, [delay]);\n var clear = useCallback(function () {\n if (timerRef.current) {\n clearRafInterval(timerRef.current);\n }\n }, []);\n return clear;\n}\nexport default useRafInterval;","import { useEventListener, useRafInterval } from 'ahooks';\nimport { CursorState } from 'ahooks/lib/useMouse';\nimport { fixedFloatNum } from 'dds-utils/digit';\nimport { useCallback, useRef, useState } from 'react';\nimport { Updater } from 'use-immer';\n\nimport {\n EBasicToolItem,\n EBasicToolTypeMap,\n EElementType,\n EnumModelType,\n EObjectType,\n} from '../constants';\nimport { ToolInstanceHookReturn } from '../tools/base';\nimport {\n Category,\n DrawData,\n EditState,\n EditorMode,\n EObjectStatus,\n IAnnotationObject,\n} from '../type';\nimport {\n Direction,\n isInCanvas,\n judgeFocusOnElement,\n judgeFocusOnObject,\n judgeFocusOnPointAllObject,\n} from '../utils/compute';\n\ninterface IProps {\n visible: boolean;\n mode: EditorMode;\n drawData: DrawData;\n setDrawData: Updater;\n editState: EditState;\n setEditState: Updater;\n clientSize: ISize;\n contentMouse: CursorState;\n categories: Category[];\n updateRender: (updateDrawData?: DrawData) => void;\n updateMouseCursor: (value: string, position?: Direction) => void;\n objectHooksMap: Record;\n imagePos: React.MutableRefObject;\n containerMouse: CursorState;\n getAnnotColor: (category: string) => string;\n limitActiveObject?: boolean;\n}\n\nconst BOUNDING_OFFSET = 40;\nconst MOUSE_OFFSET = 10;\n\nconst useMouseEvents = ({\n visible,\n mode,\n drawData,\n setDrawData,\n editState,\n setEditState,\n clientSize,\n contentMouse,\n categories,\n updateRender,\n updateMouseCursor,\n objectHooksMap,\n imagePos,\n containerMouse,\n limitActiveObject,\n getAnnotColor,\n}: IProps) => {\n const moveVisibleAreaRef = useRef<{\n direction?: Direction;\n topMin: number;\n topMax: number;\n leftMin: number;\n leftMax: number;\n }>({\n topMin: 0,\n topMax: 0,\n leftMin: 0,\n leftMax: 0,\n });\n\n const [moveVisibleAreaInterval, setMoveVisibleAreaInterval] = useState<\n number | undefined\n >(undefined);\n\n useRafInterval(() => {\n let changed = false;\n if (\n moveVisibleAreaRef.current.direction?.includes('TOP') &&\n imagePos.current.y < moveVisibleAreaRef.current.topMax\n ) {\n imagePos.current.y += 8;\n changed = true;\n } else if (\n moveVisibleAreaRef.current.direction?.includes('BOTTOM') &&\n imagePos.current.y > moveVisibleAreaRef.current.topMin\n ) {\n imagePos.current.y -= 8;\n changed = true;\n }\n if (\n moveVisibleAreaRef.current.direction?.includes('LEFT') &&\n imagePos.current.x < moveVisibleAreaRef.current.leftMax\n ) {\n imagePos.current.x += 8;\n changed = true;\n } else if (\n moveVisibleAreaRef.current.direction?.includes('RIGHT') &&\n imagePos.current.x > moveVisibleAreaRef.current.leftMin\n ) {\n imagePos.current.x -= 8;\n changed = true;\n }\n if (!changed) {\n setMoveVisibleAreaInterval(undefined);\n }\n updateRender();\n }, moveVisibleAreaInterval);\n\n const checkContainerVisibleArea = () => {\n let direction = '';\n const topMax = BOUNDING_OFFSET;\n const topMin =\n containerMouse.elementH - contentMouse.elementH - BOUNDING_OFFSET;\n const leftMax = BOUNDING_OFFSET;\n const leftMin =\n containerMouse.elementW - contentMouse.elementW - BOUNDING_OFFSET;\n if (\n containerMouse.elementY <= MOUSE_OFFSET &&\n imagePos.current.y < topMax\n ) {\n direction = 'TOP';\n } else if (\n containerMouse.elementY >= containerMouse.elementH - MOUSE_OFFSET &&\n imagePos.current.y > topMin\n ) {\n direction = 'BOTTOM';\n }\n if (\n containerMouse.elementX <= MOUSE_OFFSET &&\n imagePos.current.x < leftMax\n ) {\n direction += direction ? '_LEFT' : 'LEFT';\n } else if (\n containerMouse.elementX >= containerMouse.elementW - MOUSE_OFFSET &&\n imagePos.current.x > leftMin\n ) {\n direction += direction ? '_RIGHT' : 'RIGHT';\n }\n\n if (direction) {\n moveVisibleAreaRef.current = {\n direction: direction as Direction,\n topMax,\n topMin,\n leftMax,\n leftMin,\n };\n setMoveVisibleAreaInterval(16);\n } else {\n setMoveVisibleAreaInterval(undefined);\n }\n };\n\n const getFocusFilter = () => {\n let focusFilter;\n if (drawData.isBatchEditing) {\n if (\n drawData.selectedTool === EBasicToolItem.Rectangle &&\n editState.isCtrlPressed\n ) {\n focusFilter = (obj: IAnnotationObject) =>\n obj.status === EObjectStatus.Unchecked;\n } else {\n focusFilter = (obj: IAnnotationObject) =>\n obj.status !== EObjectStatus.Unchecked;\n }\n }\n return focusFilter;\n };\n\n const updateFocusInfoWhenMouseMove = () => {\n if (!isInCanvas(containerMouse)) return;\n\n const focusObjectIndex = judgeFocusOnObject(\n clientSize,\n contentMouse,\n drawData.activeObjectIndex,\n drawData.objectList,\n getFocusFilter(),\n );\n /** If focus in active object */\n if (\n focusObjectIndex > -1 &&\n focusObjectIndex === drawData.activeObjectIndex\n ) {\n setEditState((s) => {\n s.focusObjectIndex = focusObjectIndex;\n });\n /** Update focus element index & mouse style */\n const activeObject = drawData.objectList[drawData.activeObjectIndex];\n const { focusEleIndex, focusEleType, focusPolygonInfo } =\n judgeFocusOnElement(contentMouse, activeObject);\n setEditState((s) => {\n s.focusEleIndex = focusEleIndex;\n s.focusEleType = focusEleType;\n s.focusPolygonInfo = focusPolygonInfo;\n });\n } else if (\n drawData.selectedTool === EBasicToolItem.Drag ||\n drawData.isBatchEditing\n ) {\n setEditState((s) => {\n s.focusObjectIndex = focusObjectIndex;\n s.focusEleIndex = -1;\n s.focusEleType = EElementType.None;\n s.focusPolygonInfo = {\n index: -1,\n pointIndex: -1,\n lineIndex: -1,\n };\n });\n } else {\n setEditState((s) => {\n s.focusObjectIndex = -1;\n s.focusEleIndex = -1;\n s.focusEleType = EElementType.None;\n s.focusPolygonInfo = {\n index: -1,\n pointIndex: -1,\n lineIndex: -1,\n };\n });\n }\n };\n\n const selectFocusObject = useCallback(\n (index: number, event?: MouseEvent) => {\n if (index < 0) return;\n const isMouseRightClick = event?.button === 2;\n if (isMouseRightClick) {\n // check all focus object on point\n const focusIndexs = judgeFocusOnPointAllObject(\n clientSize,\n contentMouse,\n drawData.objectList,\n getFocusFilter(),\n );\n if (focusIndexs.length > 0) {\n setEditState((s) => {\n s.foucsObjectAllIndexs = focusIndexs;\n });\n } else {\n setEditState((s) => {\n s.foucsObjectAllIndexs = [];\n });\n }\n return;\n }\n\n setDrawData((s) => {\n if (\n s.selectedTool === EBasicToolItem.Rectangle &&\n s.isBatchEditing &&\n editState.isCtrlPressed\n ) {\n s.objectList[index].status = EObjectStatus.Checked;\n setEditState((s) => {\n s.focusObjectIndex = -1;\n });\n } else {\n s.AIAnnotation = false;\n s.activeObjectIndex = index;\n if (!s.objectList[index]?.frameEmpty) {\n s.creatingObject = {\n ...s.objectList[index],\n currIndex: undefined,\n startPoint: undefined,\n tempMaskSteps: [],\n maskStep: undefined,\n };\n } else {\n s.creatingObject = undefined;\n }\n\n if (\n s.selectedTool !== EBasicToolItem.Drag &&\n s.objectList[index] &&\n EBasicToolTypeMap[s.selectedTool] !== s.objectList[index].type\n ) {\n s.selectedTool = EBasicToolItem.Drag;\n }\n }\n if (s.editingAttribute?.index !== index) {\n s.editingAttribute = undefined;\n }\n });\n },\n [clientSize.width, clientSize.height, contentMouse, drawData.objectList],\n );\n\n const mouseRightObjectsDropDownRender = () => {\n if (!editState.foucsObjectAllIndexs.length) {\n return <>;\n }\n const stopPropagation: React.MouseEventHandler = (\n event,\n ) => {\n event.stopPropagation();\n };\n const onFocusItem = (index: number) => {\n setEditState((s) => {\n s.focusObjectIndex = index;\n });\n };\n const onSelectItem = (index: number) => {\n selectFocusObject(index);\n setEditState((s) => {\n s.foucsObjectAllIndexs = [];\n });\n };\n return (\n event.preventDefault()}\n >\n {editState.foucsObjectAllIndexs.map((index) => (\n onFocusItem(index)}\n onMouseDown={() => onSelectItem(index)}\n >\n \n {categories.find(\n (c) => c.id === drawData.objectList[index]?.labelId,\n )?.name || ''}\n {drawData.isBatchEditing &&\n ` (${fixedFloatNum(drawData.objectList[index]?.conf || 0)})`}\n \n ))}\n \n );\n };\n\n const onMouseDown = (event: MouseEvent) => {\n if (\n !visible ||\n editState.allowMove ||\n editState.isRequiring ||\n !isInCanvas(contentMouse) ||\n !isInCanvas(containerMouse)\n )\n return;\n\n setEditState((s) => {\n s.foucsObjectAllIndexs = [];\n });\n\n // 1. Edit object\n if (drawData.creatingObject && drawData.activeObjectIndex > -1) {\n if (\n mode === EditorMode.Edit &&\n objectHooksMap[drawData.creatingObject.type].startEditingWhenMouseDown({\n event,\n object: drawData.creatingObject,\n })\n ) {\n return;\n }\n }\n\n // 2. Create object\n if (\n drawData.selectedTool !== EBasicToolItem.Drag &&\n (!drawData.isBatchEditing ||\n drawData.selectedModel[drawData.selectedTool] === EnumModelType.IVP)\n ) {\n setDrawData((s) => {\n s.editingAttribute = undefined;\n });\n const objectType = EBasicToolTypeMap[drawData.selectedTool];\n if (\n mode === EditorMode.Edit &&\n objectHooksMap[objectType].startCreatingWhenMouseDown({\n event,\n object: drawData.creatingObject,\n point: {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n },\n basic: {\n hidden: false,\n labelId: editState.latestLabelId || categories[0].id,\n status: EObjectStatus.Commited,\n color: getAnnotColor(editState.latestLabelId || categories[0].name),\n },\n })\n ) {\n return;\n }\n } else {\n if (editState.focusObjectIndex > -1 && !limitActiveObject) {\n // 3. Active object\n selectFocusObject(editState.focusObjectIndex, event);\n } else {\n // 4. Drag image\n setEditState((s) => {\n s.allowMove = true;\n });\n setDrawData((s) => {\n s.activeObjectIndex = -1;\n s.editingAttribute = undefined;\n s.creatingObject = undefined;\n });\n }\n }\n };\n\n const onMouseMove = (event: MouseEvent) => {\n if (!visible || editState.isRequiring || editState.allowMove) return;\n\n // update default cursor\n if (editState.focusObjectIndex > -1) {\n updateMouseCursor('pointer');\n } else if (drawData.selectedTool !== EBasicToolItem.Drag) {\n updateMouseCursor('crosshair');\n } else {\n updateMouseCursor('grab');\n }\n\n if (drawData.creatingObject && drawData.activeObjectIndex > -1) {\n // 1. Edit object\n if (\n mode === EditorMode.Edit &&\n objectHooksMap[drawData.creatingObject.type].updateEditingWhenMouseMove(\n {\n event,\n object: drawData.creatingObject,\n },\n )\n ) {\n const noUnfinishedMaskStep =\n drawData.creatingObject.type === EObjectType.Mask &&\n !drawData.creatingObject?.maskStep;\n if (!noUnfinishedMaskStep) {\n checkContainerVisibleArea();\n }\n updateRender();\n return;\n }\n } else if (\n drawData.selectedTool !== EBasicToolItem.Drag &&\n drawData.activeObjectIndex < 0\n ) {\n /** 2. Create Object */\n const objectType = EBasicToolTypeMap[drawData.selectedTool];\n if (\n mode === EditorMode.Edit &&\n objectHooksMap[objectType].updateCreatingWhenMouseMove({\n event,\n object: drawData.creatingObject,\n })\n ) {\n const noUnfinishedMaskStep =\n objectType === EObjectType.Mask && !drawData.creatingObject?.maskStep;\n if (!noUnfinishedMaskStep) {\n checkContainerVisibleArea();\n }\n updateRender();\n return;\n }\n }\n\n /** 3. Updata focus info */\n updateFocusInfoWhenMouseMove();\n updateRender();\n };\n\n const onMouseUp = (event: MouseEvent) => {\n setMoveVisibleAreaInterval(undefined);\n\n if (!visible || editState.isRequiring) return;\n\n if (editState.allowMove) {\n setEditState((s) => {\n s.allowMove = false;\n });\n return;\n }\n\n if (drawData.creatingObject && drawData.activeObjectIndex > -1) {\n // 1. Edit object\n if (\n mode === EditorMode.Edit &&\n objectHooksMap[drawData.creatingObject.type].finishEditingWhenMouseUp({\n event,\n object: drawData.creatingObject,\n })\n ) {\n return;\n }\n } else if (\n drawData.selectedTool !== EBasicToolItem.Drag &&\n drawData.activeObjectIndex < 0\n ) {\n /** 2. Create Object */\n const objectType = EBasicToolTypeMap[drawData.selectedTool];\n if (\n mode === EditorMode.Edit &&\n objectHooksMap[objectType].finishCreatingWhenMouseUp({\n event,\n object: drawData.creatingObject,\n })\n ) {\n return;\n }\n }\n };\n\n const forceChangeFocusObject = useCallback((index: number) => {\n setEditState((s) => {\n s.focusObjectIndex = index;\n });\n }, []);\n\n useEventListener('mousedown', (event) => {\n onMouseDown(event);\n });\n\n useEventListener('mousemove', (event) => {\n onMouseMove(event);\n });\n\n useEventListener('mouseup', (event) => {\n onMouseUp(event);\n });\n\n return {\n selectFocusObject,\n forceChangeFocusObject,\n mouseRightObjectsDropDownRender,\n };\n};\n\nexport default useMouseEvents;\n","import { cloneDeep } from 'lodash';\nimport { useCallback, useMemo } from 'react';\nimport { Updater } from 'use-immer';\n\nimport { EElementType, EObjectType } from '../constants';\nimport {\n DrawData,\n EditState,\n EditorMode,\n IAnnotationObject,\n DrawObject,\n IEditingAttribute,\n EObjectStatus,\n VideoFramesData,\n Category,\n} from '../type';\n\ninterface IProps {\n mode: EditorMode;\n categories: Category[];\n drawData: DrawData;\n setDrawData: Updater;\n setDrawDataWithHistory: Updater;\n framesData?: VideoFramesData;\n setFramesData?: Updater;\n setEditState: Updater;\n translateToObject?: (annotation: any, videoFrameCount?: number) => any;\n judgeEditingAttribute?: (\n object: IAnnotationObject,\n index: number,\n ) => IEditingAttribute | undefined;\n updateHistory: (drawData: DrawData, theframesData?: VideoFramesData) => void;\n}\n\nconst useObjects = ({\n mode,\n categories,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n framesData,\n setFramesData,\n setEditState,\n translateToObject,\n judgeEditingAttribute,\n updateHistory,\n}: IProps) => {\n const initObjectList = (annotations: DrawObject[]) => {\n setDrawData((s) => {\n const newDrawData = cloneDeep(s);\n const newFramesData = cloneDeep(framesData);\n newDrawData.initialized = true;\n if (newFramesData) {\n // video\n const objects = annotations.map(\n (annotation) =>\n translateToObject?.(annotation, newFramesData.list.length) || {},\n );\n newFramesData.objects = objects\n .filter((item) => !!item.objects)\n .map((item) => item.objects);\n newDrawData.classifications = objects\n .filter((item) => !!item.classification)\n .map((item) => item.classification);\n newDrawData.objectList = newFramesData.objects.map(\n (item) => item[newFramesData.activeIndex],\n );\n setFramesData?.(newFramesData);\n } else {\n // image\n const objects = annotations.map(\n (annotation) => translateToObject?.(annotation) || {},\n );\n newDrawData.classifications = objects.filter(\n (item) => item.type === EObjectType.Classification,\n );\n newDrawData.objectList = objects.filter(\n (item) =>\n item.type !== EObjectType.Custom &&\n item.type !== EObjectType.Classification,\n );\n }\n updateHistory(cloneDeep(newDrawData), cloneDeep(newFramesData));\n return newDrawData;\n });\n };\n\n const addObject = (object: IAnnotationObject) => {\n if (mode !== EditorMode.Edit) return;\n setDrawDataWithHistory((s) => {\n s.objectList.push(object);\n s.isJustCreated = true;\n s.creatingObject = undefined;\n s.activeObjectIndex = -1;\n s.activeClassName =\n categories.find((item) => item.id === object.labelId)?.name || '';\n\n // Show attribut editor\n if (judgeEditingAttribute) {\n s.editingAttribute = judgeEditingAttribute(\n object,\n s.objectList.length - 1,\n );\n }\n });\n };\n\n const removeObject = (index: number) => {\n if (mode !== EditorMode.Edit || !drawData.objectList[index]) return;\n setEditState((s) => {\n s.focusObjectIndex = -1;\n s.focusEleIndex = -1;\n s.focusEleType = EElementType.Rect;\n });\n\n const newFramesData = cloneDeep(framesData);\n const newDrawData = cloneDeep(drawData);\n if (newFramesData && newFramesData.objects[index]) {\n newFramesData.objects.splice(index, 1);\n setFramesData?.(newFramesData);\n }\n if (newDrawData.objectList[index]) {\n newDrawData.objectList.splice(index, 1);\n newDrawData.activeObjectIndex = -1;\n newDrawData.creatingObject = undefined;\n newDrawData.editingAttribute = undefined;\n }\n setDrawData(newDrawData);\n updateHistory(cloneDeep(newDrawData), cloneDeep(newFramesData));\n };\n\n const removeAllObjects = useCallback(() => {\n if (mode !== EditorMode.Edit) return;\n setEditState((s) => {\n s.focusObjectIndex = -1;\n s.focusEleIndex = -1;\n s.focusEleType = EElementType.Rect;\n });\n\n const newFramesData = cloneDeep(framesData);\n const newDrawData = cloneDeep(drawData);\n if (newFramesData) {\n newFramesData.objects = [];\n setFramesData?.(newFramesData);\n }\n newDrawData.objectList = [];\n newDrawData.activeObjectIndex = -1;\n newDrawData.creatingObject = undefined;\n newDrawData.editingAttribute = undefined;\n setDrawData(newDrawData);\n updateHistory(cloneDeep(newDrawData), cloneDeep(newFramesData));\n }, [mode, framesData, drawData]);\n\n const updateObject = (object: IAnnotationObject, index: number) => {\n if (mode !== EditorMode.Edit || !drawData.objectList[index]) return;\n setDrawDataWithHistory((s) => {\n // Change label & Show attribut editor\n if (\n object.labelId !== s.objectList[index].labelId &&\n judgeEditingAttribute\n ) {\n s.editingAttribute = judgeEditingAttribute(object, index);\n }\n\n s.objectList[index] = object;\n if (s.creatingObject && s.activeObjectIndex === index) {\n s.creatingObject = { ...object };\n }\n });\n };\n\n const updateAllObject = (objectList: IAnnotationObject[]) => {\n setDrawDataWithHistory((s) => {\n s.objectList = objectList;\n if (s.creatingObject && s.objectList[s.activeObjectIndex]) {\n s.creatingObject = { ...s.objectList[s.activeObjectIndex] };\n }\n s.isJustCreated = false;\n });\n };\n\n const updateObjectWithoutHistory = (\n object: IAnnotationObject,\n index: number,\n ) => {\n if (!drawData.objectList[index]) return;\n setDrawData((s) => {\n s.objectList[index] = object;\n if (s.creatingObject && s.activeObjectIndex === index) {\n s.creatingObject = { ...object };\n }\n });\n };\n\n const updateAllObjectWithoutHistory = (objectList: IAnnotationObject[]) => {\n setDrawData((s) => {\n s.objectList = objectList;\n if (s.creatingObject && s.objectList[s.activeObjectIndex]) {\n s.creatingObject = { ...s.objectList[s.activeObjectIndex] };\n }\n });\n };\n\n const commitedObjects = useMemo(() => {\n return drawData.objectList.filter((obj) => {\n return obj?.status === EObjectStatus.Commited;\n });\n }, [drawData.isBatchEditing, drawData.objectList]);\n\n const currObject = useMemo(() => {\n return (\n drawData.objectList[drawData.activeObjectIndex] || drawData.creatingObject\n );\n }, [\n drawData.objectList,\n drawData.activeObjectIndex,\n drawData.creatingObject,\n ]);\n\n return {\n initObjectList,\n addObject,\n removeObject,\n removeAllObjects,\n updateObject,\n updateAllObject,\n updateObjectWithoutHistory,\n updateAllObjectWithoutHistory,\n commitedObjects,\n currObject,\n };\n};\n\nexport default useObjects;\n","import { useKeyPress } from 'ahooks';\nimport { Updater } from 'use-immer';\n\nimport { EObjectType } from '../constants';\nimport { EDITOR_SHORTCUTS, EShortcuts } from '../constants/shortcuts';\nimport {\n Category,\n DrawData,\n EditState,\n EditorMode,\n IAnnotationObject,\n} from '../type';\n\ninterface IProps {\n visible: boolean;\n mode: EditorMode;\n drawData: DrawData;\n categories: Category[];\n isMousePress: boolean;\n setDrawData: Updater;\n setEditState: Updater;\n onSaveAnnotations?: () => void;\n onAcceptAnnotations?: () => void;\n onRejectAnnotations?: () => void;\n onChangeObjectHidden: (index: number, hidden: boolean) => void;\n onChangeCategoryHidden: (category: string, hidden: boolean) => void;\n removeObject: (index: number) => void;\n addObject: (object: IAnnotationObject, notActive?: boolean) => void;\n}\n\nconst useShortcuts = ({\n visible,\n mode,\n drawData,\n categories,\n isMousePress,\n setDrawData,\n setEditState,\n onSaveAnnotations,\n onAcceptAnnotations,\n onRejectAnnotations,\n onChangeObjectHidden,\n onChangeCategoryHidden,\n removeObject,\n addObject,\n}: IProps) => {\n /** Save Results */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.Save].shortcut,\n (event: KeyboardEvent) => {\n event.preventDefault();\n if (mode === EditorMode.Edit) {\n onSaveAnnotations?.();\n }\n },\n {\n exactMatch: true,\n },\n );\n\n /** Accept Results */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.Accept].shortcut,\n (event: KeyboardEvent) => {\n event.preventDefault();\n onAcceptAnnotations?.();\n },\n {\n exactMatch: true,\n },\n );\n\n /** Reject Results */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.Reject].shortcut,\n (event: KeyboardEvent) => {\n event.preventDefault();\n onRejectAnnotations?.();\n },\n {\n exactMatch: true,\n },\n );\n\n /** Pan Image */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.PanImage].shortcut,\n (event: KeyboardEvent) => {\n if (!visible) return;\n // event.preventDefault();\n if (event.type === 'keydown' && !isMousePress) {\n setEditState((s) => {\n s.allowMove = true;\n });\n } else if (event.type === 'keyup') {\n setEditState((s) => {\n s.allowMove = false;\n });\n }\n },\n {\n events: ['keydown', 'keyup'],\n },\n );\n\n /** Cancel Current Selected Object or Creaing Object */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.CancelCurrObject].shortcut,\n (event: KeyboardEvent) => {\n if (!visible) return;\n if (event.type === 'keyup') {\n if (drawData.creatingObject) {\n setDrawData((s) => {\n if (\n s.creatingObject?.type === EObjectType.Mask &&\n s.creatingObject?.maskStep?.points?.length &&\n s.creatingObject?.tempMaskSteps?.length\n ) {\n // Creating single Mask\n s.creatingObject.maskStep = undefined;\n } else {\n s.creatingObject = undefined;\n s.activeObjectIndex = -1;\n }\n if (s.AIAnnotation) {\n s.prompt = {};\n }\n });\n } else {\n setDrawData((s) => {\n s.activeObjectIndex = -1;\n });\n }\n }\n },\n { events: ['keydown', 'keyup'] },\n );\n\n /** Hide Current Selected Object */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.HideCurrObject].shortcut,\n (event) => {\n if (drawData.activeObjectIndex < 0) return;\n event.preventDefault();\n onChangeObjectHidden(\n drawData.activeObjectIndex,\n !drawData.objectList[drawData.activeObjectIndex].hidden,\n );\n },\n {\n exactMatch: true,\n },\n );\n\n /** Hide the Category of Current Object */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.HideCurrCategory].shortcut,\n (event) => {\n if (drawData.activeObjectIndex < 0) return;\n event.preventDefault();\n const { labelId, hidden } =\n drawData.objectList[drawData.activeObjectIndex];\n const labelName = categories.find((c) => c.id === labelId)?.name || '';\n onChangeCategoryHidden(labelName, !hidden);\n },\n {\n exactMatch: true,\n },\n );\n\n /** Delete Current Selected Object */\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.DeleteCurrObject].shortcut,\n (event) => {\n if (!visible || mode !== EditorMode.Edit) return;\n if (['Delete', 'Backspace'].includes(event.key)) {\n if (drawData.activeObjectIndex > -1) {\n removeObject(drawData.activeObjectIndex);\n }\n }\n },\n { events: ['keyup'] },\n );\n\n /** Change isCtrlPressed state */\n useKeyPress(\n ['ctrl'],\n (event: KeyboardEvent) => {\n if (drawData.activeObjectIndex > -1) return;\n setEditState((s) => {\n const targetPressed = event.type === 'keydown';\n if (s.isCtrlPressed === targetPressed) return s;\n s.isCtrlPressed = Boolean(event.type === 'keydown');\n s.focusObjectIndex = -1;\n s.foucsObjectAllIndexs = [];\n });\n },\n { events: ['keydown', 'keyup'] },\n );\n\n /** Hide currently creating / editing mask */\n useKeyPress(\n ['v'],\n (event: KeyboardEvent) => {\n setEditState((s) => {\n const targetPressed = event.type === 'keydown';\n if (s.hideCreatingObject === targetPressed) return s;\n s.hideCreatingObject = Boolean(event.type === 'keydown');\n });\n },\n { events: ['keydown', 'keyup'] },\n );\n\n /** Close manually creating polygon */\n useKeyPress(\n ['enter'],\n () => {\n if (\n !drawData.AIAnnotation &&\n drawData.creatingObject &&\n drawData.creatingObject.type === EObjectType.Polygon\n ) {\n const { polygon, type, hidden, labelId, status, color } =\n drawData.creatingObject!;\n if (polygon && polygon.group && polygon.group[0].length > 2) {\n const newObject: IAnnotationObject = {\n polygon,\n type,\n hidden,\n labelId,\n status,\n color,\n };\n addObject(newObject);\n }\n }\n },\n {\n exactMatch: true,\n events: ['keyup'],\n },\n );\n\n return {};\n};\n\nexport default useShortcuts;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgAddPrompt = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 19 19\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M18.33 4.069a.67.67 0 0 0 .67-.672V.671A.672.672 0 0 0 18.33 0h-2.718a.67.67 0 0 0-.671.671v.672H4.066V.67A.672.672 0 0 0 3.395 0H.67A.67.67 0 0 0 0 .671v2.72a.672.672 0 0 0 .67.67h.672v10.877H.67A.67.67 0 0 0 0 15.61v2.72A.672.672 0 0 0 .67 19h2.718a.67.67 0 0 0 .671-.671v-.672h10.869v.672a.672.672 0 0 0 .67.671h2.718a.67.67 0 0 0 .67-.671v-2.706a.672.672 0 0 0-.67-.671h-.671V4.069h.684Zm-2.014 10.876h-.67a.67.67 0 0 0-.671.671v.672H4.065v-.672a.672.672 0 0 0-.67-.671h-.671V4.069h.67a.67.67 0 0 0 .672-.672v-.671h10.868v.671a.672.672 0 0 0 .671.672h.671l.02 5.438.02 5.438Z\", fill: \"#fff\" }), /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#add-prompt_svg__a)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.51 5.884a.851.851 0 0 0-1.204 0l-5.418 5.423-2.409-2.41a.851.851 0 1 0-1.204 1.205l3.01 3.012a.849.849 0 0 0 1.205 0l6.02-6.025a.852.852 0 0 0 0-1.205Z\", fill: \"#fff\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"add-prompt_svg__a\" }, /* @__PURE__ */ React.createElement(\"path\", { fill: \"#fff\", transform: \"translate(4.025 4.129)\", d: \"M0 0h10.735v10.742H0z\" }))));\nexport { SvgAddPrompt as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTkgMTkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE4LjMzIDQuMDY5YS42Ny42NyAwIDAgMCAuNjctLjY3MlYuNjcxQS42NzIuNjcyIDAgMCAwIDE4LjMzIDBoLTIuNzE4YS42Ny42NyAwIDAgMC0uNjcxLjY3MXYuNjcySDQuMDY2Vi42N0EuNjcyLjY3MiAwIDAgMCAzLjM5NSAwSC42N0EuNjcuNjcgMCAwIDAgMCAuNjcxdjIuNzJhLjY3Mi42NzIgMCAwIDAgLjY3LjY3aC42NzJ2MTAuODc3SC42N0EuNjcuNjcgMCAwIDAgMCAxNS42MXYyLjcyQS42NzIuNjcyIDAgMCAwIC42NyAxOWgyLjcxOGEuNjcuNjcgMCAwIDAgLjY3MS0uNjcxdi0uNjcyaDEwLjg2OXYuNjcyYS42NzIuNjcyIDAgMCAwIC42Ny42NzFoMi43MThhLjY3LjY3IDAgMCAwIC42Ny0uNjcxdi0yLjcwNmEuNjcyLjY3MiAwIDAgMC0uNjctLjY3MWgtLjY3MVY0LjA2OWguNjg0Wm0tMi4wMTQgMTAuODc2aC0uNjdhLjY3LjY3IDAgMCAwLS42NzEuNjcxdi42NzJINC4wNjV2LS42NzJhLjY3Mi42NzIgMCAwIDAtLjY3LS42NzFoLS42NzFWNC4wNjloLjY3YS42Ny42NyAwIDAgMCAuNjcyLS42NzJ2LS42NzFoMTAuODY4di42NzFhLjY3Mi42NzIgMCAwIDAgLjY3MS42NzJoLjY3MWwuMDIgNS40MzguMDIgNS40MzhaIiBmaWxsPSIjZmZmIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTQuNTEgNS44ODRhLjg1MS44NTEgMCAwIDAtMS4yMDQgMGwtNS40MTggNS40MjMtMi40MDktMi40MWEuODUxLjg1MSAwIDEgMC0xLjIwNCAxLjIwNWwzLjAxIDMuMDEyYS44NDkuODQ5IDAgMCAwIDEuMjA1IDBsNi4wMi02LjAyNWEuODUyLjg1MiAwIDAgMCAwLTEuMjA1WiIgZmlsbD0iI2ZmZiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuMDI1IDQuMTI5KSIgZD0iTTAgMGgxMC43MzV2MTAuNzQySDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgBrushAdd = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ width: 16, height: 16, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#brush-add_svg__a)\", fill: \"#fff\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.07 10.37 4.02 9.22l-.46-.46a1.42 1.42 0 0 1 0-1.89l.41-.41 3.84-3.73L10.34.22a.71.71 0 0 1 1.07 0c.34.31.67.63 1 .93a.66.66 0 0 1 .22.69c-.1.43-.19.87-.28 1.34l.69-.13c.25 0 .5-.1.75-.12a.82.82 0 0 1 .69.26l4.47 4.37.45.44a.87.87 0 0 1 0 1.3l-2 2-.08.08-1.34-.79 1.89-1.95-.33-.33-3.78-3.71a.3.3 0 0 0-.32-.09l-1.89.37A.74.74 0 0 1 10.7 4c.06-.33.12-.65.19-1s.1-.58.18-.85a.31.31 0 0 0-.17-.4L6.7 5.94l5 4.85c-.3.21-.61.4-.88.62a4.76 4.76 0 0 0-1.75 3 .88.88 0 0 1-.25.44l-2.94 3.37a3.42 3.42 0 0 1-5 .22 3 3 0 0 1-.83-2 3.39 3.39 0 0 1 1.33-2.88l3.32-2.89.37-.3Z\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M17.88 13.99a4.06 4.06 0 0 0-4.46-2.68 4 4 0 0 0 .61 7.9c.22 0 .44 0 .65-.06a4 4 0 0 0 3.2-5.16Zm-2.31 2.13h-.62v.58a.94.94 0 0 1-1.87 0v-.58h-.58a.94.94 0 0 1 0-1.87h.58v-.56a.94.94 0 1 1 1.87 0v.53h.62a.94.94 0 0 1 0 1.87v.03Z\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"brush-add_svg__a\" }, /* @__PURE__ */ React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h19.7v19.44H0z\" }))));\nexport { SvgBrushAdd as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik01LjA3IDEwLjM3IDQuMDIgOS4yMmwtLjQ2LS40NmExLjQyIDEuNDIgMCAwIDEgMC0xLjg5bC40MS0uNDEgMy44NC0zLjczTDEwLjM0LjIyYS43MS43MSAwIDAgMSAxLjA3IDBjLjM0LjMxLjY3LjYzIDEgLjkzYS42Ni42NiAwIDAgMSAuMjIuNjljLS4xLjQzLS4xOS44Ny0uMjggMS4zNGwuNjktLjEzYy4yNSAwIC41LS4xLjc1LS4xMmEuODIuODIgMCAwIDEgLjY5LjI2bDQuNDcgNC4zNy40NS40NGEuODcuODcgMCAwIDEgMCAxLjNsLTIgMi0uMDguMDgtMS4zNC0uNzkgMS44OS0xLjk1LS4zMy0uMzMtMy43OC0zLjcxYS4zLjMgMCAwIDAtLjMyLS4wOWwtMS44OS4zN0EuNzQuNzQgMCAwIDEgMTAuNyA0Yy4wNi0uMzMuMTItLjY1LjE5LTFzLjEtLjU4LjE4LS44NWEuMzEuMzEgMCAwIDAtLjE3LS40TDYuNyA1Ljk0bDUgNC44NWMtLjMuMjEtLjYxLjQtLjg4LjYyYTQuNzYgNC43NiAwIDAgMC0xLjc1IDMgLjg4Ljg4IDAgMCAxLS4yNS40NGwtMi45NCAzLjM3YTMuNDIgMy40MiAwIDAgMS01IC4yMiAzIDMgMCAwIDEtLjgzLTIgMy4zOSAzLjM5IDAgMCAxIDEuMzMtMi44OGwzLjMyLTIuODkuMzctLjNaIi8+PHBhdGggZD0iTTE3Ljg4IDEzLjk5YTQuMDYgNC4wNiAwIDAgMC00LjQ2LTIuNjggNCA0IDAgMCAwIC42MSA3LjljLjIyIDAgLjQ0IDAgLjY1LS4wNmE0IDQgMCAwIDAgMy4yLTUuMTZabS0yLjMxIDIuMTNoLS42MnYuNThhLjk0Ljk0IDAgMCAxLTEuODcgMHYtLjU4aC0uNThhLjk0Ljk0IDAgMCAxIDAtMS44N2guNTh2LS41NmEuOTQuOTQgMCAxIDEgMS44NyAwdi41M2guNjJhLjk0Ljk0IDAgMCAxIDAgMS44N3YuMDNaIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgxOS43djE5LjQ0SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgBrushErase = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ width: 16, height: 16, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#brush-erase_svg__a)\", fill: \"#fff\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m6.47 5.69 4.8 4.7c-.29.2-.59.38-.85.59a4.73 4.73 0 0 0-1.74 3.05.45.45 0 0 1-.1.21l-2.89 3.34a3.24 3.24 0 0 1-2.47 1.2 3 3 0 0 1-3.23-3.1 3.34 3.34 0 0 1 1.39-2.7c1.16-.95 2.29-1.93 3.44-2.89l.14-.1-.4-.38-1-1a1.38 1.38 0 0 1 0-2.07L7.7 2.48c.76-.7 1.52-1.5 2.29-2.24a.69.69 0 0 1 1.05 0l1 .91a.59.59 0 0 1 .18.63c-.09.43-.18.87-.27 1.33l1.27-.25a.88.88 0 0 1 .84.24l2.71 2.68 2 1.92a.9.9 0 0 1 .29.8.66.66 0 0 1-.16.35c-.7.7-1.41 1.39-2.12 2.08l-1.28-.77 1.84-1.79V8.3l-4-3.88a.29.29 0 0 0-.28-.07l-1.84.43a.86.86 0 0 1-.8-.26.571.571 0 0 1-.13-.56c.12-.59.24-1.17.37-1.76 0-.19 0-.33-.18-.42L6.47 5.69Z\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M9.69 14.71a3.88 3.88 0 1 1 3.88 3.8 3.83 3.83 0 0 1-3.88-3.8Zm3.87 1h1.57a1 1 0 0 0 1-1 1 1 0 0 0-1-1.06h-3.14a1 1 0 0 0 0 2l1.57.06Z\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"brush-erase_svg__a\" }, /* @__PURE__ */ React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h19.03v18.77H0z\" }))));\nexport { SvgBrushErase as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Im02LjQ3IDUuNjkgNC44IDQuN2MtLjI5LjItLjU5LjM4LS44NS41OWE0LjczIDQuNzMgMCAwIDAtMS43NCAzLjA1LjQ1LjQ1IDAgMCAxLS4xLjIxbC0yLjg5IDMuMzRhMy4yNCAzLjI0IDAgMCAxLTIuNDcgMS4yIDMgMyAwIDAgMS0zLjIzLTMuMSAzLjM0IDMuMzQgMCAwIDEgMS4zOS0yLjdjMS4xNi0uOTUgMi4yOS0xLjkzIDMuNDQtMi44OWwuMTQtLjEtLjQtLjM4LTEtMWExLjM4IDEuMzggMCAwIDEgMC0yLjA3TDcuNyAyLjQ4Yy43Ni0uNyAxLjUyLTEuNSAyLjI5LTIuMjRhLjY5LjY5IDAgMCAxIDEuMDUgMGwxIC45MWEuNTkuNTkgMCAwIDEgLjE4LjYzYy0uMDkuNDMtLjE4Ljg3LS4yNyAxLjMzbDEuMjctLjI1YS44OC44OCAwIDAgMSAuODQuMjRsMi43MSAyLjY4IDIgMS45MmEuOS45IDAgMCAxIC4yOS44LjY2LjY2IDAgMCAxLS4xNi4zNWMtLjcuNy0xLjQxIDEuMzktMi4xMiAyLjA4bC0xLjI4LS43NyAxLjg0LTEuNzlWOC4zbC00LTMuODhhLjI5LjI5IDAgMCAwLS4yOC0uMDdsLTEuODQuNDNhLjg2Ljg2IDAgMCAxLS44LS4yNi41NzEuNTcxIDAgMCAxLS4xMy0uNTZjLjEyLS41OS4yNC0xLjE3LjM3LTEuNzYgMC0uMTkgMC0uMzMtLjE4LS40Mkw2LjQ3IDUuNjlaIi8+PHBhdGggZD0iTTkuNjkgMTQuNzFhMy44OCAzLjg4IDAgMSAxIDMuODggMy44IDMuODMgMy44MyAwIDAgMS0zLjg4LTMuOFptMy44NyAxaDEuNTdhMSAxIDAgMCAwIDEtMSAxIDEgMCAwIDAtMS0xLjA2aC0zLjE0YTEgMSAwIDAgMCAwIDJsMS41Ny4wNloiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDE5LjAzdjE4Ljc3SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgEdgeStitch = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 34.02 34.02\" }, props), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"style\", null, \".edge-stitch_svg__cls-1{fill:#fcfefe}.edge-stitch_svg__cls-3{fill:#fff}\")), /* @__PURE__ */ React.createElement(\"path\", { className: \"edge-stitch_svg__cls-1\", d: \"M22.25 18.52a.82.82 0 0 0 .57.15h4.3a1.44 1.44 0 1 0 0-2.87h-.86L31 11.06a1.42 1.42 0 0 0-2-2l-4.73 4.74v-.86a1.44 1.44 0 1 0-2.87 0v4.3a.87.87 0 0 0 .14.57 1.67 1.67 0 0 0 .71.71ZM9.91 31.58a1.31 1.31 0 0 0 1-.43l4.74-4.74v.86a1.44 1.44 0 1 0 2.87 0V23a.82.82 0 0 0-.15-.57 1.7 1.7 0 0 0-.71-.72.85.85 0 0 0-.58-.15h-4.3a1.44 1.44 0 1 0 0 2.87h.86l-4.73 4.71a1.38 1.38 0 0 0 0 2 1.31 1.31 0 0 0 1 .44Z\" }), /* @__PURE__ */ React.createElement(\"path\", { style: {\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeMiterlimit: 10,\n strokeWidth: 3\n}, d: \"m14.4 14.51 11.14 11.14\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"edge-stitch_svg__cls-3\", d: \"M7.51 5.7a3.41 3.41 0 0 1 .74.45c.85.8 1.67 1.64 2.49 2.47a1.19 1.19 0 1 1-1.69 1.67Q7.77 9 6.53 7.77a1.13 1.13 0 0 1-.26-1.33 1.33 1.33 0 0 1 1.24-.74ZM19.85 10.84a5.11 5.11 0 0 1-.92-.75.93.93 0 0 1 .07-1.24c.94-1 1.89-1.95 2.88-2.87a1.07 1.07 0 0 1 1.51.09 1.09 1.09 0 0 1 .11 1.56c-.91 1-1.87 1.9-2.83 2.83a2.88 2.88 0 0 1-.82.38ZM7.26 23.44a5 5 0 0 1-.92-.73.92.92 0 0 1 .06-1.24Q7.81 20 9.31 18.56a1.08 1.08 0 0 1 1.51.14 1.1 1.1 0 0 1 .09 1.52C10 21.21 9 22.15 8 23.09a3.07 3.07 0 0 1-.74.35ZM16.16 5.64v1.67A1.24 1.24 0 0 1 15 8.59a1.22 1.22 0 0 1-1.19-1.28v-3.4A1.22 1.22 0 0 1 15 2.63a1.23 1.23 0 0 1 1.19 1.29c-.01.57-.03 1.15-.03 1.72ZM6 15.73H4.38a1.2 1.2 0 1 1 0-2.4h3.34a1.2 1.2 0 1 1 0 2.4c-.58.02-1.15 0-1.72 0Z\" }));\nexport { SvgEdgeStitch as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmY2ZlZmV9LmNscy0ze2ZpbGw6I2ZmZn08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMi4yNSAxOC41MmEuODIuODIgMCAwIDAgLjU3LjE1aDQuM2ExLjQ0IDEuNDQgMCAxIDAgMC0yLjg3aC0uODZMMzEgMTEuMDZhMS40MiAxLjQyIDAgMCAwLTItMmwtNC43MyA0Ljc0di0uODZhMS40NCAxLjQ0IDAgMSAwLTIuODcgMHY0LjNhLjg3Ljg3IDAgMCAwIC4xNC41NyAxLjY3IDEuNjcgMCAwIDAgLjcxLjcxWk05LjkxIDMxLjU4YTEuMzEgMS4zMSAwIDAgMCAxLS40M2w0Ljc0LTQuNzR2Ljg2YTEuNDQgMS40NCAwIDEgMCAyLjg3IDBWMjNhLjgyLjgyIDAgMCAwLS4xNS0uNTcgMS43IDEuNyAwIDAgMC0uNzEtLjcyLjg1Ljg1IDAgMCAwLS41OC0uMTVoLTQuM2ExLjQ0IDEuNDQgMCAxIDAgMCAyLjg3aC44NmwtNC43MyA0LjcxYTEuMzggMS4zOCAwIDAgMCAwIDIgMS4zMSAxLjMxIDAgMCAwIDEgLjQ0WiIvPjxwYXRoIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmZmY7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjNweCIgZD0ibTE0LjQgMTQuNTEgMTEuMTQgMTEuMTQiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik03LjUxIDUuN2EzLjQxIDMuNDEgMCAwIDEgLjc0LjQ1Yy44NS44IDEuNjcgMS42NCAyLjQ5IDIuNDdhMS4xOSAxLjE5IDAgMSAxLTEuNjkgMS42N1E3Ljc3IDkgNi41MyA3Ljc3YTEuMTMgMS4xMyAwIDAgMS0uMjYtMS4zMyAxLjMzIDEuMzMgMCAwIDEgMS4yNC0uNzRaTTE5Ljg1IDEwLjg0YTUuMTEgNS4xMSAwIDAgMS0uOTItLjc1LjkzLjkzIDAgMCAxIC4wNy0xLjI0Yy45NC0xIDEuODktMS45NSAyLjg4LTIuODdhMS4wNyAxLjA3IDAgMCAxIDEuNTEuMDkgMS4wOSAxLjA5IDAgMCAxIC4xMSAxLjU2Yy0uOTEgMS0xLjg3IDEuOS0yLjgzIDIuODNhMi44OCAyLjg4IDAgMCAxLS44Mi4zOFpNNy4yNiAyMy40NGE1IDUgMCAwIDEtLjkyLS43My45Mi45MiAwIDAgMSAuMDYtMS4yNFE3LjgxIDIwIDkuMzEgMTguNTZhMS4wOCAxLjA4IDAgMCAxIDEuNTEuMTQgMS4xIDEuMSAwIDAgMSAuMDkgMS41MkMxMCAyMS4yMSA5IDIyLjE1IDggMjMuMDlhMy4wNyAzLjA3IDAgMCAxLS43NC4zNVpNMTYuMTYgNS42NHYxLjY3QTEuMjQgMS4yNCAwIDAgMSAxNSA4LjU5YTEuMjIgMS4yMiAwIDAgMS0xLjE5LTEuMjh2LTMuNEExLjIyIDEuMjIgMCAwIDEgMTUgMi42M2ExLjIzIDEuMjMgMCAwIDEgMS4xOSAxLjI5Yy0uMDEuNTctLjAzIDEuMTUtLjAzIDEuNzJaTTYgMTUuNzNINC4zOGExLjIgMS4yIDAgMSAxIDAtMi40aDMuMzRhMS4yIDEuMiAwIDEgMSAwIDIuNGMtLjU4LjAyLTEuMTUgMC0xLjcyIDBaIi8+PC9zdmc+\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgMagicBox = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 34.02 34.02\" }, props), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"style\", null, \".magic-box_svg__cls-1,.magic-box_svg__cls-3{fill:none}.magic-box_svg__cls-2{fill:#fcfefe}.magic-box_svg__cls-3{stroke:#fcfeff;stroke-linecap:round;stroke-miterlimit:10;stroke-width:2px}\")), /* @__PURE__ */ React.createElement(\"path\", { className: \"magic-box_svg__cls-1\", d: \"M5.28 16.36V6.08a1 1 0 0 1 1-1h22.2a1 1 0 0 1 1 1v21.67a1 1 0 0 1-1 .95h-10v2.39H31.4V2.74H3.17v13.62ZM3.06 2.74h.11v13.62h-.11z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"magic-box_svg__cls-2\", d: \"M7.28 7.12H27.4V26.7h-8.91v2h10a1 1 0 0 0 1-.95V6.08a1 1 0 0 0-1-1H6.24a1 1 0 0 0-1 1v10.28h2Z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"magic-box_svg__cls-2\", d: \"M4.82 28.43a.87.87 0 0 0 .11 1.19 1 1 0 0 0 1.19.09c3.29-2.56 4.66-2.56 8 0a.92.92 0 0 0 1.28-1.28c-2.56-3.29-2.56-4.66 0-8a.92.92 0 0 0-1.28-1.28c-3.29 2.56-4.66 2.56-8 0a1.37 1.37 0 0 0-.55-.15.83.83 0 0 0-.64.27.87.87 0 0 0-.09 1.19c2.63 3.31 2.63 4.59-.02 7.97Z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"magic-box_svg__cls-3\", d: \"m19.24 10.15 5.75-.07M24.99 15.91v-5.83M17.97 17.19l7.02-7.11\" }));\nexport { SvgMagicBox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PGRlZnM+PHN0eWxlPi5jbHMtMSwuY2xzLTN7ZmlsbDpub25lfS5jbHMtMntmaWxsOiNmY2ZlZmV9LmNscy0ze3N0cm9rZTojZmNmZWZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDoycHh9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNS4yOCAxNi4zNlY2LjA4YTEgMSAwIDAgMSAxLTFoMjIuMmExIDEgMCAwIDEgMSAxdjIxLjY3YTEgMSAwIDAgMS0xIC45NWgtMTB2Mi4zOUgzMS40VjIuNzRIMy4xN3YxMy42MlpNMy4wNiAyLjc0aC4xMXYxMy42MmgtLjExeiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTcuMjggNy4xMkgyNy40VjI2LjdoLTguOTF2MmgxMGExIDEgMCAwIDAgMS0uOTVWNi4wOGExIDEgMCAwIDAtMS0xSDYuMjRhMSAxIDAgMCAwLTEgMXYxMC4yOGgyWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQuODIgMjguNDNhLjg3Ljg3IDAgMCAwIC4xMSAxLjE5IDEgMSAwIDAgMCAxLjE5LjA5YzMuMjktMi41NiA0LjY2LTIuNTYgOCAwYS45Mi45MiAwIDAgMCAxLjI4LTEuMjhjLTIuNTYtMy4yOS0yLjU2LTQuNjYgMC04YS45Mi45MiAwIDAgMC0xLjI4LTEuMjhjLTMuMjkgMi41Ni00LjY2IDIuNTYtOCAwYTEuMzcgMS4zNyAwIDAgMC0uNTUtLjE1LjgzLjgzIDAgMCAwLS42NC4yNy44Ny44NyAwIDAgMC0uMDkgMS4xOWMyLjYzIDMuMzEgMi42MyA0LjU5LS4wMiA3Ljk3WiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0ibTE5LjI0IDEwLjE1IDUuNzUtLjA3TTI0Ljk5IDE1Ljkxdi01LjgzTTE3Ljk3IDE3LjE5bDcuMDItNy4xMSIvPjwvc3ZnPg==\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgMagicBrush = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ id: \"magic-brush_svg__\\\\u56FE\\\\u5C42_1\", \"data-name\": \"\\\\u56FE\\\\u5C42 1\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 34.02 34.02\" }, props), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"style\", null, \".magic-brush_svg__cls-1{fill:#fff}\")), /* @__PURE__ */ React.createElement(\"path\", { className: \"magic-brush_svg__cls-1\", d: \"M15.22 14.73 21 9l10.1 10.1-5.8 5.76ZM14.33 15.43l10.34 10.36c-.87.86-1.78 1.78-2.71 2.68-.09.08-.37 0-.53-.07-1.31-.58-2.63-1.16-3.92-1.78a.74.74 0 0 0-1 .17q-1.75 1.82-3.57 3.56a2.14 2.14 0 0 1-2.33.51 2.08 2.08 0 0 1-1.42-1.69 2.2 2.2 0 0 1 .67-2.05C11 26 12.14 24.8 13.32 23.66a.74.74 0 0 0 .19-1c-.61-1.27-1.16-2.57-1.77-3.85a.67.67 0 0 1 .15-.91c.84-.81 1.63-1.64 2.44-2.47Zm-1.82 13.18a1 1 0 1 0-2 .05 1 1 0 0 0 2-.05Z\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.2 12.66a.89.89 0 0 0 .11 1.23 1 1 0 0 0 1.23.1c3.4-2.65 4.82-2.65 8.27 0a.95.95 0 0 0 1.32-1.33c-2.64-3.4-2.64-4.81 0-8.26A.9.9 0 0 0 14 3.17a.89.89 0 0 0-1.23-.1C9.41 5.72 8 5.72 4.54 3.07A1.27 1.27 0 0 0 4 2.89a.84.84 0 0 0-.66.28.9.9 0 0 0-.12 1.23c2.72 3.45 2.72 4.77-.02 8.26Z\", style: {\n fill: \"#fcfefe\"\n} }));\nexport { SvgMagicBrush as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyBpZD0i5Zu+5bGCXzEiIGRhdGEtbmFtZT0i5Zu+5bGCIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM0LjAyIDM0LjAyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZn08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNS4yMiAxNC43MyAyMSA5bDEwLjEgMTAuMS01LjggNS43NlpNMTQuMzMgMTUuNDNsMTAuMzQgMTAuMzZjLS44Ny44Ni0xLjc4IDEuNzgtMi43MSAyLjY4LS4wOS4wOC0uMzcgMC0uNTMtLjA3LTEuMzEtLjU4LTIuNjMtMS4xNi0zLjkyLTEuNzhhLjc0Ljc0IDAgMCAwLTEgLjE3cS0xLjc1IDEuODItMy41NyAzLjU2YTIuMTQgMi4xNCAwIDAgMS0yLjMzLjUxIDIuMDggMi4wOCAwIDAgMS0xLjQyLTEuNjkgMi4yIDIuMiAwIDAgMSAuNjctMi4wNUMxMSAyNiAxMi4xNCAyNC44IDEzLjMyIDIzLjY2YS43NC43NCAwIDAgMCAuMTktMWMtLjYxLTEuMjctMS4xNi0yLjU3LTEuNzctMy44NWEuNjcuNjcgMCAwIDEgLjE1LS45MWMuODQtLjgxIDEuNjMtMS42NCAyLjQ0LTIuNDdabS0xLjgyIDEzLjE4YTEgMSAwIDEgMC0yIC4wNSAxIDEgMCAwIDAgMi0uMDVaIi8+PHBhdGggZD0iTTMuMiAxMi42NmEuODkuODkgMCAwIDAgLjExIDEuMjMgMSAxIDAgMCAwIDEuMjMuMWMzLjQtMi42NSA0LjgyLTIuNjUgOC4yNyAwYS45NS45NSAwIDAgMCAxLjMyLTEuMzNjLTIuNjQtMy40LTIuNjQtNC44MSAwLTguMjZBLjkuOSAwIDAgMCAxNCAzLjE3YS44OS44OSAwIDAgMC0xLjIzLS4xQzkuNDEgNS43MiA4IDUuNzIgNC41NCAzLjA3QTEuMjcgMS4yNyAwIDAgMCA0IDIuODlhLjg0Ljg0IDAgMCAwLS42Ni4yOC45LjkgMCAwIDAtLjEyIDEuMjNjMi43MiAzLjQ1IDIuNzIgNC43Ny0uMDIgOC4yNloiIHN0eWxlPSJmaWxsOiNmY2ZlZmUiLz48L3N2Zz4=\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgMagicClick = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ id: \"magic-click_svg__\\\\u56FE\\\\u5C42_1\", \"data-name\": \"\\\\u56FE\\\\u5C42 1\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 34.02 34.02\" }, props), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"style\", null, \".magic-click_svg__cls-1{fill:#fff}\")), /* @__PURE__ */ React.createElement(\"path\", { className: \"magic-click_svg__cls-1\", d: \"M30.88 21.21a1.6 1.6 0 0 1-1 1.35c-1.54.75-3.08 1.51-4.59 2.31a2.18 2.18 0 0 0-.87.86c-.79 1.49-1.53 3-2.27 4.53a1.49 1.49 0 0 1-2.89-.18Q17.2 23.8 15.1 17.52a1.49 1.49 0 0 1 2-2l12.55 4.19a1.56 1.56 0 0 1 1.23 1.5Zm-5.25.23-6.94-2.32 2.32 7c.37-.74.71-1.3.95-1.9a3 3 0 0 1 1.8-1.79c.6-.29 1.15-.62 1.87-.99ZM7.34 6.09a4.23 4.23 0 0 1 .89.54l3 3a1.45 1.45 0 1 1-2 2c-1-1-2.06-2-3.07-3.07A1.37 1.37 0 0 1 5.83 7a1.6 1.6 0 0 1 1.51-.91ZM22.35 12.35a6.61 6.61 0 0 1-1.12-.92 1.14 1.14 0 0 1 .09-1.51c1.14-1.19 2.3-2.37 3.5-3.49a1.31 1.31 0 0 1 1.84.1 1.34 1.34 0 0 1 .14 1.9c-1.11 1.19-2.28 2.32-3.45 3.45a3.92 3.92 0 0 1-1 .47ZM7 27.68a6 6 0 0 1-1.13-.9 1.12 1.12 0 0 1 .13-1.5c1.15-1.21 2.32-2.4 3.55-3.54a1.32 1.32 0 0 1 1.84.17 1.33 1.33 0 0 1 .1 1.85C10.35 25 9.16 26.11 8 27.25a3.75 3.75 0 0 1-1 .43ZM17.87 6v2A1.46 1.46 0 1 1 15 8V3.87a1.49 1.49 0 0 1 1.46-1.56 1.51 1.51 0 0 1 1.45 1.57c-.03.74-.04 1.44-.04 2.12ZM5.48 18.3h-2a1.5 1.5 0 0 1-1.55-1.5 1.48 1.48 0 0 1 1.59-1.42h4.07a1.49 1.49 0 0 1 1.59 1.49 1.5 1.5 0 0 1-1.6 1.42c-.69.02-1.4.01-2.1.01Z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"magic-click_svg__cls-1\", d: \"M25.63 21.44c-.72.37-1.27.7-1.87.94A3 3 0 0 0 22 24.17c-.24.6-.58 1.16-.95 1.9l-2.32-6.95Z\" }));\nexport { SvgMagicClick as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyBpZD0i5Zu+5bGCXzEiIGRhdGEtbmFtZT0i5Zu+5bGCIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM0LjAyIDM0LjAyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZn08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0zMC44OCAyMS4yMWExLjYgMS42IDAgMCAxLTEgMS4zNWMtMS41NC43NS0zLjA4IDEuNTEtNC41OSAyLjMxYTIuMTggMi4xOCAwIDAgMC0uODcuODZjLS43OSAxLjQ5LTEuNTMgMy0yLjI3IDQuNTNhMS40OSAxLjQ5IDAgMCAxLTIuODktLjE4UTE3LjIgMjMuOCAxNS4xIDE3LjUyYTEuNDkgMS40OSAwIDAgMSAyLTJsMTIuNTUgNC4xOWExLjU2IDEuNTYgMCAwIDEgMS4yMyAxLjVabS01LjI1LjIzLTYuOTQtMi4zMiAyLjMyIDdjLjM3LS43NC43MS0xLjMuOTUtMS45YTMgMyAwIDAgMSAxLjgtMS43OWMuNi0uMjkgMS4xNS0uNjIgMS44Ny0uOTlaTTcuMzQgNi4wOWE0LjIzIDQuMjMgMCAwIDEgLjg5LjU0bDMgM2ExLjQ1IDEuNDUgMCAxIDEtMiAyYy0xLTEtMi4wNi0yLTMuMDctMy4wN0ExLjM3IDEuMzcgMCAwIDEgNS44MyA3YTEuNiAxLjYgMCAwIDEgMS41MS0uOTFaTTIyLjM1IDEyLjM1YTYuNjEgNi42MSAwIDAgMS0xLjEyLS45MiAxLjE0IDEuMTQgMCAwIDEgLjA5LTEuNTFjMS4xNC0xLjE5IDIuMy0yLjM3IDMuNS0zLjQ5YTEuMzEgMS4zMSAwIDAgMSAxLjg0LjEgMS4zNCAxLjM0IDAgMCAxIC4xNCAxLjljLTEuMTEgMS4xOS0yLjI4IDIuMzItMy40NSAzLjQ1YTMuOTIgMy45MiAwIDAgMS0xIC40N1pNNyAyNy42OGE2IDYgMCAwIDEtMS4xMy0uOSAxLjEyIDEuMTIgMCAwIDEgLjEzLTEuNWMxLjE1LTEuMjEgMi4zMi0yLjQgMy41NS0zLjU0YTEuMzIgMS4zMiAwIDAgMSAxLjg0LjE3IDEuMzMgMS4zMyAwIDAgMSAuMSAxLjg1QzEwLjM1IDI1IDkuMTYgMjYuMTEgOCAyNy4yNWEzLjc1IDMuNzUgMCAwIDEtMSAuNDNaTTE3Ljg3IDZ2MkExLjQ2IDEuNDYgMCAxIDEgMTUgOFYzLjg3YTEuNDkgMS40OSAwIDAgMSAxLjQ2LTEuNTYgMS41MSAxLjUxIDAgMCAxIDEuNDUgMS41N2MtLjAzLjc0LS4wNCAxLjQ0LS4wNCAyLjEyWk01LjQ4IDE4LjNoLTJhMS41IDEuNSAwIDAgMS0xLjU1LTEuNSAxLjQ4IDEuNDggMCAwIDEgMS41OS0xLjQyaDQuMDdhMS40OSAxLjQ5IDAgMCAxIDEuNTkgMS40OSAxLjUgMS41IDAgMCAxLTEuNiAxLjQyYy0uNjkuMDItMS40LjAxLTIuMS4wMVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yNS42MyAyMS40NGMtLjcyLjM3LTEuMjcuNy0xLjg3Ljk0QTMgMyAwIDAgMCAyMiAyNC4xN2MtLjI0LjYtLjU4IDEuMTYtLjk1IDEuOWwtMi4zMi02Ljk1WiIvPjwvc3ZnPg==\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgPenAdd = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ width: 16, height: 16, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#pen-add_svg__a)\", fill: \"#fff\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.7 10c0-.1 0-.1.1-.2v-.2c0-.1 0-.1-.1-.1l-3.2-3.2-3.1-3.1v-.1H10.1c-.1.2-.3.3-.6.3-1.7.7-3.4 1.3-5.2 1.9-.1 0-.1.1-.2.1s0 .1 0 .2c-.2.6-.4 1.2-.6 1.9C3 9.2 2.5 11 2 12.7L.3 18.4c-.1.3-.2.7-.3 1l.2-.1L7 12.4l.1-.1V12c-.1-.2-.2-.5-.2-.8 0-.3 0-.6.1-.8.1-.3.3-.5.5-.7.2-.2.4-.3.7-.4H9c.3 0 .5.1.8.3.2.1.4.3.6.6.9-.8 2-1.2 3.3-1.2 1.1 0 2.2.4 3 1Z\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.6 13.2h-.3c-.2-.1-.3-.2-.5-.3L.7 20l4-1.2 5-1.4c-.7-.9-1.2-2-1.2-3.3 0-.3.1-.6.1-.9ZM11.3 2.6 16.7 8l.8.8L20 7.2 12.8 0l-.1.1c-.5.8-1 1.5-1.5 2.2v.2l.1.1c-.1 0-.1 0 0 0ZM16.4 11c-.7-.6-1.7-1.1-2.7-1.1-1.2 0-2.3.5-3 1.3-.4.5-.8 1-.9 1.7-.1.4-.2.7-.2 1.1 0 1.2.5 2.2 1.3 3 .7.7 1.7 1.2 2.9 1.2 2.3 0 4.1-1.9 4.1-4.1-.1-1.2-.7-2.3-1.5-3.1Zm-1.1 4.1h-.7v.8c0 .6-.4 1-1 1s-1-.4-1-1v-.8H12c-.6 0-1-.4-1-1s.4-1 1-1h.6v-.5c0-.6.4-1 1-1s1 .4 1 1v.5h.7c.6 0 1 .4 1 1s-.4 1-1 1Z\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"pen-add_svg__a\" }, /* @__PURE__ */ React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h20v20H0z\" }))));\nexport { SvgPenAdd as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik0xNi43IDEwYzAtLjEgMC0uMS4xLS4ydi0uMmMwLS4xIDAtLjEtLjEtLjFsLTMuMi0zLjItMy4xLTMuMXYtLjFIMTAuMWMtLjEuMi0uMy4zLS42LjMtMS43LjctMy40IDEuMy01LjIgMS45LS4xIDAtLjEuMS0uMi4xczAgLjEgMCAuMmMtLjIuNi0uNCAxLjItLjYgMS45QzMgOS4yIDIuNSAxMSAyIDEyLjdMLjMgMTguNGMtLjEuMy0uMi43LS4zIDFsLjItLjFMNyAxMi40bC4xLS4xVjEyYy0uMS0uMi0uMi0uNS0uMi0uOCAwLS4zIDAtLjYuMS0uOC4xLS4zLjMtLjUuNS0uNy4yLS4yLjQtLjMuNy0uNEg5Yy4zIDAgLjUuMS44LjMuMi4xLjQuMy42LjYuOS0uOCAyLTEuMiAzLjMtMS4yIDEuMSAwIDIuMi40IDMgMVoiLz48cGF0aCBkPSJNOC42IDEzLjJoLS4zYy0uMi0uMS0uMy0uMi0uNS0uM0wuNyAyMGw0LTEuMiA1LTEuNGMtLjctLjktMS4yLTItMS4yLTMuMyAwLS4zLjEtLjYuMS0uOVpNMTEuMyAyLjYgMTYuNyA4bC44LjhMMjAgNy4yIDEyLjggMGwtLjEuMWMtLjUuOC0xIDEuNS0xLjUgMi4ydi4ybC4xLjFjLS4xIDAtLjEgMCAwIDBaTTE2LjQgMTFjLS43LS42LTEuNy0xLjEtMi43LTEuMS0xLjIgMC0yLjMuNS0zIDEuMy0uNC41LS44IDEtLjkgMS43LS4xLjQtLjIuNy0uMiAxLjEgMCAxLjIuNSAyLjIgMS4zIDMgLjcuNyAxLjcgMS4yIDIuOSAxLjIgMi4zIDAgNC4xLTEuOSA0LjEtNC4xLS4xLTEuMi0uNy0yLjMtMS41LTMuMVptLTEuMSA0LjFoLS43di44YzAgLjYtLjQgMS0xIDFzLTEtLjQtMS0xdi0uOEgxMmMtLjYgMC0xLS40LTEtMXMuNC0xIDEtMWguNnYtLjVjMC0uNi40LTEgMS0xczEgLjQgMSAxdi41aC43Yy42IDAgMSAuNCAxIDFzLS40IDEtMSAxWiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoMjB2MjBIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgPenErase = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ width: 16, height: 16, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#pen-erase_svg__a)\", fill: \"#fff\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m16.74 10 .07-.2a.22.22 0 0 0 0-.16.22.22 0 0 0-.09-.12l-3.14-3.16-3.07-3.08a.18.18 0 0 0 0-.07H10.29l-.72.26-5.23 1.82a.42.42 0 0 0-.18.11.35.35 0 0 0-.1.19c-.17.63-.36 1.25-.55 1.88C3 9.21 2.51 11 2 12.67L.3 18.34c-.09.31-.18.66-.3 1l.16-.14L7 12.42l.06-.06a.16.16 0 0 0 0-.09.17.17 0 0 0 0-.1v-.08a1.87 1.87 0 0 1-.06-1.6A1.95 1.95 0 0 1 8.16 9.4c.27-.09.558-.118.84-.08a2 2 0 0 1 .78.26c.232.15.432.344.59.57a5 5 0 0 1 6.37-.15Z\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63 13.2c-.106.01-.214.01-.32 0a3.38 3.38 0 0 1-.52-.22L.74 20l4-1.2 5-1.44a4.9 4.9 0 0 1-1.11-4.16ZM11.25 2.62c1.83 1.82 3.62 3.62 5.43 5.43l.81.83L20 7.21 12.83 0l-.08.1c-.5.75-1 1.53-1.5 2.25v.06a.192.192 0 0 0 0 .07.19.19 0 0 0 0 .08.208.208 0 0 0 0 .06ZM16.38 11a4.1 4.1 0 0 0-6.66 2 4.24 4.24 0 0 0-.18 1.13 4.11 4.11 0 0 0 1.27 3 4.06 4.06 0 0 0 2.85 1.16A4.12 4.12 0 0 0 16.38 11Zm-1 4.08h-3.32a1 1 0 0 1 0-2h3.27a1 1 0 0 1 0 2h.05Z\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"pen-erase_svg__a\" }, /* @__PURE__ */ React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h20v20H0z\" }))));\nexport { SvgPenErase as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Im0xNi43NCAxMCAuMDctLjJhLjIyLjIyIDAgMCAwIDAtLjE2LjIyLjIyIDAgMCAwLS4wOS0uMTJsLTMuMTQtMy4xNi0zLjA3LTMuMDhhLjE4LjE4IDAgMCAwIDAtLjA3SDEwLjI5bC0uNzIuMjYtNS4yMyAxLjgyYS40Mi40MiAwIDAgMC0uMTguMTEuMzUuMzUgMCAwIDAtLjEuMTljLS4xNy42My0uMzYgMS4yNS0uNTUgMS44OEMzIDkuMjEgMi41MSAxMSAyIDEyLjY3TC4zIDE4LjM0Yy0uMDkuMzEtLjE4LjY2LS4zIDFsLjE2LS4xNEw3IDEyLjQybC4wNi0uMDZhLjE2LjE2IDAgMCAwIDAtLjA5LjE3LjE3IDAgMCAwIDAtLjF2LS4wOGExLjg3IDEuODcgMCAwIDEtLjA2LTEuNkExLjk1IDEuOTUgMCAwIDEgOC4xNiA5LjRjLjI3LS4wOS41NTgtLjExOC44NC0uMDhhMiAyIDAgMCAxIC43OC4yNmMuMjMyLjE1LjQzMi4zNDQuNTkuNTdhNSA1IDAgMCAxIDYuMzctLjE1WiIvPjxwYXRoIGQ9Ik04LjYzIDEzLjJjLS4xMDYuMDEtLjIxNC4wMS0uMzIgMGEzLjM4IDMuMzggMCAwIDEtLjUyLS4yMkwuNzQgMjBsNC0xLjIgNS0xLjQ0YTQuOSA0LjkgMCAwIDEtMS4xMS00LjE2Wk0xMS4yNSAyLjYyYzEuODMgMS44MiAzLjYyIDMuNjIgNS40MyA1LjQzbC44MS44M0wyMCA3LjIxIDEyLjgzIDBsLS4wOC4xYy0uNS43NS0xIDEuNTMtMS41IDIuMjV2LjA2YS4xOTIuMTkyIDAgMCAwIDAgLjA3LjE5LjE5IDAgMCAwIDAgLjA4LjIwOC4yMDggMCAwIDAgMCAuMDZaTTE2LjM4IDExYTQuMSA0LjEgMCAwIDAtNi42NiAyIDQuMjQgNC4yNCAwIDAgMC0uMTggMS4xMyA0LjExIDQuMTEgMCAwIDAgMS4yNyAzIDQuMDYgNC4wNiAwIDAgMCAyLjg1IDEuMTZBNC4xMiA0LjEyIDAgMCAwIDE2LjM4IDExWm0tMSA0LjA4aC0zLjMyYTEgMSAwIDAgMSAwLTJoMy4yN2ExIDEgMCAwIDEgMCAyaC4wNVoiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDIwdjIwSDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgRemovePrompt = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 19 19\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M18.33 4.069a.67.67 0 0 0 .67-.672V.671A.672.672 0 0 0 18.33 0h-2.718a.67.67 0 0 0-.671.671v.672H4.066V.67A.672.672 0 0 0 3.395 0H.67A.67.67 0 0 0 0 .671v2.72a.672.672 0 0 0 .67.67h.672v10.877H.67A.67.67 0 0 0 0 15.61v2.72A.672.672 0 0 0 .67 19h2.718a.67.67 0 0 0 .671-.671v-.672h10.869v.672a.672.672 0 0 0 .67.671h2.718a.67.67 0 0 0 .67-.671v-2.706a.672.672 0 0 0-.67-.671h-.671V4.069h.684Zm-2.014 10.876h-.67a.67.67 0 0 0-.671.671v.672H4.065v-.672a.672.672 0 0 0-.67-.671h-.671V4.069h.67a.67.67 0 0 0 .672-.672v-.671h10.868v.671a.672.672 0 0 0 .671.672h.671l.02 5.438.02 5.438Z\", fill: \"#fff\" }), /* @__PURE__ */ React.createElement(\"g\", { stroke: \"#fff\", strokeWidth: 1.5, strokeLinecap: \"round\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m6.71 6.713 6.037 6.043M6.71 6.713l6.037 6.043M6.71 6.713l6.037 6.043M6.71 6.713l6.037 6.043\" })), /* @__PURE__ */ React.createElement(\"g\", { stroke: \"#fff\", strokeWidth: 1.5, strokeLinecap: \"round\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12.747 6.713 6.71 12.756M12.747 6.713 6.71 12.756M12.747 6.713 6.71 12.756M12.747 6.713 6.71 12.756\" })));\nexport { SvgRemovePrompt as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTkgMTkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE4LjMzIDQuMDY5YS42Ny42NyAwIDAgMCAuNjctLjY3MlYuNjcxQS42NzIuNjcyIDAgMCAwIDE4LjMzIDBoLTIuNzE4YS42Ny42NyAwIDAgMC0uNjcxLjY3MXYuNjcySDQuMDY2Vi42N0EuNjcyLjY3MiAwIDAgMCAzLjM5NSAwSC42N0EuNjcuNjcgMCAwIDAgMCAuNjcxdjIuNzJhLjY3Mi42NzIgMCAwIDAgLjY3LjY3aC42NzJ2MTAuODc3SC42N0EuNjcuNjcgMCAwIDAgMCAxNS42MXYyLjcyQS42NzIuNjcyIDAgMCAwIC42NyAxOWgyLjcxOGEuNjcuNjcgMCAwIDAgLjY3MS0uNjcxdi0uNjcyaDEwLjg2OXYuNjcyYS42NzIuNjcyIDAgMCAwIC42Ny42NzFoMi43MThhLjY3LjY3IDAgMCAwIC42Ny0uNjcxdi0yLjcwNmEuNjcyLjY3MiAwIDAgMC0uNjctLjY3MWgtLjY3MVY0LjA2OWguNjg0Wm0tMi4wMTQgMTAuODc2aC0uNjdhLjY3LjY3IDAgMCAwLS42NzEuNjcxdi42NzJINC4wNjV2LS42NzJhLjY3Mi42NzIgMCAwIDAtLjY3LS42NzFoLS42NzFWNC4wNjloLjY3YS42Ny42NyAwIDAgMCAuNjcyLS42NzJ2LS42NzFoMTAuODY4di42NzFhLjY3Mi42NzIgMCAwIDAgLjY3MS42NzJoLjY3MWwuMDIgNS40MzguMDIgNS40MzhaIiBmaWxsPSIjZmZmIi8+PGcgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cGF0aCBkPSJtNi43MSA2LjcxMyA2LjAzNyA2LjA0M002LjcxIDYuNzEzbDYuMDM3IDYuMDQzTTYuNzEgNi43MTNsNi4wMzcgNi4wNDNNNi43MSA2LjcxM2w2LjAzNyA2LjA0MyIvPjwvZz48ZyBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiPjxwYXRoIGQ9Ik0xMi43NDcgNi43MTMgNi43MSAxMi43NTZNMTIuNzQ3IDYuNzEzIDYuNzEgMTIuNzU2TTEyLjc0NyA2LjcxMyA2LjcxIDEyLjc1Nk0xMi43NDcgNi43MTMgNi43MSAxMi43NTYiLz48L2c+PC9zdmc+\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgSegmentEverything = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 34.02 34.02\" }, props), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"style\", null, \".segment-everything_svg__cls-1{fill:#fff}.segment-everything_svg__cls-3{fill:none}\")), /* @__PURE__ */ React.createElement(\"path\", { className: \"segment-everything_svg__cls-1\", d: \"m6.26 15.54 5.88 3.88a1 1 0 0 1 0 1.56L6.1 25.29a.9.9 0 0 1-1.41-.79l.19-8.2a.9.9 0 0 1 1.38-.76ZM7.58 29.17 23.43 17.7a1.71 1.71 0 0 1 2.25.22l3.32 3.5v7.75Z\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M31 4.35a.88.88 0 0 0-.11-1.19 1 1 0 0 0-1.19-.09c-3.29 2.56-4.66 2.56-8 0a.87.87 0 0 0-1.19.09.87.87 0 0 0-.09 1.19c2.56 3.29 2.56 4.66 0 8a.92.92 0 0 0 1.28 1.28c3.29-2.56 4.66-2.56 8 0a1.28 1.28 0 0 0 .55.18.91.91 0 0 0 .64-.27.87.87 0 0 0 .11-1.19c-2.65-3.35-2.65-4.62 0-8Z\", style: {\n fill: \"#fcfefe\"\n} }), /* @__PURE__ */ React.createElement(\"path\", { className: \"segment-everything_svg__cls-3\", d: \"M4.07 4.13h26.29v26.29H4.07z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"segment-everything_svg__cls-3\", d: \"M6.39 28.56h22.49V17H16.49v-3.38a2.56 2.56 0 0 1-2 .93 2.63 2.63 0 0 1-2.59-2.72 2.66 2.66 0 0 1 2.6-2.67 2.57 2.57 0 0 1 2 .95v-4H6.39Z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"segment-everything_svg__cls-1\", d: \"M14.51 9.16a2.66 2.66 0 0 0-2.6 2.67 2.63 2.63 0 0 0 2.59 2.72 2.56 2.56 0 0 0 2-.93v-3.51a2.57 2.57 0 0 0-1.99-.95Z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"segment-everything_svg__cls-1\", d: \"M28.88 28.56H6.39V6.1h10.1V4.25H5.42a.88.88 0 0 0-.89.88v25.28h26.21V17h-1.86Z\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"segment-everything_svg__cls-1\", d: \"M17.14 11.87a2.74 2.74 0 0 0-.65-1.76v3.51a2.7 2.7 0 0 0 .65-1.75Z\" }));\nexport { SvgSegmentEverything as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNC4wMiAzNC4wMiI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmZ9LmNscy0ze2ZpbGw6bm9uZX08L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Im02LjI2IDE1LjU0IDUuODggMy44OGExIDEgMCAwIDEgMCAxLjU2TDYuMSAyNS4yOWEuOS45IDAgMCAxLTEuNDEtLjc5bC4xOS04LjJhLjkuOSAwIDAgMSAxLjM4LS43NlpNNy41OCAyOS4xNyAyMy40MyAxNy43YTEuNzEgMS43MSAwIDAgMSAyLjI1LjIybDMuMzIgMy41djcuNzVaIi8+PHBhdGggZD0iTTMxIDQuMzVhLjg4Ljg4IDAgMCAwLS4xMS0xLjE5IDEgMSAwIDAgMC0xLjE5LS4wOWMtMy4yOSAyLjU2LTQuNjYgMi41Ni04IDBhLjg3Ljg3IDAgMCAwLTEuMTkuMDkuODcuODcgMCAwIDAtLjA5IDEuMTljMi41NiAzLjI5IDIuNTYgNC42NiAwIDhhLjkyLjkyIDAgMCAwIDEuMjggMS4yOGMzLjI5LTIuNTYgNC42Ni0yLjU2IDggMGExLjI4IDEuMjggMCAwIDAgLjU1LjE4LjkxLjkxIDAgMCAwIC42NC0uMjcuODcuODcgMCAwIDAgLjExLTEuMTljLTIuNjUtMy4zNS0yLjY1LTQuNjIgMC04WiIgc3R5bGU9ImZpbGw6I2ZjZmVmZSIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTQuMDcgNC4xM2gyNi4yOXYyNi4yOUg0LjA3eiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTYuMzkgMjguNTZoMjIuNDlWMTdIMTYuNDl2LTMuMzhhMi41NiAyLjU2IDAgMCAxLTIgLjkzIDIuNjMgMi42MyAwIDAgMS0yLjU5LTIuNzIgMi42NiAyLjY2IDAgMCAxIDIuNi0yLjY3IDIuNTcgMi41NyAwIDAgMSAyIC45NXYtNEg2LjM5WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0LjUxIDkuMTZhMi42NiAyLjY2IDAgMCAwLTIuNiAyLjY3IDIuNjMgMi42MyAwIDAgMCAyLjU5IDIuNzIgMi41NiAyLjU2IDAgMCAwIDItLjkzdi0zLjUxYTIuNTcgMi41NyAwIDAgMC0xLjk5LS45NVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yOC44OCAyOC41Nkg2LjM5VjYuMWgxMC4xVjQuMjVINS40MmEuODguODggMCAwIDAtLjg5Ljg4djI1LjI4aDI2LjIxVjE3aC0xLjg2WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE3LjE0IDExLjg3YTIuNzQgMi43NCAwIDAgMC0uNjUtMS43NnYzLjUxYTIuNyAyLjcgMCAwIDAgLjY1LTEuNzVaIi8+PC9zdmc+\";\n","import Icon from '@ant-design/icons';\nimport { Slider } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\nimport { useMemo } from 'react';\n\nimport { ReactComponent as AddPromptIcon } from '../assets/add-prompt.svg';\nimport { ReactComponent as BrushAddIcon } from '../assets/brush-add.svg';\nimport { ReactComponent as BrushEraseIcon } from '../assets/brush-erase.svg';\nimport { ReactComponent as EdgeStitchIcon } from '../assets/edge-stitch.svg';\nimport { ReactComponent as MagicBoxIcon } from '../assets/magic-box.svg';\nimport { ReactComponent as StrokeIcon } from '../assets/magic-brush.svg';\nimport { ReactComponent as ClickIcon } from '../assets/magic-click.svg';\nimport { ReactComponent as PenAddIcon } from '../assets/pen-add.svg';\nimport { ReactComponent as PenEraseIcon } from '../assets/pen-erase.svg';\nimport { ReactComponent as RemovePromptIcon } from '../assets/remove-prompt.svg';\nimport { ReactComponent as SegmentEverythingIcon } from '../assets/segment-everything.svg';\nimport {\n EBasicToolItem,\n EnumModelType,\n EObjectType,\n ESubToolItem,\n} from '../constants';\nimport { TShortcutItem } from '../constants/shortcuts';\nimport { DrawData } from '../type';\n\nexport type TToolItem = {\n key: T;\n name: string;\n shortcut?: TShortcutItem;\n icon: JSX.Element;\n available: boolean;\n description?: string;\n withSize?: boolean;\n withCustomElement?: boolean;\n};\n\nexport type TSubtoolOptions = {\n basicTools: TToolItem[];\n smartTools: TToolItem[];\n customElement?: React.ReactNode;\n};\n\ninterface IProps {\n drawData: DrawData;\n onChangePointResolution: (value: number, update?: boolean) => void;\n}\n\nconst useSubTools = ({ drawData, onChangePointResolution }: IProps) => {\n const { localeText } = useLocale();\n\n const isSegEverythingAvailable = useMemo(() => {\n return (\n (drawData.objectList.length === 0 && !drawData.creatingObject) ||\n drawData.isBatchEditing\n );\n }, [drawData.objectList, drawData.creatingObject, drawData.isBatchEditing]);\n\n const basicMaskTools: TToolItem[] = useMemo(\n () => [\n {\n key: ESubToolItem.PenAdd,\n name: localeText('DDSAnnotator.subtoolbar.mask.penAdd'),\n icon: ,\n available: true,\n },\n {\n key: ESubToolItem.PenErase,\n name: localeText('DDSAnnotator.subtoolbar.mask.penErase'),\n icon: ,\n available: !!drawData.creatingObject,\n },\n {\n key: ESubToolItem.BrushAdd,\n name: localeText('DDSAnnotator.subtoolbar.mask.brushAdd'),\n icon: ,\n available: true,\n withSize: true,\n },\n {\n key: ESubToolItem.BrushErase,\n name: localeText('DDSAnnotator.subtoolbar.mask.brushErase'),\n icon: ,\n available: !!drawData.creatingObject,\n withSize: true,\n },\n ],\n [drawData.creatingObject],\n );\n\n const isgTools: TToolItem[] = useMemo(() => {\n return [\n {\n key: ESubToolItem.AutoSegmentByBox,\n name: localeText('DDSAnnotator.subtoolbar.mask.box'),\n icon: ,\n available: true,\n },\n {\n key: ESubToolItem.AutoSegmentByStroke,\n name: localeText('DDSAnnotator.subtoolbar.mask.stroke'),\n icon: ,\n available: true,\n withSize: true,\n },\n {\n key: ESubToolItem.AutoSegmentByClick,\n name: localeText('DDSAnnotator.subtoolbar.mask.click'),\n icon: ,\n available: true,\n },\n ];\n }, []);\n\n const smartPolygonTools: TToolItem[] = useMemo(() => {\n return [\n {\n key: ESubToolItem.AutoSegmentByBox,\n name: localeText('DDSAnnotator.subtoolbar.mask.box'),\n icon: ,\n available: true,\n withCustomElement: true,\n },\n {\n key: ESubToolItem.AutoSegmentByStroke,\n name: localeText('DDSAnnotator.subtoolbar.mask.stroke'),\n icon: ,\n available: true,\n withSize: true,\n withCustomElement: true,\n },\n {\n key: ESubToolItem.AutoSegmentByClick,\n name: localeText('DDSAnnotator.subtoolbar.mask.click'),\n icon: ,\n available: true,\n withCustomElement: true,\n },\n ];\n }, []);\n\n const ivpTools: TToolItem[] = useMemo(() => {\n return [\n {\n key: ESubToolItem.PositiveVisualPrompt,\n name: localeText('DDSAnnotator.subtoolbar.visualprompt.positive'),\n icon: ,\n available: true,\n },\n {\n key: ESubToolItem.NegativeVisualPrompt,\n name: localeText('DDSAnnotator.subtoolbar.visualprompt.negative'),\n icon: ,\n available: !!drawData.prompt.promptsQueue?.some(\n (item) => item.isPositive,\n ),\n },\n ];\n }, [drawData.prompt]);\n\n const samTools: TToolItem[] = useMemo(() => {\n return [\n {\n key: ESubToolItem.AutoSegmentEverything,\n name: localeText('DDSAnnotator.subtoolbar.mask.sam'),\n icon: ,\n available: isSegEverythingAvailable,\n description: isSegEverythingAvailable\n ? localeText('DDSAnnotator.subtoolbar.mask.sam.desc')\n : localeText('DDSAnnotator.subtoolbar.mask.sam.notAllow'),\n },\n {\n key: ESubToolItem.AutoEdgeStitching,\n name: localeText('DDSAnnotator.subtoolbar.mask.edgeStitch'),\n icon: ,\n available: true,\n withSize: true,\n },\n ];\n }, [isSegEverythingAvailable]);\n\n const showSubTools = useMemo(() => {\n const { selectedTool, creatingObject, AIAnnotation, selectedModel } =\n drawData;\n\n if (\n selectedTool === EBasicToolItem.Mask ||\n creatingObject?.type === EObjectType.Mask\n )\n return true;\n\n if (\n selectedTool === EBasicToolItem.Rectangle &&\n AIAnnotation &&\n selectedModel[selectedTool] === EnumModelType.IVP\n )\n return true;\n\n if (\n (selectedTool === EBasicToolItem.Polygon ||\n creatingObject?.type === EObjectType.Polygon) &&\n AIAnnotation\n )\n return true;\n\n return false;\n }, [\n drawData.selectedTool,\n drawData.creatingObject,\n drawData.AIAnnotation,\n drawData.selectedModel,\n ]);\n\n const currSubTools: TSubtoolOptions = useMemo(() => {\n if (\n drawData.selectedTool === EBasicToolItem.Mask ||\n drawData.creatingObject?.type === EObjectType.Mask\n ) {\n if (!drawData.AIAnnotation) {\n return {\n basicTools: basicMaskTools,\n smartTools: [],\n };\n }\n\n const currModel = drawData.selectedModel[drawData.selectedTool];\n if (currModel === EnumModelType.IVP) {\n return {\n basicTools: [],\n smartTools: ivpTools,\n };\n } else if (currModel === EnumModelType.SegmentByMask) {\n return {\n basicTools: [],\n smartTools: isgTools,\n };\n } else if (currModel === EnumModelType.SegmentEverything) {\n return {\n basicTools: [],\n smartTools: samTools,\n };\n }\n return {\n basicTools: basicMaskTools,\n smartTools: [],\n };\n } else if (\n drawData.selectedTool === EBasicToolItem.Polygon ||\n drawData.creatingObject?.type === EObjectType.Polygon\n ) {\n return {\n basicTools: [],\n smartTools: smartPolygonTools,\n customElement: (\n <>\n
\n {localeText('DDSAnnotator.subtoolbar.polygon.pointResolution')}\n
\n
\n onChangePointResolution(value, true)}\n />\n
\n \n ),\n };\n } else if (\n drawData.selectedTool === EBasicToolItem.Rectangle &&\n drawData.AIAnnotation &&\n drawData.selectedModel[drawData.selectedTool] === EnumModelType.IVP\n ) {\n return {\n basicTools: [],\n smartTools: ivpTools,\n };\n }\n return {\n basicTools: [],\n smartTools: [],\n };\n }, [\n drawData.selectedTool,\n drawData.creatingObject,\n drawData.AIAnnotation,\n drawData.selectedModel,\n smartPolygonTools,\n basicMaskTools,\n isgTools,\n samTools,\n ivpTools,\n drawData.pointResolution,\n ]);\n\n return {\n showSubTools,\n currSubTools,\n };\n};\n\nexport default useSubTools;\n","import { Modal, message } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\nimport { cloneDeep } from 'lodash';\nimport { useCallback, useEffect } from 'react';\nimport { Updater } from 'use-immer';\n\nimport {\n EBasicToolItem,\n EnumModelType,\n EObjectType,\n ESubToolItem,\n TOOL_MODELS_MAP,\n} from '../constants';\nimport { objectToRle, rleToCanvas } from '../tools/useMask';\nimport {\n DrawData,\n EditState,\n EditorMode,\n IAnnotationObject,\n EObjectStatus,\n IImageDisplayOptions,\n IAnnotsDisplayOptions,\n} from '../type';\n\nimport { OnAiAnnotationFunc } from './useAiModels';\n\ninterface IProps {\n mode: EditorMode;\n drawData: DrawData;\n manualMode?: boolean;\n setDrawData: Updater;\n setDrawDataWithHistory: Updater;\n editState: EditState;\n setEditState: Updater;\n getAnnotColor: (category: string) => string;\n clientSize: ISize;\n naturalSize: ISize;\n addObject: (\n object: IAnnotationObject,\n notActive?: boolean | undefined,\n ) => void;\n updateObject: (object: IAnnotationObject, index: number) => void;\n updateAllObject: (objectList: IAnnotationObject[]) => void;\n onAiAnnotation: OnAiAnnotationFunc;\n}\n\nconst useToolActions = ({\n mode,\n manualMode,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n editState,\n setEditState,\n clientSize,\n naturalSize,\n addObject,\n updateObject,\n updateAllObject,\n getAnnotColor,\n onAiAnnotation,\n}: IProps) => {\n const { localeText } = useLocale();\n\n // TODO\n const getColorForMaskObj = useCallback(\n (labelId: string) => {\n if (editState.annotsDisplayOptions.colorByCategory) {\n return getAnnotColor(labelId);\n }\n if (drawData.activeObjectIndex > -1) {\n return drawData.objectList[drawData.activeObjectIndex].color;\n }\n return drawData.creatingObject?.color || getAnnotColor(labelId);\n },\n [\n editState.annotsDisplayOptions.colorByCategory,\n getAnnotColor,\n drawData.activeObjectIndex,\n drawData.objectList,\n drawData.creatingObject,\n ],\n );\n\n const onChangeObjectLabel = (labelId: string) => {\n const editObject = drawData.objectList[drawData.activeObjectIndex];\n if (editObject) {\n const newObject = {\n ...drawData.objectList[drawData.activeObjectIndex],\n attributes: undefined,\n };\n newObject.labelId = labelId;\n if (editState.annotsDisplayOptions.colorByCategory) {\n newObject.color = getAnnotColor(labelId);\n }\n if (newObject.type === EObjectType.Mask && newObject.maskRle) {\n newObject.maskCanvasElement = rleToCanvas(\n newObject.maskRle,\n naturalSize,\n newObject.color,\n );\n }\n // batch editing set conf to 1\n if (drawData.isBatchEditing) {\n newObject.conf = 1;\n }\n updateObject(newObject, drawData.activeObjectIndex);\n }\n setEditState((s) => {\n s.latestLabelId = labelId;\n });\n };\n\n const onFinishCurrCreate = useCallback(\n (labelId: string) => {\n if (drawData.creatingObject?.type === EObjectType.Mask) {\n const maskRle = objectToRle(\n clientSize,\n naturalSize,\n drawData.creatingObject?.tempMaskSteps || [],\n drawData.creatingObject?.maskCanvasElement,\n );\n if (maskRle && maskRle.length > 0) {\n const color = getColorForMaskObj(labelId);\n const newObject = {\n ...drawData.objectList[drawData.activeObjectIndex],\n type: EObjectType.Mask,\n labelId,\n hidden: false,\n maskRle,\n maskCanvasElement: rleToCanvas(maskRle, naturalSize, color),\n conf: 1,\n status: EObjectStatus.Commited,\n color,\n };\n if (drawData.activeObjectIndex > -1) {\n // edit mask object\n updateObject(newObject, drawData.activeObjectIndex);\n } else {\n // add mask object\n addObject(newObject);\n }\n } else if (maskRle) {\n // Empty mask\n message.warning(localeText('DDSAnnotator.anno.mask.emptyWarning'));\n } else {\n // Other error\n message.error(\n localeText('DDSAnnotator.anno.mask.translateToRleError'),\n );\n }\n } else if (drawData.creatingObject?.type === EObjectType.Polygon) {\n const color = getAnnotColor(labelId);\n const newObject = {\n ...drawData.objectList[drawData.activeObjectIndex],\n type: EObjectType.Polygon,\n labelId,\n hidden: false,\n polygon: drawData.creatingObject?.polygon,\n conf: 1,\n status: EObjectStatus.Commited,\n color,\n };\n if (drawData.activeObjectIndex > -1) {\n // edit existing polygon\n updateObject(newObject, drawData.activeObjectIndex);\n } else {\n // add new polygon\n addObject(newObject);\n }\n } else {\n const newObject = {\n ...drawData.objectList[drawData.activeObjectIndex],\n };\n newObject.labelId = labelId;\n if (editState.annotsDisplayOptions.colorByCategory) {\n newObject.color = getAnnotColor(labelId);\n }\n // batch editing set conf to 1\n if (drawData.isBatchEditing) {\n newObject.conf = 1;\n }\n updateObject(newObject, drawData.activeObjectIndex);\n }\n setDrawData((s) => {\n s.creatingObject = undefined;\n s.prompt = {};\n s.activeObjectIndex = -1;\n if (s.selectedSubTool === ESubToolItem.PenErase) {\n s.selectedSubTool = ESubToolItem.PenAdd;\n } else if (s.selectedSubTool === ESubToolItem.BrushErase) {\n s.selectedSubTool = ESubToolItem.BrushAdd;\n }\n });\n setEditState((s) => {\n s.latestLabelId = labelId;\n });\n },\n [\n drawData.creatingObject,\n drawData.activeObjectIndex,\n drawData.objectList,\n drawData.selectedSubTool,\n ],\n );\n\n const onAcceptValidObjects = useCallback(() => {\n setDrawDataWithHistory((s) => {\n const validObjs = cloneDeep(drawData.objectList)\n .filter((obj) => {\n return obj.status !== EObjectStatus.Unchecked;\n })\n .map((obj) => {\n obj.status = EObjectStatus.Commited;\n if (obj.type !== EObjectType.Mask) {\n obj.color = getAnnotColor(obj.labelId);\n }\n return obj;\n });\n s.objectList = validObjs;\n s.isBatchEditing = false;\n s.activeObjectIndex = -1;\n s.creatingObject = undefined;\n s.prompt = {};\n });\n }, [drawData.objectList, setDrawDataWithHistory]);\n\n const onAbortBatchObjects = useCallback(() => {\n setDrawDataWithHistory((s) => {\n const validObjs = cloneDeep(drawData.objectList).filter((obj) => {\n return obj.status === EObjectStatus.Commited;\n });\n s.objectList = validObjs;\n s.isBatchEditing = false;\n s.activeObjectIndex = -1;\n s.creatingObject = undefined;\n s.prompt = {};\n });\n }, [drawData.objectList, setDrawDataWithHistory]);\n\n const isInAiSession = useCallback(() => {\n const {\n selectedTool,\n AIAnnotation,\n selectedModel,\n selectedSubTool,\n isBatchEditing,\n creatingObject,\n } = drawData;\n\n const judegInAiSession = () => {\n if (!AIAnnotation) return false;\n\n if (selectedTool === EBasicToolItem.Rectangle) {\n return isBatchEditing;\n }\n\n if (selectedTool === EBasicToolItem.Polygon) {\n return creatingObject;\n }\n\n if (selectedTool === EBasicToolItem.Skeleton) {\n return isBatchEditing;\n }\n\n if (selectedTool === EBasicToolItem.Mask) {\n const currModel = selectedModel[selectedTool];\n if (currModel === EnumModelType.IVP) {\n return isBatchEditing;\n }\n\n if (\n currModel === EnumModelType.SegmentEverything &&\n selectedSubTool === ESubToolItem.AutoSegmentEverything\n ) {\n return isBatchEditing;\n }\n\n if (currModel === EnumModelType.SegmentByMask) {\n return creatingObject;\n }\n\n return false;\n }\n return false;\n };\n\n const result = judegInAiSession();\n if (result) {\n message.warning(localeText('DDSAnnotator.smart.tip.limitJump'));\n }\n return result;\n }, [\n drawData.selectedTool,\n drawData.selectedModel,\n drawData.AIAnnotation,\n drawData.selectedSubTool,\n drawData.isBatchEditing,\n drawData.creatingObject,\n ]);\n\n const selectTool = useCallback(\n (tool: EBasicToolItem) => {\n if (\n mode !== EditorMode.Edit ||\n (tool === drawData.selectedTool && !drawData.AIAnnotation)\n )\n return;\n\n if (isInAiSession()) return;\n\n setDrawData((s) => {\n s.selectedTool = tool;\n s.isJustCreated = false;\n s.AIAnnotation = false;\n s.activeObjectIndex = -1;\n s.creatingObject = undefined;\n s.editingAttribute = undefined;\n s.prompt = {};\n });\n },\n [\n mode,\n drawData.selectedTool,\n drawData.isBatchEditing,\n drawData.AIAnnotation,\n isInAiSession,\n ],\n );\n\n const selectSubTool = useCallback(\n (subtool: ESubToolItem) => {\n const {\n selectedTool,\n selectedModel,\n selectedSubTool,\n AIAnnotation,\n isBatchEditing,\n } = drawData;\n\n if (mode !== EditorMode.Edit || subtool === selectedSubTool) return;\n\n // TODO: check subtool belong to current tool & model\n\n if (\n selectedTool === EBasicToolItem.Mask &&\n AIAnnotation &&\n selectedModel[selectedTool] === EnumModelType.SegmentEverything &&\n isBatchEditing\n ) {\n return;\n }\n\n setDrawData((s) => {\n s.selectedSubTool = subtool;\n });\n },\n [\n mode,\n drawData.selectedTool,\n drawData.AIAnnotation,\n drawData.selectedModel,\n drawData.isBatchEditing,\n drawData.selectedSubTool,\n isInAiSession,\n ],\n );\n\n const forceChangeTool = useCallback(\n (tool: EBasicToolItem, subtool: ESubToolItem) => {\n setDrawData((s) => {\n s.selectedTool = tool;\n s.selectedSubTool = subtool;\n });\n },\n [],\n );\n\n const onExitAIAnnotation = useCallback(() => {\n setDrawDataWithHistory((s) => {\n s.objectList = s.objectList.filter(\n (obj) => obj.status === EObjectStatus.Commited,\n );\n s.AIAnnotation = false;\n s.isBatchEditing = false;\n s.creatingObject = undefined;\n s.prompt = {};\n });\n }, [setDrawDataWithHistory]);\n\n const setBrushSize = useCallback(\n (size: number) => {\n if (mode !== EditorMode.Edit) return;\n setDrawData((s) => {\n s.brushSize = size;\n });\n },\n [mode],\n );\n\n const setPointResolution = useCallback(\n (value: number) => {\n if (mode !== EditorMode.Edit) return;\n setDrawData((s) => {\n s.pointResolution = value;\n });\n },\n [mode],\n );\n\n const onChangePointResolution = useCallback(\n (value: number, update?: boolean) => {\n setPointResolution(value);\n if (\n update &&\n drawData.creatingObject &&\n drawData.creatingObject.type === EObjectType.Polygon &&\n drawData.prompt.promptsQueue &&\n drawData.prompt.promptsQueue.length > 0\n ) {\n const updateDrawData: DrawData = {\n ...drawData,\n pointResolution: value,\n };\n onAiAnnotation({\n type: EObjectType.Polygon,\n drawData: updateDrawData,\n promptsQueue: drawData.prompt.promptsQueue,\n });\n }\n },\n [drawData.creatingObject, drawData.prompt],\n );\n\n const displayAIModeUnavailableModal = () => {\n Modal.info({\n centered: true,\n closable: true,\n title: localeText('DDSAnnotator.smart.infoModal.title'),\n content: localeText('DDSAnnotator.smart.infoModal.content'),\n okText: localeText('DDSAnnotator.smart.infoModal.action'),\n onOk: () => {\n window.open('https://deepdataspace.com', '_blank');\n },\n });\n };\n\n const activeAIAnnotation = useCallback(\n (active: boolean) => {\n if (mode !== EditorMode.Edit || manualMode) return;\n\n if (isInAiSession()) return;\n\n setDrawData((s) => {\n s.AIAnnotation = active;\n });\n },\n [mode, manualMode, isInAiSession],\n );\n\n const onChangeSkeletonConf = useCallback(\n (range: [number, number]) => {\n setDrawDataWithHistory((s) => {\n const updateObjects = cloneDeep(drawData.objectList).map((obj) => {\n if (obj.status === EObjectStatus.Commited) {\n return obj;\n }\n if (obj.conf === undefined) {\n obj.status = EObjectStatus.Unchecked;\n return obj;\n }\n obj.status =\n obj.conf < range[0] || obj.conf > range[1]\n ? EObjectStatus.Unchecked\n : EObjectStatus.Checked;\n return obj;\n });\n s.objectList = updateObjects;\n });\n },\n [drawData.objectList, setDrawDataWithHistory],\n );\n\n const onChangeLimitConf = useCallback(\n (value: number) => {\n setDrawDataWithHistory((s) => {\n const updateObjects = cloneDeep(drawData.objectList).map((obj) => {\n if (obj.status === EObjectStatus.Commited) {\n return obj;\n }\n obj.status =\n obj.conf && obj.conf >= value\n ? EObjectStatus.Checked\n : EObjectStatus.Unchecked;\n return obj;\n });\n s.objectList = updateObjects;\n const count = updateObjects.filter(\n (item) => item.status === EObjectStatus.Checked,\n ).length;\n message.success(\n localeText(`DDSAnnotator.smart.tip.annotationApplied`, {\n count,\n }),\n );\n });\n },\n [drawData.objectList, setDrawDataWithHistory],\n );\n\n const onChangeImageDisplayOpts = useCallback(\n (value: IImageDisplayOptions) => {\n setEditState((s) => {\n s.imageDisplayOptions = value;\n });\n },\n [],\n );\n\n const onChangeAnnotsDisplayOpts = useCallback(\n (value: IAnnotsDisplayOptions) => {\n setEditState((s) => {\n s.annotsDisplayOptions = value;\n });\n },\n [],\n );\n\n const onChangeColorMode = useCallback(() => {\n if (!drawData.objectList || !drawData.objectList.length) return;\n const newObjectList = cloneDeep(drawData.objectList).map((item) => {\n const color = getAnnotColor(item.labelId);\n if (\n item.type === EObjectType.Mask &&\n item.maskRle &&\n item.maskRle.length > 0\n ) {\n return {\n ...item,\n color,\n maskCanvasElement: rleToCanvas(item.maskRle, naturalSize, color),\n };\n }\n return { ...item, color };\n });\n updateAllObject(newObjectList);\n }, [drawData.objectList, getAnnotColor]);\n\n const checkChangeModel = useCallback(\n (modelKey: EnumModelType) => {\n const { selectedTool } = drawData;\n\n const currModels = TOOL_MODELS_MAP[selectedTool];\n if (!currModels.includes(modelKey)) return false;\n\n if (isInAiSession()) return false;\n\n return true;\n },\n [TOOL_MODELS_MAP, drawData.selectedTool, isInAiSession],\n );\n\n const onSelectModel = useCallback(\n (modelKey: EnumModelType) => {\n if (!checkChangeModel(modelKey)) {\n return;\n }\n\n setDrawData((s) => {\n s.selectedModel[s.selectedTool] = modelKey;\n });\n },\n [checkChangeModel],\n );\n\n useEffect(() => {\n setDrawData((s) => {\n if (s.AIAnnotation) {\n const model = s.selectedModel[s.selectedTool];\n switch (s.selectedTool) {\n case EBasicToolItem.Rectangle:\n if (model === EnumModelType.IVP) {\n s.selectedSubTool = ESubToolItem.PositiveVisualPrompt;\n } else {\n s.selectedSubTool = ESubToolItem.PenAdd; // TODO\n }\n break;\n case EBasicToolItem.Mask:\n if (model === EnumModelType.IVP) {\n s.selectedSubTool = ESubToolItem.PositiveVisualPrompt;\n } else if (model === EnumModelType.SegmentEverything) {\n const isAvailbale =\n (s.objectList.length === 0 && !s.creatingObject) ||\n s.isBatchEditing;\n s.selectedSubTool = isAvailbale\n ? ESubToolItem.AutoSegmentEverything\n : ESubToolItem.PenAdd;\n } else {\n s.selectedSubTool = ESubToolItem.AutoSegmentByBox;\n }\n break;\n case EBasicToolItem.Polygon:\n s.selectedSubTool = ESubToolItem.AutoSegmentByBox;\n break;\n case EBasicToolItem.Skeleton:\n case EBasicToolItem.Drag:\n s.selectedSubTool = ESubToolItem.PenAdd;\n break;\n }\n } else {\n s.selectedSubTool = ESubToolItem.PenAdd;\n }\n });\n }, [drawData.selectedTool, drawData.AIAnnotation, drawData.selectedModel]);\n\n return {\n onChangeObjectLabel,\n onFinishCurrCreate,\n onAcceptValidObjects,\n onAbortBatchObjects,\n selectTool,\n selectSubTool,\n forceChangeTool,\n onExitAIAnnotation,\n setBrushSize,\n activeAIAnnotation,\n displayAIModeUnavailableModal,\n onChangeSkeletonConf,\n onChangeLimitConf,\n onChangeImageDisplayOpts,\n onChangeAnnotsDisplayOpts,\n onChangeColorMode,\n onChangePointResolution,\n onSelectModel,\n isInAiSession,\n };\n};\n\nexport default useToolActions;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgDocs = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 22 22\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#docs_svg__a)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.666 5.5a.917.917 0 1 1 0 1.833H7.333a.917.917 0 1 1 0-1.833h7.333Zm7.065 16.231a.916.916 0 0 1-1.296 0l-2.206-2.206a4.086 4.086 0 0 1-4.48-.053 4.125 4.125 0 1 1 6.417-3.43 4.085 4.085 0 0 1-.641 2.187l2.206 2.206a.917.917 0 0 1 0 1.296Zm-5.69-3.398a2.292 2.292 0 1 0 0-4.583 2.292 2.292 0 0 0 0 4.583Zm-4.125 1.834h-5.5a2.75 2.75 0 0 1-2.75-2.75V4.583a2.75 2.75 0 0 1 2.75-2.75h11a.917.917 0 0 1 .917.917v7.333a.917.917 0 0 0 1.833 0V2.75A2.75 2.75 0 0 0 17.416 0h-11a4.589 4.589 0 0 0-4.583 4.583v12.834A4.589 4.589 0 0 0 6.416 22h5.5a.917.917 0 1 0 0-1.833Z\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"docs_svg__a\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0 0h22v22H0z\" }))));\nexport { SvgDocs as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjIgMjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTQuNjY2IDUuNWEuOTE3LjkxNyAwIDEgMSAwIDEuODMzSDcuMzMzYS45MTcuOTE3IDAgMSAxIDAtMS44MzNoNy4zMzNabTcuMDY1IDE2LjIzMWEuOTE2LjkxNiAwIDAgMS0xLjI5NiAwbC0yLjIwNi0yLjIwNmE0LjA4NiA0LjA4NiAwIDAgMS00LjQ4LS4wNTMgNC4xMjUgNC4xMjUgMCAxIDEgNi40MTctMy40MyA0LjA4NSA0LjA4NSAwIDAgMS0uNjQxIDIuMTg3bDIuMjA2IDIuMjA2YS45MTcuOTE3IDAgMCAxIDAgMS4yOTZabS01LjY5LTMuMzk4YTIuMjkyIDIuMjkyIDAgMSAwIDAtNC41ODMgMi4yOTIgMi4yOTIgMCAwIDAgMCA0LjU4M1ptLTQuMTI1IDEuODM0aC01LjVhMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NVY0LjU4M2EyLjc1IDIuNzUgMCAwIDEgMi43NS0yLjc1aDExYS45MTcuOTE3IDAgMCAxIC45MTcuOTE3djcuMzMzYS45MTcuOTE3IDAgMCAwIDEuODMzIDBWMi43NUEyLjc1IDIuNzUgMCAwIDAgMTcuNDE2IDBoLTExYTQuNTg5IDQuNTg5IDAgMCAwLTQuNTgzIDQuNTgzdjEyLjgzNEE0LjU4OSA0LjU4OSAwIDAgMCA2LjQxNiAyMmg1LjVhLjkxNy45MTcgMCAxIDAgMC0xLjgzM1oiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBkPSJNMCAwaDIydjIySDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgLogo = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 33 33\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"m15.5 1 13.423 7.75v15.5L15.5 32 2.077 24.25V8.75L15.5 1Z\", fill: \"#fff\" }), /* @__PURE__ */ React.createElement(\"path\", { fill: \"url(#logo_svg__a)\", d: \"M0 0h33v33H0z\" }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"pattern\", { id: \"logo_svg__a\", patternContentUnits: \"objectBoundingBox\", width: 1, height: 1 }, /* @__PURE__ */ React.createElement(\"use\", { xlinkHref: \"#logo_svg__b\", transform: \"scale(.00417)\" })), /* @__PURE__ */ React.createElement(\"image\", { id: \"logo_svg__b\", width: 240, height: 240, xlinkHref: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAADwCAYAAAA+VemSAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABLHSURBVHgB7d1fVhw3FgbwKxX2jIE47QWYFCtIWMHACoLBeQ5eAbACmhUAK8B5DtidFcAOcFbgMlmAexyMk4GSRqqmCSYBd3dJKl3V93vKOfPnnND9dd0rXakEQXLy5U+LOtNbmnQhS7ld9B4VBEkSBMnIl3VHyU9bJPTGZ/+Blt0P6o+9fu9JnyApCHAi5lZscEsTXNG5479SaK23f3s1+5IgGQgwc7ZcVlLtm08yH/F/YsvqJZTVaUCAmTLBzU2fu2/63EWazEv0x/whwMwM+tw/1kmoLtXXN/3x7umrR9sELCHAjOSr5+uKbHDv7HMnhf6YKQSYgRvbQovkkSDRE6XYRFnNBwIcMQd97qTQHzOBAEforz733m0h31BWM4AAR+bpytmaELTTYHBvKzSVm78dPu4RRAcBjkSoPrcGlNURQoAbVpXL2cdd81H8SBxo2ZWKfkKQ44AANySSPndS6I8jgQA3YILxx1gVsnzwrOg9fEPQCAQ4oPyHs++0kjsR97mTQn/cEAQ4gDuP+aXG9McYywwLAfbM4/hjrNAfB4QAe5JQnzupN6asfoay2i8E2LEGxx9jhf7YIwTYEcfH/FJTmP74Jfpj9xBgB1rY504K/bFjCHANDMYfo4Rji+4gwBMY9LnK7OfSMkEd6I9rQoDHwHz8MVYoq2tAgEdUHfMjsdXibSHfcGxxAgjwF6DPDQ5l9RgQ4DuwO+aXGrxNYiQI8C3oc6OC/vgLEOAbMP4YLbxN4g4IMCV9zC816I9vaXWAW3PMLzU4tnittQHG+CN76I+phQG2fW4py10hxLcEKWj1scXWBBjH/JLXyv44+QBjW6hVCtJi7/TV9C61RNIBRp/bWq3pj5MMMMYf4UryZXVSAbZ9rsrKLsYf4TNa7Eol9lIMchIBRp8LI0iyrGYf4KerH5eFph2MP8KI7FjmC/M0PqYEsA0w+lyoKYn+mF2AMf4ITjE/tsgqwHMrNrjoc8E5tv0xiwDjmB8Ewu7YYtQBxvgjNIRNfxxlgNHnQgT6pj/ejf3YYnQBTmT8sW9+fLal+Qet5LoWOifgKur+OJoAp3PMT+/JcqZb9ES1qonpsDQIEseiFC9iK6sbD3AqfW71AUu1Wfw8++af/vPq31PqIzyN2YuqP24swKmMP5rgFkKUL4qDr45H+e/nK2drmuQWgsxaNMcWGwlw9ZYDQTv8+1y1Jy9nd4fl8qhQViej8f44aIBTGX80f7SeKGXtt+tdvSTttSb6joCzxsrqIAFO5YlT9bmi3B61XB4VyupENHBs0WuAEzrmV20LnR7Meut5qh+5qcs1s/e4RcBZ0LLaW4ATOuZnyqPpzXH73EkNqpVL80MhvyfgrJDlg2dF7+Eb8sh5gBM95he8x0FZnQyv3x1nAW7B+GMjo3Vzz3/voqxOgKe3STgJcMuO+QXfOsC2UzKcf3dqBbjlx/yCvxEAZXUynB1brBXgudWPmiB4f3xVVq+bf8TFBnwVp4cz81STJKhrTWXqqGojAjk9+KprfjQWTGP1E0GrIcBu5CRU11Qkb+2YKAVgn/inh7NrUuhNgtZCgN3KhRD736yev7YLTxRAcTC7a57G80KLgqB1EGAPzB74simr35on8n6IINunsVBiCSFuHwTYr6v++Nz73jhC3E5JBtgsrXsdXxuT6Y/1Toj+GCH+nD18Iql8lvJiX1IBtofrpVBL7w5nFmxfGNkHV/XHvsvqKsSZMl9aYnlRuQvV90DrF+8Op5eKw8e9arEv0XWCVAJsD9dvi/LRwvCo3/UqrfkgI/vg1qr+2OO2k73Wx6xOR32boid/fQ9uTTvZ78O7V9PzEX4faklhkGOkQYpIhx+8TnPZ1XC7oEYtMM6lc5Ec3XQyyME2wJMcro90priQUj+76zK8OvLl9x2VPXxLCU9sCU2/Cqk2JrlkoeHvQ2sDXPtwff7890Wtsv2IZor7JsRLPkI8t2IqD5HkaSZnlyw0NGPewgCb/maSS+Tukj8/24jo4nVvIf5m5fxtWgcgPr972xXbZgmV/Rjob9WeWehqO8CsItoZYJcfmp1istsukaxWd5QSR/kPZ84vuBOk9igB19+Dw9kNHzek2O9XRN+HkUT9BB73zuU6Irp4vfhQ/m/B5ftquffCIb8HQ4P+WJ2Qv79Z+k9gralHl1MFBRDRNkP+dfav1+RQYX8MFMthhr9tD4Zwdc79iBj84MVdQgu9YUcRQ53wsez+YdNllL1PzPX4pcx0j3ixlwk6b5vuY4Nrtt6O7HeOyyUVnBax7C0Gdp/vmAJp+OL1viml512W0ubzek+RP1V83b19n4buc2vdgf68OhgQ6ISPVZXVdiyzmbK681j+y+32j6JfKF796/HHQOG1wbUTcSr7+JbrZYwcRymvRxE7ZnGGArguq00/RiGZL5XLHyspdEyHPIaqPteWy0XAiwJtW6bk+Ym9iIHzZYx8Z6HNH/5x9vAk6A0Yg6ts5m2ZR4Go6rZPR2RcAb7aFlpoos+1B0tSuIwxlUvtgtyCf5MdAlFa2BLX96+3s174ajvpPTWszvjjpK7WM3bMFzaW2XBcaneD6Y8vToL2x4OrbBYC9Ma2F14jB4rBj0CTxwzt+OPmu1cz34Xvc8uTiMLrTGoH+r0f1btpcID+zwXfJbUQ5O49SbqpANvxR7st5O8Fcbflq+frgwUq3n3ufVK+FzroGxTmVs9e+jzVYsroJy7K6LkV+4UO1/s1VC4vlrLcNX3utxQvlNBfMLwB422IstpeHuBz+KMz9e8m9qJr0ntCTS+GK5c/5cNBjMjD60wbLrXLQ90QKcuLDV/3camy5NW/mV7X16GD2wZ97vmO/ZwTeyvmF7XpVkrbH594vcrGlLiilH7uo5IiJx769l6yUL0u90GMutp2rWxn+AYFX09ju7BlvsDPyD0OJeHgTHOY02OLg34+3QWqUbT1XuhqLPPp6kcvZengC+z8DG78J2O03vRxIcFNHA8c+NTmi91z06++9lVSy/KyS25L6bgDLGjb5yhk1eealX4b3Lb1uffBmxlsSe0hxNXQhHb7FA41+z0u80PYOz2Y6ZIntlKq+ly84PxvEGCrCrH7159IdWkXcpw9hTv07+gCXN2WUUpvb0i0q8u2Umpzn3sfBHhI6J38+adFcsjHUzg2QisvLze3JfPTlbM3bV1dHhUCfIPSyvlrQa+ewkmyT18ffW91H5U8P2nLMEYdCPDnOjrT++RQtTcc8PhhSPbpS44NwosV5lFFficWbYe+m8rHfVTmyZ7c2/F8PX1LWfYQ3tHFfSul0oMXlAm1FPSVoUI7ve0jUxc9SoyPp2+1YIWyeSwsSmg7GBH4bqrOY/nQ2VO4WswSUb2zuLa+4x+l6mYVLFiNjVUPbEu2YHc3C1p3uu9a0q+Ujl/cXjz/KTcleYrvb/KO5SLWdZCF3vQYZKdP4UgvlJuI+QF1+vSt3hCIvncirFehr99t5Ou2SPMUJkdKoQpKhcqOyZHBth0mrCbFfhvp5m2RHlasO66GOzIpC0pAtfrscHDD9bZd2ySzD1wF2a5YOw6ys4P0F1mTl8m5VJAj1U2ROJhQS3KDHDeD7GTrSQp3F8olQCvlbDGu6n2hlmQnsaobI0vlYsg+D3VVLQvCYSugxX8IasEo5SiyC4YXyvmhSTlpBZ6ufljGynN9CPAIlJ7KCZwSJJO7ZL0JCPAoMN7nHv6mTiQe4KmCnFBPKBWi+at57DuaTC2OtsQBPIFHYPY+v6Z0RHCzxRTC6wgCDMGVmcb1OI4gwBCc0BmewI4gwACMIcAQnkYJ7QoCDA3AFbGuIMAAjCHAAIwhwACMIcAAjCHAAIwhwKE8KLHyCs4hwKFcYO8T3EOAARhDgAEYQ4ABGEOAARhDgAEYQ4ABGEOAYSyCRE4QDQQYgDEEGIAxBBiAMQQYgDEEuEXwkrb0IMAAjCHAAIwhwACMIcAjwVleiBMCPAIdxQvBAP4OAQZgDAEGYAwBBmAMAQZgDAEGYAwBBmAMAQZgDAEOpJQiJwDHEGAAxhBgGI/GWGlMog5wJrOCIC4y+5ogGngCAzCGAAMwhgADMIYAAzCGAAMwhgADMIYAAzCGALfJgzKOIQypMAziCALcJhdxTFEJwjCIKwgwAGNxB1hfoNQCuEfUAVaUvZ5b+bTVWX6PIFcy/B3gM/GX0EJ1H2cPT56unK1R201FsggF0eDSA+dCiP251Y9v8YY9gL9wW8TKVabemiDvI8gAfFeh10yQT2x/TAAtxnkbqWP7Y1tW39UfF71HBQEkLIV94Ko//mb1/AhlNbRNMoMcmvQi+mNomxQnsWx/fDS3cr5B4JwgnRNEI9VRypyE3rH9MQEkLPVZ6JwiIUjkBOAYDjPAWDSJgiAaCDCMR5X/JYgGAgzjEbIgiAYCDGORUrwhiAYCDGPpX/5RO8BaYyvKFQQYRmZW0o/7vSd9qkvEszvAHQIMIxNa/UQ15T+cfUfgTK0AS61fCI1thTYwT9+ieDX7kmoqlcqp5WwlI4V6QQ7UCrD9QN+9mp6XQm8iyGkTpVgiB4SSi9RS9kfQPvTeHU4vFQdfHZMDTkro4mB2Vyj7AevaJVakOq0+ICFo29nRzEz8h9qnb365tkX5aMFFFXOTsx7YfsCnh7NrspTztkSgtHSqk07ML9grs0nuhdZ7pwczXXKg+hHU1KoeWBD1TCYWTg++6hY9UX8B8Bbni1g2yLZESLI/5n7BnpZjBtiE93DW2amuUpaL1BJXfe7Su8OZZz4vlvC2Cj3sj23pQLaESEc7Ltgz6xouw1v9X5JowxVIffu3c9nn3sf7NpItHWwJkWB/nOQFe9VCi3lynJp1DXLo6eqH5eT3f83DSpbT867/dvcJsg/8WX+c3mp1Qhfs6b1qocXDk0PS1DolqiqXzXfbV597n6CDHFV/bLed0uuPv3jBXsyun7qmZPbxBbR/E3vlESVm+HeryuWGLlBsZBLL9sdC/blw1R+nhNsFe9X2hvkCzvvs1xLsfYd97nyIPvc+jY1SFr0n/av+eD61/pjJBXsvh9sb5NHcysettHpfvRe6z73PFDXsqvRYy1c/9LSe2tEiqZMqtj9enFs537OxjoHt14Qot0M8Oezcs1LUpQRUfzepNoufZ6M6TikoMnnVL8mtxILshBTSbE08OqYJ5cu6E2qRxVYeSqoj7k9f2+eaH7wXTZfKd4nuNNKgP056LLMx4cKrO6Use8zD+9f4Y6ThtaI8Tnhz2wlB5kdn5/tmMe9b4uvloM8Nvy00rsZ74Ptc98crZ8coq+Nnn7w6+/Sa65ZRyPUBV6Lrge8z9/z3rlDZj20Nct0e2Cfb89qymemTty+13nR9UigEVjdy2JIG/XF8THgX7YIVw/D2h+OPHMNrsXoC32R/8XWmTLnWnuNpsT2Bbcms5Cezz6vZvYeqKpdL8YL7K2jZ3ok1OLY4s4BrfZrxdPXjspLnJ9zCKzT92vT4o0tsn8C32f6YtEz6uFoMT2BbLutMbzFcqLLjj9uxTFC5ksytlKmOZX5GXzR2G4gtl+dWznfsq1v5hTeu8UeXknkC32RH+HQpXye4Wl1orbd/C7jgMuhz/1gnUZpSWbC6TiiVPvc+SQZ4KOGxzEJTufnb4eMeeXS1urzPbaIq9vFHl5IOsFXN5E5driXaH9sTRduunzCDFX69z7PPVXu+T1jFJPkAD1VBzsqu+Vf+kVKjZVcq+qlukDlvCw363JnoRx9da02Ah/LVD8sJHlu0avXH+er5uiLVZdnnMht/dKl1AR5KuT+W5YNnRe/hSOdWbZ9bynKX2xRV1eeS3iwOZ7yuA8SutQG2ki6rv9Afc+9z5eXsbtvK5X/S6gAPDYJ8afYI5feUGtMfn756dH33GOdtIfK0aMcZAnxD0ttOpj+2/yAE7aDPTQcC/A/afmwxImyP+YWCAN8h8f44duhzR4QAf0Ebjy02qQ3jjy4hwCPCbZl+2WN+QqoN9LnjQYDH1IZji4ElecwvFAR4AuiPXWnn+KNLCHANCR9b9Ap9rjsIsAPoj0fTpmN+oSDAjlxNc20QyWTfg1sDtoU8QYAdQ398G/pcnxBgT9peVmP8MQwE2LP8+dmGVnK9LUHGMb+wEOAAWlJWo89tAAIcEOMzuPcyX6KeKOUmtoXCQ4AbkEp/jD63eQhwg67GMu22E7eD9Rh/jAQC3DB2/bF9mx/63GggwJGo+mOpj2ItqzH+GCcEODKx9ccYf4wbAhyhfPl9R01NbTR8bBF9LgMIcMSa648x/sgFAsxA/vz3Ra2yfd9lddXnSrVZ/Dw70qXw0DwEmBFf/TH6XL4QYGYcH1vE+CNzCDBTDvrjl7Kc3kRweUOAmRu3rMb4Y1oQ4ER86dhi1edqtY23HKQFAU7IHWU1+tyEIcAJGh5bNPu5fRzzS9v/AWiP/NYPzz1QAAAAAElFTkSuQmCC\" })));\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzMgMzMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxwYXRoIGQ9Im0xNS41IDEgMTMuNDIzIDcuNzV2MTUuNUwxNS41IDMyIDIuMDc3IDI0LjI1VjguNzVMMTUuNSAxWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGZpbGw9InVybCgjYSkiIGQ9Ik0wIDBoMzN2MzNIMHoiLz48ZGVmcz48cGF0dGVybiBpZD0iYSIgcGF0dGVybkNvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjx1c2UgeGxpbms6aHJlZj0iI2IiIHRyYW5zZm9ybT0ic2NhbGUoLjAwNDE3KSIvPjwvcGF0dGVybj48aW1hZ2UgaWQ9ImIiIHdpZHRoPSIyNDAiIGhlaWdodD0iMjQwIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVBBQUFBRHdDQVlBQUFBK1ZlbVNBQUFBQ1hCSVdYTUFBQ0U0QUFBaE9BRkZsakZnQUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFCTEhTVVJCVkhnQjdkMWZWaHczRmdid0t4WDJqSUU0N1FXWUZDdElXTUhBQ29MQmVRNWVBYkFDbWhVQUs4QjVEdGlkRmNBT2NGYmdNbG1BZXh5TWs0R1NScXFtQ1NZQmQzZEpLbDNWOTN2S09mUG5uTkQ5ZGQwclhha0VRWEx5NVUrTE90TmJtblFoUzdsZDlCNFZCRWtTQk1uSWwzVkh5VTliSlBUR1ovK0JsdDBQNm8rOWZ1OUpueUFwQ0hBaTVsWnNjRXNUWE5HNTQ3OVNhSzIzZjNzMSs1SWdHUWd3YzdaY1ZsTHRtMDh5SC9GL1lzdnFKWlRWYVVDQW1UTEJ6VTJmdTIvNjNFV2F6RXYweC93aHdNd00rdHcvMWttb0x0WFhOLzN4N3VtclI5c0VMQ0hBak9TcjUrdUtiSER2N0hNbmhmNllLUVNZZ1J2YlFvdmtrU0RSRTZYWVJGbk5Cd0ljTVFkOTdxVFFIek9CQUVmb3J6NzMzbTBoMzFCV000QUFSK2JweXRtYUVMVFRZSEJ2S3pTVm03OGRQdTRSUkFjQmprU29QcmNHbE5VUlFvQWJWcFhMMmNkZDgxSDhTQnhvMlpXS2ZrS1E0NEFBTnlTU1BuZFM2SThqZ1FBM1lJTHh4MWdWc256d3JPZzlmRVBRQ0FRNG9QeUhzKyswa2pzUjk3bVRRbi9jRUFRNGdEdVArYVhHOU1jWXl3d0xBZmJNNC9oanJOQWZCNFFBZTVKUW56dXBONmFzZm9heTJpOEUyTEVHeHg5amhmN1lJd1RZRWNmSC9GSlRtUDc0SmZwajl4QmdCMXJZNTA0Sy9iRmpDSEFORE1ZZm80UmppKzRnd0JNWTlMbks3T2ZTTWtFZDZJOXJRb0RId0h6OE1WWW9xMnRBZ0VkVUhmTWpzZFhpYlNIZmNHeHhBZ2p3RjZEUERRNWw5UmdRNER1d08rYVhHcnhOWWlRSThDM29jNk9DL3ZnTEVPQWJNUDRZTGJ4TjRnNElNQ1Y5ekM4MTZJOXZhWFdBVzNQTUx6VTR0bml0dFFIRytDTjc2SStwaFFHMmZXNHB5MTBoeExjRUtXajFzY1hXQkJqSC9KTFh5djQ0K1FCalc2aFZDdEppNy9UVjlDNjFSTklCUnAvYldxM3BqNU1NTU1ZZjRVcnlaWFZTQWJaOXJzcktMc1lmNFROYTdFb2w5bElNY2hJQlJwOExJMGl5ckdZZjRLZXJINWVGcGgyTVA4S0k3RmptQy9NMFBxWUVzQTB3K2x5b0tZbittRjJBTWY0SVRqRS90c2dxd0hNck5yam9jOEU1dHYweGl3RGptQjhFd3U3WVl0UUJ4dmdqTklSTmZ4eGxnTkhuUWdUNnBqL2VqZjNZWW5RQlRtVDhzVzkrZkxhbCtRZXQ1TG9XT2lmZ0t1citPSm9BcDNQTVQrL0pjcVpiOUVTMXFvbnBzRFFJRXNlaUZDOWlLNnNiRDNBcWZXNzFBVXUxV2Z3OCsrYWYvdlBxMzFQcUl6eU4yWXVxUDI0c3dLbU1QNXJnRmtLVUw0cURyNDVIK2UvbksyZHJtdVFXZ3N4YU5NY1dHd2x3OVpZRFFUdjgrMXkxSnk5bmQ0Zmw4cWhRVmllajhmNDRhSUJUR1g4MGY3U2VLR1h0dCt0ZHZTVHR0U2I2am9DenhzcnFJQUZPNVlsVDlibWkzQjYxWEI0Vnl1cEVOSEJzMFd1QUV6cm1WMjBMblI3TWV1dDVxaCs1cWNzMXMvZTRSY0JaMExMYVc0QVRPdVpueXFQcHpYSDczRWtOcXBWTDgwTWh2eWZnckpEbGcyZEY3K0ViOHNoNWdCTTk1aGU4eDBGWm5ReXYzeDFuQVc3QitHTWpvM1Z6ejMvdm9xeE9nS2UzU1RnSmNNdU8rUVhmT3NDMlV6S2NmM2RxQmJqbHgveUN2eEVBWlhVeW5CMWJyQlhndWRXUG1pQjRmM3hWVnErYmY4VEZCbndWcDRjejgxU1RKS2hyVFdYcXFHb2pBams5K0twcmZqUVdUR1AxRTBHckljQnU1Q1JVMTFRa2IrMllLQVZnbi9pbmg3TnJVdWhOZ3RaQ2dOM0toUkQ3MzZ5ZXY3WUxUeFJBY1RDN2E1N0c4MEtMZ3FCMUVHQVB6Qjc0c2ltcjM1b244bjZJSU51bnNWQmlDU0Z1SHdUWXI2disrTno3M2poQzNFNUpCdGdzclhzZFh4dVQ2WS8xVG9qK0dDSCtuRDE4SXFsOGx2SmlYMUlCdG9mcnBWQkw3dzVuRm14ZkdOa0hWL1hIdnN2cUtzU1pNbDlhWW5sUnVRdlY5MERyRis4T3A1ZUt3OGU5YXJFdjBYV0NWQUpzRDlkdmkvTFJ3dkNvMy9VcXJma2dJL3ZnMXFyKzJPTzJrNzNXeDZ4T1IzMmJvaWQvZlE5dVRUdlo3OE83VjlQekVYNGZha2xoa0dPa1FZcEloeCs4VG5QWjFYQzdvRVl0TU02bGM1RWMzWFF5eU1FMndKTWNybzkwcHJpUVVqKzc2eks4T3ZMbDl4MlZQWHhMQ1U5c0NVMi9DcWsySnJsa29lSHZRMnNEWFB0d2ZmNzg5MFd0c3YySVpvcjdKc1JMUGtJOHQySXFENUhrYVNabmx5dzBOR1Bld2dDYi9tYVNTK1R1a2o4LzI0am80blZ2SWY1bTVmeHRXZ2NnUHI5NzJ4WGJaZ21WL1Jqb2I5V2VXZWhxTzhDc0l0b1pZSmNmbXAxaXN0c3VrYXhXZDVRU1Iva1BaODR2dUJPazlpZ0IxOStEdzlrTkh6ZWsyTzlYUk4rSGtVVDlCQjczenVVNklycDR2ZmhRL20vQjVmdHF1ZmZDSWI4SFE0UCtXSjJRdjc5WitrOWdyYWxIbDFNRkJSRFJOa1ArZGZhdjErUlFZWDhNRk10aGhyOXRENFp3ZGM3OWlCajg0TVZkUWd1OVlVY1JRNTN3c2V6K1lkTmxsTDFQelBYNHBjeDBqM2l4bHdrNmI1dnVZNE5ydHQ2TzdIZU95eVVWbkJheDdDMEdkcC92bUFKcCtPTDF2aW1sNTEyVzB1YnplaytSUDFWODNiMTluNGJ1YzJ2ZGdmNjhPaGdRNklTUFZaWFZkaXl6bWJLNjgxait5KzMyajZKZktGNzk2L0hIUU9HMXdiVVRjU3I3K0piclpZd2NSeW12UnhFN1puR0dBcmd1cTAwL1JpR1pMNVhMSHlzcGRFeUhQSWFxUHRlV3kwWEFpd0p0VzZiaytZbTlpSUh6Wll4OFo2SE5ILzV4OXZBazZBMFlnNnRzNW0yWlI0R282clpQUjJSY0FiN2FGbHBvb3MrMUIwdFN1SXd4bFV2dGd0eUNmNU1kQWxGYTJCTFg5NiszczE3NGFqdnBQVFdzenZqanBLN1dNM2JNRnphVzJYQmNhbmVENlk4dlRvTDJ4NE9yYkJZQzlNYTJGMTRqQjRyQmowQ1R4d3p0K09QbXUxY3ozNFh2Yzh1VGlNTHJUR29IK3IwZjFidHBjSUQrendYZkpiVVE1TzQ5U2JxcEFOdnhSN3N0NU84RmNiZmxxK2ZyZ3dVcTNuM3VmVksrRnpyb0d4VG1WczllK2p6Vllzcm9KeTdLNkxrVis0VU8xL3MxVkM0dmxyTGNOWDN1dHhRdmxOQmZNTHdCNDIySXN0cGVIdUJ6K0tNejllOG05cUpyMG50Q1RTK0dLNWMvNWNOQmpNakQ2MHdiTHJYTFE5MFFLY3VMRFYvM2NhbXk1TlcvbVY3WDE2R0Qyd1o5N3ZtTy9ad1RleXZtRjdYcFZrcmJINTk0dmNyR2xMaWlsSDd1bzVJaUp4NzY5bDZ5VUwwdTkwR011dHAycld4bitBWUZYMDlqdTdCbHZzRFB5RDBPSmVIZ1RIT1kwMk9MZzM0KzNRV3FVYlQxWHVocUxQUHA2a2N2WmVuZ0MrejhERzc4SjJPMDN2UnhJY0ZOSEE4YytOVG1pOTF6MDYrKzlsVlN5L0t5UzI1TDZiZ0RMR2piNXloazFlZWFsWDRiM0xiMXVmZkJteGxzU2UwaHhOWFFoSGI3RkE0MSt6MHU4MFBZT3oyWTZaSW50bEtxK2x5ODRQeHZFR0NyQ3JINzE1OUlkV2tYY3B3OWhUdjA3K2dDWE4yV1VVcHZiMGkwcTh1MlVtcHpuM3NmQkhoSTZKMzgrYWRGY3NqSFV6ZzJRaXN2THplM0pmUFRsYk0zYlYxZEhoVUNmSVBTeXZsclFhK2V3a215VDE4ZmZXOTFINVU4UDJuTE1FWWRDUERuT2pyVCsrUlF0VGNjOFBoaFNQYnBTNDROd29zVjVsRkZmaWNXYlllK204ckhmVlRteVo3YzIvRjhQWDFMV2ZZUTN0SEZmU3VsMG9NWGxBbTFGUFNWb1VJN3ZlMGpVeGM5U295UHAyKzFZSVd5ZVN3c1NtZzdHQkg0YnFyT1kvblEyVk80V3N3U1ViMnp1TGErNHgrbDZtWVZMRmlOalZVUGJFdTJZSGMzQzFwM3V1OWEwcStVamwvY1hqei9LVGNsZVlydmIvS081U0xXZFpDRjN2UVlaS2RQNFVndmxKdUkrUUYxK3ZTdDNoQ0l2bmNpckZlaHI5OXQ1T3UyU1BNVUprZEtvUXBLaGNxT3laSEJ0aDBtckNiRmZodnA1bTJSSGxhc082NkdPeklwQzBwQXRmcnNjSEREOWJaZDJ5U3pEMXdGMmE1WU93NnlzNFAwRjFtVGw4bTVWSkFqMVUyUk9KaFFTM0tESERlRDdHVHJTUXAzRjhvbFFDdmxiREd1Nm4yaGxtUW5zYW9iSTB2bFlzZytEM1ZWTFF2Q1lTdWd4WDhJYXNFbzVTaXlDNFlYeXZtaFNUbHBCWjZ1ZmxqR3luTjlDUEFJbEo3S0Nad1NKSk83WkwwSkNQQW9NTjduSHY2bVRpUWU0S21DbkZCUEtCV2krYXQ1N0R1YVRDMk90c1FCUElGSFlQWSt2NlowUkhDenhSVEM2d2dDRE1HVm1jYjFPSTRnd0JDYzBCbWV3STRnd0FDTUljQVFua1lKN1FvQ0RBM0FGYkd1SU1BQWpDSEFBSXdod0FDTUljQUFqQ0hBQUl3aHdLRThLTEh5Q3M0aHdLRmNZTzhUM0VPQUFSaERnQUVZUTRBQkdFT0FBUmhEZ0FFWVE0QUJHRU9BWVN5Q1JFNFFEUVFZZ0RFRUdJQXhCQmlBTVFRWWdERUV1RVh3a3JiMElNQUFqQ0hBQUl3aHdBQ01JY0Fqd1ZsZWlCTUNQQUlkeFF2QkFQNE9BUVpnREFFR1lBd0JCbUFNQVFaZ0RBRUdZQXdCQm1BTUFRWmdEQUVPcEpRaUp3REhFR0FBeGhCZ0dJL0dXR2xNb2c1d0pyT0NJQzR5KzVvZ0duZ0NBekNHQUFNd2hnQURNSVlBQXpDR0FBTXdoZ0FETUlZQUF6Q0dBTGZKZ3pLT0lReXBNQXppQ0FMY0poZHhURkVKd2pDSUt3Z3dBR054QjFoZm9OUUN1RWZVQVZhVXZaNWIrYlRWV1g2UElGY3kvQjNnTS9HWDBFSjFIMmNQVDU2dW5LMVIyMDFGc2dnRjBlRFNBK2RDaVAyNTFZOXY4WVk5Z0w5d1c4VEtWYWJlbWlEdkk4Z0FmRmVoMTB5UVQyeC9UQUF0eG5rYnFXUDdZMXRXMzlVZkY3MUhCUUVrTElWOTRLby8vbWIxL0FobE5iUk5Nb01jbXZRaSttTm9teFFuc1d4L2ZEUzNjcjVCNEp3Z25STkVJOVZSeXB5RTNySDlNUUVrTFBWWjZKd2lJVWprQk9BWURqUEFXRFNKZ2lBYUNEQ01SNVgvSllnR0FnempFYklnaUFZQ0RHT1JVcndoaUFZQ0RHUHBYLzVSTzhCYVl5dktGUVFZUm1aVzBvLzd2U2Q5cWt2RXN6dkFIUUlNSXhOYS9VUTE1VCtjZlVmZ1RLMEFTNjFmQ0kxdGhUWXdUOStpZURYN2ttb3FsY3FwNVd3bEk0VjZRUTdVQ3JEOVFOKzltcDZYUW04aXlHa1RwVmdpQjRTU2k5UlM5a2ZRUHZUZUhVNHZGUWRmSFpNRFRrcm80bUIyVnlqN0FldmFKVmFrT3EwK0lDRm8yOW5SekV6OGg5cW5iMzY1dGtYNWFNRkZGWE9Uc3g3WWZzQ25oN05yc3BUenRrU2d0SFNxazA3TUw5Z3JzMG51aGRaN3B3Y3pYWEtnK2hIVTFLb2VXQkQxVENZV1RnKys2aFk5VVg4QjhCYm5pMWcyeUxaRVNMSS81bjdCbnBaakJ0aUU5M0RXMmFtdVVwYUwxQkpYZmU3U3U4T1paejR2bHZDMkNqM3NqMjNwUUxhRVNFYzdMdGd6NnhvdXcxdjlYNUpvd3hWSWZmdTNjOW5uM3NmN05wSXRIV3dKa1dCL25PUUZlOVZDaTNseW5KcDFEWExvNmVxSDVlVDNmODNEU3BiVDg2Ny9kdmNKc2cvOFdYK2MzbXAxUWhmczZiMXFvY1hEazBQUzFEb2xxaXFYelhmYlY1OTduNkNESEZWL2JMZWQwdXVQdjNqQlhzeXVuN3FtWlBieEJiUi9FM3ZsRVNWbStIZXJ5dVdHTGxCc1pCTEw5c2RDL2JsdzFSK25oTnNGZTlYMmh2a0N6dnZzMXhMc2ZZZDk3bnlJUHZjK2pZMVNGcjBuL2F2K2VENjEvcGpKQlhzdmg5c2I1TkhjeXNldHRIcGZ2UmU2ejczUEZEWHNxdlJZeTFjLzlMU2UydEVpcVpNcXRqOWVuRnM1MzdPeGpvSHQxNFFvdDBNOE9lemNzMUxVcFFSVWZ6ZXBOb3VmWjZNNlRpa29Nbm5WTDhtdHhJTHNoQlRTYkUwOE9xWUo1Y3U2RTJxUnhWWWVTcW9qN2s5ZjIrZWFIN3dYVFpmS2Q0bnVOTktnUDA1NkxMTXg0Y0tyTzZVc2U4ekQrOWY0WTZUaHRhSThUbmh6MndsQjVrZG41L3RtTWU5YjR1dmxvTThOdnkwMHJzWjc0UHRjOThjclo4Y29xK05ubjd3NisvU2E2NVpSeVBVQlY2THJnZTh6OS96M3JsRFpqMjBOY3QwZTJDZmI4OXF5bWVtVHR5KzEzblI5VWlnRVZqZHkySklHL1hGOFRIZ1g3WUlWdy9EMmgrT1BITU5yc1hvQzMyUi84WFdtVExuV251TnBzVDJCYmNtczVDZXp6NnZadlllcUtwZEw4WUw3SzJqWjNvazFPTFk0czRCcmZacnhkUFhqc3BMbko5ekNLelQ5MnZUNG8wdHNuOEMzMmY2WXRFejZ1Rm9NVDJCYkx1dE1iekZjcUxMamo5dXhURkM1a3N5dGxLbU9aWDVHWHpSMkc0Z3RsK2RXem5mc3ExdjVoVGV1OFVlWGtua0MzMlJIK0hRcFh5ZTRXbDFvcmJkL0M3amdNdWh6LzFnblVacFNXYkM2VGlpVlB2YytTUVo0S09HeHpFSlR1Zm5iNGVNZWVYUzF1cnpQYmFJcTl2RkhsNUlPc0ZYTjVFNWRyaVhhSDlzVFJkdXVuekNERlg2OXo3UFBWWHUrVDFqRkpQa0FEMVZCenNxdStWZitrVktqWlZjcStxbHVrRGx2Q3czNjNKbm9SeDlkYTAyQWgvTFZEOHNKSGx1MGF2WEgrZXI1dWlMVlpkbm5NaHQvZEtsMUFSNUt1VCtXNVlOblJlL2hTT2RXYlo5YnluS1gyeFJWMWVlUzNpd09aN3l1QThTdXRRRzJraTZydjlBZmMrOXo1ZVhzYnR2SzVYL1M2Z0FQRFlKOGFmWUk1ZmVVR3RNZm43NTZkSDMzR09kdElmSzBhTWNaQW54RDB0dE9waisyL3lBRTdhRFBUUWNDL0EvYWZtd3hJbXlQK1lXQ0FOOGg4ZjQ0ZHVoelI0UUFmMEViankwMnFRM2pqeTRod0NQQ2JabCsyV04rUXFvTjlMbmpRWURIMUlaamk0RWxlY3d2RkFSNEF1aVBYV25uK0tOTENIQU5DUjliOUFwOXJqc0lzQVBvajBmVHBtTitvU0RBamx4TmMyMFF5V1RmZzFzRHRvVThRWUFkUTM5OEcvcGNueEJnVDlwZVZtUDhNUXdFMkxQOCtkbUdWbks5TFVIR01iK3dFT0FBV2xKV284OXRBQUljRU9NenVQY3lYNktlS09VbXRvWENRNEFia0VwL2pENjNlUWh3ZzY3R011MjJFN2VEOVJoL2pBUUMzREIyL2JGOW14LzYzR2dnd0pHbyttT3BqMkl0cXpIK0dDY0VPREt4OWNjWWY0d2JBaHloZlBsOVIwMU5iVFI4YkJGOUxnTUljTVNhNjQ4eC9zZ0ZBc3hBL3Z6M1JhMnlmZDlsZGRYblNyVlovRHc3MHFYdzBEd0VtQkZmL1RINlhMNFFZR1ljSDF2RStDTnpDREJURHZyamw3S2Mza1J3ZVVPQW1SdTNyTWI0WTFvUTRFUjg2ZGhpMWVkcXRZMjNIS1FGQVU3SUhXVTErdHlFSWNBSkdoNWJOUHU1ZlJ6elM5di9BV2lQL05ZUHp6MVFBQUFBQUVsRlRrU3VRbUNDIi8+PC9kZWZzPjwvc3ZnPg==\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgDisplayReset = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ className: \"displayReset_svg__icon\", viewBox: \"0 0 1024 1024\", xmlns: \"http://www.w3.org/2000/svg\", width: 200, height: 200 }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"m193.07 70.353 5.423.931a34.91 34.91 0 0 1 28.37 40.425l-.024.07-12.87 72.541A448.698 448.698 0 0 1 507.857 75.38c246.831 0 447.023 197.912 447.023 442.182S754.688 959.744 507.857 959.744c-160.186 0-305.687-84.084-385.466-218.159a37.795 37.795 0 0 1 13.359-51.921 38.167 38.167 0 0 1 52.154 13.289c66.21 111.243 186.903 180.992 319.953 180.992 204.87 0 370.851-164.096 370.851-366.383S712.728 151.18 507.858 151.18c-107.288 0-206.802 45.265-276.318 121.995H373.04a34.91 34.91 0 0 1 0 69.818H163.584c-2.607 0-5.19-.279-7.657-.837a34.63 34.63 0 0 1-5.26-.512l-5.422-.931a34.91 34.91 0 0 1-28.346-40.495l35.77-201.588a34.91 34.91 0 0 1 40.402-28.277z\", fill: \"#fff\" }));\nexport { SvgDisplayReset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0ibTE5My4wNyA3MC4zNTMgNS40MjMuOTMxYTM0LjkxIDM0LjkxIDAgMCAxIDI4LjM3IDQwLjQyNWwtLjAyNC4wNy0xMi44NyA3Mi41NDFBNDQ4LjY5OCA0NDguNjk4IDAgMCAxIDUwNy44NTcgNzUuMzhjMjQ2LjgzMSAwIDQ0Ny4wMjMgMTk3LjkxMiA0NDcuMDIzIDQ0Mi4xODJTNzU0LjY4OCA5NTkuNzQ0IDUwNy44NTcgOTU5Ljc0NGMtMTYwLjE4NiAwLTMwNS42ODctODQuMDg0LTM4NS40NjYtMjE4LjE1OWEzNy43OTUgMzcuNzk1IDAgMCAxIDEzLjM1OS01MS45MjEgMzguMTY3IDM4LjE2NyAwIDAgMSA1Mi4xNTQgMTMuMjg5YzY2LjIxIDExMS4yNDMgMTg2LjkwMyAxODAuOTkyIDMxOS45NTMgMTgwLjk5MiAyMDQuODcgMCAzNzAuODUxLTE2NC4wOTYgMzcwLjg1MS0zNjYuMzgzUzcxMi43MjggMTUxLjE4IDUwNy44NTggMTUxLjE4Yy0xMDcuMjg4IDAtMjA2LjgwMiA0NS4yNjUtMjc2LjMxOCAxMjEuOTk1SDM3My4wNGEzNC45MSAzNC45MSAwIDAgMSAwIDY5LjgxOEgxNjMuNTg0Yy0yLjYwNyAwLTUuMTktLjI3OS03LjY1Ny0uODM3YTM0LjYzIDM0LjYzIDAgMCAxLTUuMjYtLjUxMmwtNS40MjItLjkzMWEzNC45MSAzNC45MSAwIDAgMS0yOC4zNDYtNDAuNDk1bDM1Ljc3LTIwMS41ODhhMzQuOTEgMzQuOTEgMCAwIDEgNDAuNDAyLTI4LjI3N3oiIGZpbGw9IiNmZmYiLz48L3N2Zz4=\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgSettingsSliders = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 20 20\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#settings-sliders_svg__a)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M.833 3.958h2.28a3.107 3.107 0 0 0 5.996 0h10.058a.833.833 0 0 0 0-1.667H9.109a3.107 3.107 0 0 0-5.996 0H.833a.833.833 0 0 0 0 1.667Zm5.278-2.292a1.458 1.458 0 1 1 0 2.917 1.458 1.458 0 0 1 0-2.917ZM19.167 9.167h-2.28a3.106 3.106 0 0 0-5.995 0H.833a.833.833 0 0 0 0 1.666h10.059a3.105 3.105 0 0 0 5.995 0h2.28a.833.833 0 0 0 0-1.666Zm-5.278 2.291a1.458 1.458 0 1 1 0-2.915 1.458 1.458 0 0 1 0 2.915ZM19.167 16.042H9.109a3.107 3.107 0 0 0-5.996 0H.833a.833.833 0 1 0 0 1.666h2.28a3.107 3.107 0 0 0 5.996 0h10.058a.833.833 0 0 0 0-1.666ZM6.11 18.333a1.458 1.458 0 1 1 0-2.915 1.458 1.458 0 0 1 0 2.915Z\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"settings-sliders_svg__a\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0 0h20v20H0z\" }))));\nexport { SvgSettingsSliders as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNLjgzMyAzLjk1OGgyLjI4YTMuMTA3IDMuMTA3IDAgMCAwIDUuOTk2IDBoMTAuMDU4YS44MzMuODMzIDAgMCAwIDAtMS42NjdIOS4xMDlhMy4xMDcgMy4xMDcgMCAwIDAtNS45OTYgMEguODMzYS44MzMuODMzIDAgMCAwIDAgMS42NjdabTUuMjc4LTIuMjkyYTEuNDU4IDEuNDU4IDAgMSAxIDAgMi45MTcgMS40NTggMS40NTggMCAwIDEgMC0yLjkxN1pNMTkuMTY3IDkuMTY3aC0yLjI4YTMuMTA2IDMuMTA2IDAgMCAwLTUuOTk1IDBILjgzM2EuODMzLjgzMyAwIDAgMCAwIDEuNjY2aDEwLjA1OWEzLjEwNSAzLjEwNSAwIDAgMCA1Ljk5NSAwaDIuMjhhLjgzMy44MzMgMCAwIDAgMC0xLjY2NlptLTUuMjc4IDIuMjkxYTEuNDU4IDEuNDU4IDAgMSAxIDAtMi45MTUgMS40NTggMS40NTggMCAwIDEgMCAyLjkxNVpNMTkuMTY3IDE2LjA0Mkg5LjEwOWEzLjEwNyAzLjEwNyAwIDAgMC01Ljk5NiAwSC44MzNhLjgzMy44MzMgMCAxIDAgMCAxLjY2NmgyLjI4YTMuMTA3IDMuMTA3IDAgMCAwIDUuOTk2IDBoMTAuMDU4YS44MzMuODMzIDAgMCAwIDAtMS42NjZaTTYuMTEgMTguMzMzYTEuNDU4IDEuNDU4IDAgMSAxIDAtMi45MTUgMS40NTggMS40NTggMCAwIDEgMCAyLjkxNVoiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBkPSJNMCAwaDIwdjIwSDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+\";\n","import Icon from '@ant-design/icons';\nimport { Button, Popover, Slider, Tooltip } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo, useMemo } from 'react';\n\nimport { ReactComponent as DisplayReset } from '../../assets/displayReset.svg';\nimport { ReactComponent as SettingIcon } from '../../assets/settings-sliders.svg';\nimport {\n DEFAULT_IMG_DISPLAY_OPTIONS,\n IAnnotsDisplayOptions,\n IImageDisplayOptions,\n} from '../../type';\n\nimport './index.less';\n\ninterface IProps {\n displayOption: IImageDisplayOptions;\n colorByCategory: boolean;\n onChangeImageDisplayOpts: (options: IImageDisplayOptions) => void;\n onChangeAnnotsDisplayOpts: (options: IAnnotsDisplayOptions) => void;\n}\n\nconst DisplaySettings: React.FC = memo(\n ({ displayOption, onChangeImageDisplayOpts, onChangeAnnotsDisplayOpts }) => {\n const { localeText } = useLocale();\n\n const popoverContent = useMemo(() => {\n return (\n
\n
\n
{localeText('DDSAnnotator.imgDisplayTool.title')}
\n }\n onClick={() =>\n onChangeImageDisplayOpts(DEFAULT_IMG_DISPLAY_OPTIONS)\n }\n >\n
\n
\n \n \n onChangeImageDisplayOpts({\n ...displayOption,\n brightness: value,\n })\n }\n min={0}\n max={200}\n />\n
\n
\n \n \n onChangeImageDisplayOpts({\n ...displayOption,\n contrast: value,\n })\n }\n min={0}\n max={200}\n />\n
\n
\n \n \n onChangeImageDisplayOpts({\n ...displayOption,\n saturate: value,\n })\n }\n min={0}\n max={200}\n />\n
\n
\n );\n }, [\n displayOption.brightness,\n displayOption.contrast,\n displayOption.saturate,\n onChangeImageDisplayOpts,\n onChangeAnnotsDisplayOpts,\n ]);\n\n return (\n \n \n \n \n \n );\n },\n);\n\nexport default DisplaySettings;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgLabel = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 27 27\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#label_svg__a)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M13.5 27C20.956 27 27 20.956 27 13.5S20.956 0 13.5 0 0 6.044 0 13.5 6.044 27 13.5 27Z\", fill: \"#26A1F4\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"m18.201 12.527-.007-.008-3.721-3.723s-4.535 4.535-6.72 6.765c-.273.278-.479.664-.601 1.037-.359 1.097-.656 2.215-.986 3.322-.088.297-.07.559.162.78.22.211.466.219.751.133 1.055-.316 2.116-.617 3.176-.92a3.243 3.243 0 0 0 1.432-.865c2.082-2.095 6.514-6.521 6.514-6.521ZM20.373 7.9l-1.272-1.272a1.74 1.74 0 0 0-2.46 0l-1.442 1.44 3.733 3.734 1.442-1.442a1.74 1.74 0 0 0 0-2.46Z\", fill: \"#fff\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"label_svg__a\" }, /* @__PURE__ */ React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h27v27H0z\" }))));\nexport { SvgLabel as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjcgMjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTMuNSAyN0MyMC45NTYgMjcgMjcgMjAuOTU2IDI3IDEzLjVTMjAuOTU2IDAgMTMuNSAwIDAgNi4wNDQgMCAxMy41IDYuMDQ0IDI3IDEzLjUgMjdaIiBmaWxsPSIjMjZBMUY0Ii8+PHBhdGggZD0ibTE4LjIwMSAxMi41MjctLjAwNy0uMDA4LTMuNzIxLTMuNzIzcy00LjUzNSA0LjUzNS02LjcyIDYuNzY1Yy0uMjczLjI3OC0uNDc5LjY2NC0uNjAxIDEuMDM3LS4zNTkgMS4wOTctLjY1NiAyLjIxNS0uOTg2IDMuMzIyLS4wODguMjk3LS4wNy41NTkuMTYyLjc4LjIyLjIxMS40NjYuMjE5Ljc1MS4xMzMgMS4wNTUtLjMxNiAyLjExNi0uNjE3IDMuMTc2LS45MmEzLjI0MyAzLjI0MyAwIDAgMCAxLjQzMi0uODY1YzIuMDgyLTIuMDk1IDYuNTE0LTYuNTIxIDYuNTE0LTYuNTIxWk0yMC4zNzMgNy45bC0xLjI3Mi0xLjI3MmExLjc0IDEuNzQgMCAwIDAtMi40NiAwbC0xLjQ0MiAxLjQ0IDMuNzMzIDMuNzM0IDEuNDQyLTEuNDQyYTEuNzQgMS43NCAwIDAgMCAwLTIuNDZaIiBmaWxsPSIjZmZmIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgyN3YyN0gweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgReview = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 27 27\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M13.5 27C20.956 27 27 20.956 27 13.5S20.956 0 13.5 0 0 6.044 0 13.5 6.044 27 13.5 27Z\", fill: \"#FFD305\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"m20.713 19.26-.369-.37-.063-.064-1.493 1.493.036.036.396.396c.254.254.791.125 1.207-.287.415-.412.54-.952.286-1.204ZM16.709 15.31a5.797 5.797 0 1 0-1.515 1.47l3.229 3.181 1.493-1.492-3.207-3.16Zm-4.655.717a4.092 4.092 0 1 1 0-8.184 4.092 4.092 0 0 1 0 8.184Z\", fill: \"#fff\" }));\nexport { SvgReview as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjcgMjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEzLjUgMjdDMjAuOTU2IDI3IDI3IDIwLjk1NiAyNyAxMy41UzIwLjk1NiAwIDEzLjUgMCAwIDYuMDQ0IDAgMTMuNSA2LjA0NCAyNyAxMy41IDI3WiIgZmlsbD0iI0ZGRDMwNSIvPjxwYXRoIGQ9Im0yMC43MTMgMTkuMjYtLjM2OS0uMzctLjA2My0uMDY0LTEuNDkzIDEuNDkzLjAzNi4wMzYuMzk2LjM5NmMuMjU0LjI1NC43OTEuMTI1IDEuMjA3LS4yODcuNDE1LS40MTIuNTQtLjk1Mi4yODYtMS4yMDRaTTE2LjcwOSAxNS4zMWE1Ljc5NyA1Ljc5NyAwIDEgMC0xLjUxNSAxLjQ3bDMuMjI5IDMuMTgxIDEuNDkzLTEuNDkyLTMuMjA3LTMuMTZabS00LjY1NS43MTdhNC4wOTIgNC4wOTIgMCAxIDEgMC04LjE4NCA0LjA5MiA0LjA5MiAwIDAgMSAwIDguMTg0WiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==\";\n","import classNames from 'classnames';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo } from 'react';\n\nimport { ReactComponent as LabelIcon } from '../../assets/label.svg';\nimport { ReactComponent as ReviewIcon } from '../../assets/review.svg';\nimport { EditorMode } from '../../type';\n\nimport './index.less';\n\ninterface IProps {\n mode: EditorMode;\n}\n\nconst EditorStatus: React.FC = memo(({ mode }) => {\n const { localeText } = useLocale();\n\n if (mode === EditorMode.View) return null;\n\n return (\n \n {mode === EditorMode.Edit ? (\n <>\n \n {localeText('DDSAnnotator.status.labeling')}\n \n ) : (\n <>\n \n {localeText('DDSAnnotator.status.reviewing')}\n \n )}\n \n );\n});\n\nexport default EditorStatus;\n","import { PlusOutlined } from '@ant-design/icons';\nimport { Button, Divider, Input, InputRef, Space } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo, useRef, useState } from 'react';\n\ninterface IProps {\n onAdd: (value: string) => void;\n}\n\nconst CategoryCreator: React.FC = memo(({ onAdd }) => {\n const { localeText } = useLocale();\n\n const inputRef = useRef(null);\n\n const [inputValue, setInputValue] = useState('');\n\n const handleInputChange = (event: React.ChangeEvent) => {\n event.stopPropagation();\n setInputValue(event.target.value);\n };\n\n const addCategory = () => {\n if (inputValue === '') return;\n onAdd(inputValue);\n setInputValue('');\n inputRef.current?.focus();\n };\n\n return (\n <>\n \n \n {\n if (event.code === 'Enter') {\n addCategory();\n }\n event.stopPropagation();\n }}\n />\n \n \n \n );\n});\n\nexport default CategoryCreator;\n","import { Select } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo, useMemo } from 'react';\n\nimport {\n EBasicToolItem,\n EBasicToolTypeMap,\n LABEL_TOOL_MAP,\n OBJECT_ICON,\n} from '../../constants';\nimport { Category, DrawData } from '../../type';\nimport CategoryCreator from '../CategoryCreator';\n\nimport './index.less';\n\ninterface IProps {\n drawData: DrawData;\n latestLabelId: string;\n isSeperate?: boolean;\n labelOptions: Category[];\n labelColors?: Record;\n onChangeObjectLabel: (labelId: string) => void;\n onCreateCategory: (name: string) => void;\n}\n\nconst LabelSelector: React.FC = memo(\n ({\n drawData,\n latestLabelId,\n isSeperate,\n labelOptions,\n labelColors,\n onChangeObjectLabel,\n onCreateCategory,\n }) => {\n const { localeText } = useLocale();\n const TypeIcon = useMemo(() => {\n if (labelOptions.length > 0) {\n const labelType = labelOptions[0]?.labelType;\n // @ts-ignore\n const toolType = labelType && LABEL_TOOL_MAP[labelType];\n const objectType =\n EBasicToolTypeMap[toolType as unknown as EBasicToolItem];\n if (objectType) {\n return OBJECT_ICON[objectType];\n }\n }\n return undefined;\n }, [labelOptions]);\n\n return (\n
\n event.stopPropagation()}\n onKeyUp={(event) => event.stopPropagation()}\n onInputKeyDown={(event) => {\n if (event.code !== 'Enter') {\n event.stopPropagation();\n }\n }}\n filterOption={(inputValue, option) => {\n const label =\n option?.children?.[(option?.children?.length || 0) - 1] || '';\n return label.toLowerCase()?.includes(inputValue.toLowerCase());\n }}\n dropdownRender={(menu) => (\n <>\n {menu}\n {isSeperate && }\n \n )}\n >\n {labelOptions?.map((label) => (\n \n {TypeIcon ? (\n \n ) : (\n \n )}\n {label.name}\n \n ))}\n \n
\n );\n },\n);\n\nexport default LabelSelector;\n","import Icon from '@ant-design/icons';\nimport { Select } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\nimport { memo } from 'react';\n\nimport {\n EBasicToolItem,\n EBasicToolTypeMap,\n EnumModelType,\n MODEL_INTRO_MAP,\n OBJECT_AI_ICON,\n} from '../../constants';\n\nimport './index.less';\n\ninterface IProps {\n selectedTool: EBasicToolItem;\n selectedModel?: EnumModelType;\n modelOptions: EnumModelType[];\n onSelectModel: (type: EnumModelType) => void;\n}\n\nconst ModelSelector: React.FC = memo(\n ({ selectedTool, selectedModel, modelOptions, onSelectModel }) => {\n const { localeText } = useLocale();\n\n const objectType = EBasicToolTypeMap[selectedTool];\n\n return (\n
\n event.stopPropagation()}\n onKeyUp={(event) => event.stopPropagation()}\n onInputKeyDown={(event) => {\n if (event.code !== 'Enter') {\n event.stopPropagation();\n }\n }}\n >\n {modelOptions?.map((model, index) => (\n \n \n {MODEL_INTRO_MAP[model] &&\n localeText(MODEL_INTRO_MAP[model]!.name)}\n \n ))}\n \n
\n );\n },\n);\n\nexport default ModelSelector;\n","import { useKeyPress } from 'ahooks';\nimport { Button, Popover, Slider } from 'antd';\nimport classNames from 'classnames';\nimport { memo, useMemo } from 'react';\n\nimport { ESubToolItem } from '../../constants';\nimport { FloatWrapper } from '../FloatWrapper';\n\nimport { TSubtoolOptions, TToolItem } from '@/Annotator/hooks/useSubtools';\n\nimport './index.less';\n\ninterface IProps {\n toolOptions: TSubtoolOptions;\n selectedSubTool: ESubToolItem;\n isAIAnnotationActive: boolean;\n brushSize: number;\n onChangeSubTool: (type: ESubToolItem) => void;\n onActiveAIAnnotation: (active: boolean) => void;\n onChangeBrushSize: (size: number) => void;\n}\n\nconst SubToolBar: React.FC = memo(\n ({\n toolOptions,\n selectedSubTool,\n isAIAnnotationActive,\n brushSize,\n onChangeSubTool,\n onChangeBrushSize,\n }) => {\n const allSubTools = useMemo(() => {\n return [...toolOptions.basicTools, ...toolOptions.smartTools];\n }, [toolOptions.basicTools, toolOptions.smartTools]);\n\n const shortcuts = useMemo(() => {\n const keys: string[] = [];\n for (let i = 1; i <= allSubTools.length; i++) {\n keys.push(i.toString());\n }\n return keys;\n }, [allSubTools]);\n\n useKeyPress(\n shortcuts,\n (event) => {\n const tool = allSubTools.find((_, index) => {\n return (index + 1).toString() === event.key;\n });\n if (tool && tool.available) {\n if (\n toolOptions.smartTools.find((item) => tool.key === item.key) &&\n !isAIAnnotationActive\n )\n return;\n onChangeSubTool(tool.key);\n }\n },\n {\n exactMatch: true,\n },\n );\n\n const mouseEventHandler = (event: React.MouseEvent) => {\n const tool = allSubTools.find((item) => item.key === selectedSubTool);\n if (\n event.type === 'mouseup' &&\n (tool?.withSize || tool?.withCustomElement)\n ) {\n return;\n } else {\n event.stopPropagation();\n }\n };\n\n const popoverContent = (item: TToolItem) => {\n const shortcut =\n allSubTools.findIndex((tool) => tool.key === item.key) + 1;\n return (\n
\n
\n \n {item.name}\n \n {shortcut && (\n \n {shortcut}\n \n )}\n
\n {item.description && (\n <>\n
\n
{item.description}
\n \n )}\n
\n );\n };\n\n const onBtnClick = (type: ESubToolItem) => {\n const tool = allSubTools.find((item) => item.key === type);\n if (tool && tool.available) {\n onChangeSubTool(type);\n }\n };\n\n const ToolItemBtn = (item: TToolItem) => {\n return (\n \n onBtnClick(item.key)}\n />\n \n );\n };\n\n return (\n \n
\n {toolOptions.basicTools.map((item) => ToolItemBtn(item))}\n {isAIAnnotationActive && (\n <>\n {toolOptions.basicTools.length > 0 &&\n toolOptions.smartTools.length > 0 && (\n
\n )}\n {toolOptions.smartTools.map((item) => ToolItemBtn(item))}\n \n )}\n {toolOptions.customElement && (\n <>\n
\n {toolOptions.customElement}\n \n )}\n {!!allSubTools.find((item) => item.key === selectedSubTool)\n ?.withSize && (\n <>\n
\n
\n {'Brush Size'}\n
\n
\n onChangeBrushSize(value)}\n />\n
\n \n )}\n
\n
\n );\n },\n);\n\nexport default SubToolBar;\n","import { Tooltip } from 'antd';\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport './index.less';\n\nexport interface ITopToolItem {\n icon?: React.ReactNode;\n title?: string;\n customElement?: React.ReactNode;\n onClick?: (event: React.MouseEvent) => void;\n disabled?: boolean;\n splitLine?: boolean;\n}\n\nexport interface IProps {\n className?: string;\n children?: React.ReactNode;\n leftTools?: ITopToolItem[];\n rightTools?: ITopToolItem[];\n}\n\nconst TopTools: React.FC = (props) => {\n const { className = '', children, leftTools = [], rightTools = [] } = props;\n\n const renderTools = (tools: ITopToolItem[]) =>\n tools.map(\n ({ title, icon, onClick, disabled, splitLine, customElement }, index) => (\n \n {customElement ? (\n customElement\n ) : (\n \n \n {icon}\n \n \n )}\n {splitLine &&
}\n \n ),\n );\n\n return (\n {\n event.stopPropagation();\n }}\n >\n
\n {renderTools(leftTools)}\n
\n
{children}
\n
\n {renderTools(rightTools)}\n
\n
\n );\n};\n\nexport default TopTools;\n","import Icon, { ArrowLeftOutlined } from '@ant-design/icons';\nimport { Button, Tooltip } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\nimport { useMemo } from 'react';\n\nimport { ReactComponent as DocsIcon } from '../assets/docs.svg';\nimport { ReactComponent as LogoIcon } from '../assets/logo.svg';\nimport DisplaySettings from '../components/DisplaySettings';\nimport EditorStatus from '../components/EditorStatus';\nimport LabelSelector from '../components/LabelSelector';\nimport ModelSelector from '../components/ModelSelector';\nimport { ShortcutsInfo } from '../components/ShortcutsInfo';\nimport SubToolBar from '../components/SubToolBar';\nimport TopTools from '../components/TopTools';\nimport {\n EBasicToolItem,\n EnumModelType,\n ESubToolItem,\n TOOL_MODELS_MAP,\n} from '../constants';\nimport {\n DrawData,\n EditState,\n EditorMode,\n IImageDisplayOptions,\n IAnnotsDisplayOptions,\n Category,\n} from '../type';\n\nimport { TSubtoolOptions } from './useSubtools';\n\ninterface IProps {\n isOldMode?: boolean;\n isSeperate?: boolean;\n mode: EditorMode;\n fileName?: string;\n drawData: DrawData;\n editState: EditState;\n hideTopBarActions?: boolean;\n titleElements?: React.ReactElement[];\n actionElements?: React.ReactElement[];\n enableReviewerModify?: boolean;\n labelOptions: Category[];\n showSubTools: boolean;\n currSubTools: TSubtoolOptions;\n topBarCenterElement?: React.ReactElement | null;\n labelColors?: Record;\n selectSubTool: (tool: ESubToolItem) => void;\n onSelectModel: (type: EnumModelType) => void;\n setBrushSize: (size: number) => void;\n activeAIAnnotation: (active: boolean) => void;\n onChangeImageDisplayOpts: (value: IImageDisplayOptions) => void;\n onChangeAnnotsDisplayOpts: (value: IAnnotsDisplayOptions) => void;\n onChangeObjectLabel: (labelId: string) => void;\n onCreateCategory: (name: string) => void;\n onSaveAnnotations: () => Promise;\n onCommitAnnotations: () => Promise;\n onRejectAnnotations: () => Promise;\n onAcceptAnnotations: () => Promise;\n onModifyAnnotations: () => Promise;\n onCancelAnnotations: () => Promise;\n}\n\nconst useTopTools = ({\n isOldMode,\n isSeperate,\n mode,\n fileName,\n drawData,\n editState,\n hideTopBarActions,\n titleElements,\n actionElements,\n enableReviewerModify,\n labelOptions,\n labelColors,\n showSubTools,\n currSubTools,\n topBarCenterElement,\n selectSubTool,\n setBrushSize,\n activeAIAnnotation,\n onChangeImageDisplayOpts,\n onChangeAnnotsDisplayOpts,\n onChangeObjectLabel,\n onCreateCategory,\n onSaveAnnotations,\n onCommitAnnotations,\n onRejectAnnotations,\n onAcceptAnnotations,\n onModifyAnnotations,\n onCancelAnnotations,\n onSelectModel,\n}: IProps) => {\n const { localeText } = useLocale();\n const jumpDocs = () => {\n window.open('https://docs.deepdataspace.com');\n };\n\n const supportActions = useMemo(() => {\n const actions = actionElements\n ? actionElements.map((item) => ({ customElement: item }))\n : [];\n if (hideTopBarActions) return actions;\n if (mode === EditorMode.Review) {\n actions.push(\n ...[\n {\n customElement: (\n \n ),\n },\n ...(isOldMode || !enableReviewerModify\n ? []\n : [\n {\n customElement: (\n \n ),\n },\n ]),\n {\n customElement: (\n \n ),\n },\n ],\n );\n }\n if (mode === EditorMode.Edit && !isSeperate) {\n actions.push({\n customElement: (\n \n ),\n });\n if (!isOldMode) {\n actions.push({\n customElement: (\n \n ),\n });\n }\n }\n actions.unshift({\n customElement: (\n <>\n {mode === EditorMode.Edit && (\n
\n \n \n \n \n
\n )}\n \n \n \n ),\n });\n if (mode === EditorMode.Edit && fileName) {\n actions.unshift({ customElement: <>{fileName} });\n }\n return actions;\n }, [\n mode,\n isOldMode,\n enableReviewerModify,\n hideTopBarActions,\n onSaveAnnotations,\n onCommitAnnotations,\n onCancelAnnotations,\n onRejectAnnotations,\n onAcceptAnnotations,\n onModifyAnnotations,\n ]);\n\n const leftTools = () => {\n const actions = [];\n if (titleElements) {\n actions.push(...titleElements.map((item) => ({ customElement: item })));\n } else {\n if (isSeperate || mode === EditorMode.Edit) {\n actions.push({\n customElement: (\n \n \n \n ),\n });\n } else {\n actions.push({\n title: localeText('DDSAnnotator.exit'),\n icon: ,\n onClick: () => onCancelAnnotations(),\n });\n }\n if (mode !== EditorMode.Edit && fileName) {\n actions.push({ customElement: fileName });\n }\n }\n if (\n mode === EditorMode.Edit &&\n TOOL_MODELS_MAP[drawData.selectedTool] &&\n TOOL_MODELS_MAP[drawData.selectedTool].length > 1 &&\n drawData.AIAnnotation &&\n drawData.selectedModel\n ) {\n actions.push({\n customElement: (\n \n ),\n });\n }\n if (\n mode === EditorMode.Edit &&\n (drawData.objectList[drawData.activeObjectIndex] ||\n drawData.selectedTool !== EBasicToolItem.Drag)\n ) {\n actions.push({\n customElement: (\n \n ),\n });\n }\n if (mode === EditorMode.Edit && showSubTools) {\n actions.push({\n customElement: (\n \n ),\n });\n }\n return actions;\n };\n\n const topToolsBar = (\n \n {topBarCenterElement}\n \n );\n\n return {\n topToolsBar,\n };\n};\n\nexport default useTopTools;\n","import { cloneDeep } from 'lodash';\n\nimport {\n BODY_TEMPLATE,\n ELabelType,\n EObjectType,\n KEYPOINTS_VISIBLE_TYPE,\n} from '../constants';\nimport { rleToCanvas } from '../tools/useMask';\nimport {\n IAnnotationObject,\n EObjectStatus,\n DrawObject,\n Category,\n BaseObject,\n} from '../type';\nimport {\n getObjectType,\n translateBoundingBoxToRect,\n translatePointsToPointObjs,\n translatePointObjsToPointAttrs,\n getSegmentationPoints,\n translateRectToBoundingBox,\n translatePolygonsToSegmentation,\n translatePointsToRect,\n translatePointGroupsToPoints,\n translateRectToPointsArray,\n translatePolygonsToPointsArrayGroup,\n newTranslatePointsToPointObjs,\n newTranslatePointObjsToPointAttrs,\n getCanvasPoint,\n getNaturalPoint,\n translateUVtoPolylinePoints,\n convertLaneLineColorToHex,\n} from '../utils/compute';\n\ninterface IProps {\n isOldMode?: boolean;\n clientSize: ISize;\n naturalSize: ISize;\n categories: Category[];\n getAnnotColor: (category: string) => string;\n}\n\nconst useTranslate = ({\n isOldMode,\n clientSize,\n naturalSize,\n categories,\n getAnnotColor,\n}: IProps) => {\n /**\n * Use for annotator & old project\n * @param annotation\n * @returns\n */\n const translateAnnotationToObject = (\n annotation: DrawObject,\n ): IAnnotationObject => {\n let {\n categoryId,\n boundingBox,\n points,\n lines,\n pointNames,\n pointColors,\n segmentation,\n mask,\n alpha,\n point,\n polyline: polylineUv,\n lineColor,\n lineType,\n } = annotation;\n\n const color = getAnnotColor(categoryId || '');\n const newObj: IAnnotationObject = {\n labelId: categoryId || '',\n type: EObjectType.Rectangle,\n hidden: false,\n conf: annotation.conf || 1,\n customStyles: annotation.customStyles,\n status: EObjectStatus.Commited,\n color,\n };\n\n if (boundingBox) {\n const rect = translateBoundingBoxToRect(boundingBox, clientSize);\n Object.assign(newObj, { rect: { visible: true, ...rect } });\n }\n\n if (\n points &&\n points.length > 0 &&\n lines &&\n lines.length > 0 &&\n pointNames &&\n pointColors\n ) {\n const pointObjs: IElement[] = translatePointsToPointObjs(\n points,\n pointNames,\n pointColors,\n naturalSize,\n clientSize,\n );\n Object.assign(newObj, {\n keypoints: {\n points: pointObjs,\n lines,\n },\n });\n }\n if (segmentation) {\n const group = getSegmentationPoints(\n segmentation,\n naturalSize,\n clientSize,\n );\n const polygon: IElement = {\n group,\n visible: true,\n };\n Object.assign(newObj, { polygon });\n }\n\n if (mask) {\n const maskRleStr = mask.counts || '';\n Object.assign(newObj, {\n maskRle: maskRleStr,\n maskCanvasElement: rleToCanvas(maskRleStr, naturalSize, color),\n });\n }\n\n if (alpha) {\n const alphaImageElement = new Image();\n alphaImageElement.src = alpha;\n // alphaImageElement.crossOrigin = 'anonymous';\n Object.assign(newObj, {\n alpha,\n alphaImageElement,\n });\n }\n\n if (point) {\n Object.assign(newObj, {\n point: {\n ...getCanvasPoint(point, naturalSize, clientSize),\n visible: KEYPOINTS_VISIBLE_TYPE.labeledVisible,\n },\n });\n }\n\n if (polylineUv && lineType && lineColor) {\n const line = translateUVtoPolylinePoints(polylineUv).map((point) =>\n getCanvasPoint([point.x, point.y], naturalSize, clientSize),\n );\n const polyline: IElement = {\n group: [line],\n visible: true,\n lineType,\n color: convertLaneLineColorToHex(lineColor),\n };\n Object.assign(newObj, { polyline });\n }\n\n newObj.type = getObjectType(newObj);\n return newObj;\n };\n\n /**\n * Use for annotator & old project\n * @param annotation\n * @returns\n */\n const translateObjectToAnnotation = (obj: IAnnotationObject): BaseObject => {\n const { labelId, rect, keypoints, polygon, maskRle, point } = obj;\n const labelName =\n categories.find((item) => item.id === labelId)?.name || '';\n const annoObj = {\n categoryId: labelId,\n categoryName: labelName,\n };\n if (rect) {\n Object.assign(annoObj, {\n boundingBox: translateRectToBoundingBox(rect, clientSize),\n });\n }\n if (keypoints) {\n Object.assign(annoObj, {\n lines: keypoints.lines,\n ...translatePointObjsToPointAttrs(\n keypoints.points,\n naturalSize,\n clientSize,\n ),\n });\n }\n if (polygon) {\n const segmentation = translatePolygonsToSegmentation(\n polygon,\n naturalSize,\n clientSize,\n );\n Object.assign(annoObj, {\n segmentation,\n });\n }\n if (maskRle) {\n Object.assign(annoObj, {\n mask: {\n counts: maskRle,\n size: [naturalSize.height, naturalSize.width],\n },\n });\n }\n if (point) {\n const { x, y } = getNaturalPoint(\n [point.x, point.y],\n naturalSize,\n clientSize,\n );\n Object.assign(annoObj, {\n point: [x, y],\n });\n }\n return annoObj;\n };\n\n /**\n * Use for new project\n * @param label\n * @returns\n */\n const translateLabelToObject = (\n originLabel: {\n labelId: string;\n labelValue: any;\n attributes?: (string | number | number[])[];\n },\n videoFrameCount?: number,\n ) => {\n const { labelId, labelValue } = originLabel;\n const color = getAnnotColor(labelId);\n const label = categories.find((item) => item.id === labelId);\n // confirm format correct\n const attributes =\n label?.attributes?.map(\n (_, index) => originLabel.attributes?.[index] || null,\n ) || undefined;\n const newObj: IAnnotationObject = {\n labelId,\n type: EObjectType.Custom,\n hidden: false,\n status: EObjectStatus.Commited,\n color,\n attributes,\n };\n\n const convertLabelValue = (newObj: IAnnotationObject, labelValue: any) => {\n switch (label?.labelType) {\n case ELabelType.Rectangle: {\n const rect = translatePointsToRect(\n labelValue,\n naturalSize,\n clientSize,\n );\n Object.assign(newObj, {\n rect: { visible: true, ...rect },\n type: EObjectType.Rectangle,\n });\n break;\n }\n case ELabelType.Polygon: {\n const group = translatePointGroupsToPoints(\n labelValue,\n naturalSize,\n clientSize,\n );\n const polygon: IElement = {\n group,\n visible: true,\n };\n Object.assign(newObj, {\n polygon,\n type: EObjectType.Polygon,\n });\n break;\n }\n case ELabelType.Skeleton: {\n const pointObjs: IElement[] = newTranslatePointsToPointObjs(\n labelValue,\n BODY_TEMPLATE.pointNames,\n BODY_TEMPLATE.pointColors,\n naturalSize,\n clientSize,\n );\n Object.assign(newObj, {\n keypoints: {\n points: pointObjs,\n lines: BODY_TEMPLATE.lines,\n },\n type: EObjectType.Skeleton,\n });\n break;\n }\n case ELabelType.Mask: {\n const maskRleStr = labelValue.counts || '';\n Object.assign(newObj, {\n maskRle: maskRleStr,\n maskCanvasElement: rleToCanvas(maskRleStr, naturalSize, color),\n type: EObjectType.Mask,\n });\n break;\n }\n case ELabelType.Classification: {\n Object.assign(newObj, {\n labelValue,\n type: EObjectType.Classification,\n });\n break;\n }\n }\n return newObj;\n };\n\n if (videoFrameCount && videoFrameCount > 0) {\n if (label?.labelType === ELabelType.Classification) {\n return {\n classification: convertLabelValue(newObj, labelValue),\n };\n } else {\n const objects: any[] = new Array(videoFrameCount).fill(undefined);\n let tempObj: any;\n Object.keys(labelValue).forEach((key: string) => {\n tempObj = convertLabelValue(cloneDeep(newObj), labelValue[key]);\n objects[Number(key)] = {\n ...tempObj,\n frameEmpty: false,\n };\n });\n return {\n objects: objects.map(\n (item) =>\n item || {\n ...cloneDeep(tempObj),\n frameEmpty: true,\n },\n ),\n };\n }\n }\n {\n return convertLabelValue(newObj, labelValue);\n }\n };\n\n /**\n * Use for new project\n * @param obj\n * @returns\n */\n const translateObjectToLabel = (obj: IAnnotationObject) => {\n const { labelId, rect, keypoints, polygon, maskRle, attributes } = obj;\n const label = categories.find((item) => item.id === labelId);\n\n const annoObj: any = {\n labelId: labelId,\n attributes: attributes || label?.attributes?.map(() => null) || [],\n };\n switch (label?.labelType) {\n case ELabelType.Rectangle: {\n if (rect) {\n annoObj.labelValue = translateRectToPointsArray(\n rect,\n clientSize,\n naturalSize,\n );\n }\n break;\n }\n case ELabelType.Polygon: {\n if (polygon) {\n annoObj.labelValue = translatePolygonsToPointsArrayGroup(\n polygon,\n naturalSize,\n clientSize,\n );\n }\n break;\n }\n case ELabelType.Skeleton: {\n if (keypoints) {\n const { points } = newTranslatePointObjsToPointAttrs(\n keypoints.points,\n naturalSize,\n clientSize,\n );\n annoObj.labelValue = points;\n }\n break;\n }\n case ELabelType.Mask: {\n if (maskRle) {\n annoObj.labelValue = {\n counts: maskRle,\n size: [naturalSize.height, naturalSize.width],\n };\n }\n break;\n }\n }\n return annoObj;\n };\n\n return {\n translateAnnotationToObject,\n translateObjectToAnnotation,\n translateLabelToObject,\n translateObjectToLabel,\n translateObject: isOldMode\n ? translateObjectToAnnotation\n : translateObjectToLabel,\n translateToObject: isOldMode\n ? translateAnnotationToObject\n : translateLabelToObject,\n };\n};\n\nexport default useTranslate;\n","import { Dropdown, Modal } from 'antd';\nimport classNames from 'classnames';\nimport { cloneDeep } from 'lodash';\nimport React, { useEffect, useMemo, useRef } from 'react';\nimport { Updater, useImmer } from 'use-immer';\n\nimport AttributeEditor from './components/AttributeEditor';\nimport ClassificationPanel from './components/Classification';\nimport { ImageView } from './components/ImageView';\nimport ModelSelectModal from './components/ModelSelectModal';\nimport { ObjectList } from './components/ObjectList';\nimport PointsEditModal from './components/PointsEditModal';\nimport SegConfirmModal from './components/SegConfirmModal';\nimport SliderToolBar from './components/SliderToolBar';\nimport SmartAnnotationControl from './components/SmartAnnotationControl';\nimport { TopPagination } from './components/TopPagination';\nimport { DisplayOption, EBasicToolItem, TOOL_MODELS_MAP } from './constants';\nimport useActions from './hooks/useActions';\nimport useAiModels from './hooks/useAiModels';\nimport useAttributes from './hooks/useAttributes';\nimport useCanvasContainer from './hooks/useCanvasContainer';\nimport useCanvasRender from './hooks/useCanvasRender';\nimport useColor from './hooks/useColor';\nimport useDataEffect from './hooks/useDataEffect';\nimport useHistory from './hooks/useHistory';\nimport useLabels from './hooks/useLabels';\nimport useMouseCursor from './hooks/useMouseCursor';\nimport useMouseEvents from './hooks/useMouseEvents';\nimport useObjects from './hooks/useObjects';\nimport useShortcuts from './hooks/useShortcuts';\nimport useSubTools from './hooks/useSubtools';\nimport useToolActions from './hooks/useToolActions';\nimport useTopTools from './hooks/useTopTools';\nimport useTranslate from './hooks/useTranslate';\nimport { useToolInstances } from './tools/base';\nimport {\n BaseObject,\n Category,\n DEFAULT_DRAW_DATA,\n DEFAULT_EDIT_STATE,\n DrawData,\n AnnoItem,\n EditState,\n EditorMode,\n DrawObject,\n} from './type';\n\nimport './index.less';\n\nexport interface EditProps {\n isOldMode?: boolean; // is old dataset design mode\n isSeperate?: boolean; // is quickmode single editor\n theme?: 'light' | 'dark';\n visible: boolean;\n mode: EditorMode;\n enableReviewerModify?: boolean;\n limitToolTypes?: EBasicToolItem[];\n categories: Category[];\n list: AnnoItem[];\n current: number;\n pagination?: {\n show: boolean;\n total: number;\n customText?: React.ReactElement;\n customDisableNext?: boolean;\n };\n titleElements?: React.ReactElement[];\n actionElements?: React.ReactElement[];\n layoutOptions?: {\n wrapHeight?: string;\n hideRightList?: boolean;\n hideMainToolBar?: boolean;\n hideTopBar?: boolean;\n hideTopBarActions?: boolean;\n hideUndoRedoActions?: boolean;\n hideReferenceLine?: boolean;\n minPadding?: {\n top: number;\n left: number;\n };\n };\n displayOptionsResult?: { [key in DisplayOption]?: boolean };\n manualMode?: boolean;\n forceColorByObject?: boolean;\n limitActiveObject?: boolean;\n customDefaultDrawData?: Partial;\n customDefaultEditState?: EditState;\n customDrawData?: DrawData;\n customEditState?: EditState;\n customObjects?: DrawObject[];\n customObjectsFilter?: (imageData: any) => BaseObject[];\n objectsFilter?: (imageData: any) => BaseObject[];\n onAutoSave?: (annotations: BaseObject[], naturalSize: ISize) => void;\n onCancel?: () => void;\n onSave?: (id: string, labels: any[]) => Promise;\n onCommit?: (id: string, labels: any[]) => Promise;\n onReviewModify?: (id: string, labels: any[]) => Promise;\n onReviewAccept?: (id: string, labels: any[]) => Promise;\n onReviewReject?: (id: string, labels: any[]) => Promise;\n onPrev?: () => Promise;\n onNext?: () => Promise;\n setCategories?: Updater;\n}\n\nconst Edit: React.FC = (props) => {\n const {\n theme = 'dark',\n isOldMode,\n isSeperate,\n visible,\n categories,\n list,\n current,\n pagination,\n mode,\n enableReviewerModify,\n limitToolTypes,\n titleElements,\n actionElements,\n layoutOptions,\n displayOptionsResult,\n manualMode,\n forceColorByObject,\n limitActiveObject,\n customDefaultDrawData,\n onPrev,\n onNext,\n onCancel,\n onSave,\n onCommit,\n onReviewModify,\n onReviewAccept,\n onReviewReject,\n setCategories,\n onAutoSave,\n objectsFilter,\n } = props;\n const [modal, contextHolder] = Modal.useModal();\n\n const [annotations, setAnnotations] = useImmer([]);\n\n const [editState, setEditState] = useImmer(\n cloneDeep(DEFAULT_EDIT_STATE),\n );\n\n const [drawData, setDrawData] = useImmer({\n ...cloneDeep(DEFAULT_DRAW_DATA),\n ...customDefaultDrawData,\n });\n\n const canvasRef = useRef(null);\n const activeCanvasRef = useRef(null);\n const imgRef = useRef(null);\n\n const currAnnoItem = useMemo(() => {\n return list[current];\n }, [list, current]);\n\n const currImageItem = currAnnoItem;\n\n const { getAnnotColor, labelColors } = useColor({\n categories,\n editState,\n forceColorByObject,\n });\n\n const {\n scale,\n naturalSize,\n clientSize,\n containerMouse,\n contentMouse,\n imagePos,\n onLoadImg,\n onZoomIn,\n onZoomOut,\n onReset,\n CanvasContainer,\n isMousePress,\n } = useCanvasContainer({\n visible,\n drawData,\n allowMove: editState.allowMove,\n isRequiring: editState.isRequiring,\n minPadding: layoutOptions?.minPadding || {\n top: 30,\n left: 80,\n },\n cursorSize: drawData.brushSize,\n hideReferenceLine: !!layoutOptions?.hideReferenceLine,\n });\n\n const { translateObject, translateToObject } = useTranslate({\n isOldMode,\n clientSize,\n naturalSize,\n categories,\n getAnnotColor,\n });\n\n const {\n undo,\n redo,\n clearHistory,\n flagSaved,\n hadChangeRecord,\n updateHistory,\n setDrawDataWithHistory,\n } = useHistory({\n clientSize,\n naturalSize,\n setDrawData,\n onAutoSave,\n translateObject,\n });\n\n const { judgeEditingAttribute, onConfirmAttibuteEdit, onCancelAttibuteEdit } =\n useAttributes({\n setDrawDataWithHistory,\n categories,\n });\n\n const {\n addObject,\n removeObject,\n removeAllObjects,\n initObjectList,\n updateAllObject,\n updateObject,\n updateObjectWithoutHistory,\n updateAllObjectWithoutHistory,\n commitedObjects,\n currObject,\n } = useObjects({\n mode,\n categories,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n setEditState,\n translateToObject,\n judgeEditingAttribute,\n updateHistory,\n });\n\n const {\n labelOptions,\n latestLabel,\n classificationOptions,\n onChangeObjectHidden,\n onChangeCategoryHidden,\n onChangeActiveClass,\n onCreateCategory,\n onChangePointVisible,\n } = useLabels({\n isOldMode,\n mode,\n categories,\n setCategories,\n drawData,\n setDrawData,\n editState,\n updateObjectWithoutHistory,\n updateAllObjectWithoutHistory,\n });\n\n const { onAiAnnotation } = useAiModels({\n currImageItem,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n editState,\n setEditState,\n naturalSize,\n clientSize,\n getAnnotColor,\n });\n\n const { updateMouseCursor } = useMouseCursor({\n topCanvas: activeCanvasRef.current,\n editState,\n drawData,\n });\n\n const {\n onChangeObjectLabel,\n onFinishCurrCreate,\n onAcceptValidObjects,\n onAbortBatchObjects,\n selectTool,\n selectSubTool,\n forceChangeTool,\n onExitAIAnnotation,\n setBrushSize,\n activeAIAnnotation,\n onChangeSkeletonConf,\n onChangeLimitConf,\n onChangeAnnotsDisplayOpts,\n onChangeImageDisplayOpts,\n onChangeColorMode,\n onChangePointResolution,\n onSelectModel,\n isInAiSession,\n } = useToolActions({\n mode,\n manualMode: !!manualMode,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n editState,\n setEditState,\n getAnnotColor,\n clientSize,\n naturalSize,\n addObject,\n updateObject,\n updateAllObject,\n onAiAnnotation,\n });\n\n const { showSubTools, currSubTools } = useSubTools({\n drawData,\n onChangePointResolution,\n });\n\n const { objectHooksMap } = useToolInstances({\n imgRef,\n editState,\n clientSize,\n naturalSize,\n contentMouse,\n imagePos,\n containerMouse,\n canvasRef,\n activeCanvasRef,\n setEditState,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n updateHistory,\n updateObject,\n addObject,\n updateMouseCursor,\n onAiAnnotation,\n getAnnotColor,\n categories,\n displayOptionsResult,\n });\n\n const { updateRender, renderPopoverMenu } = useCanvasRender({\n visible,\n drawData,\n editState,\n clientSize,\n imagePos,\n containerMouse,\n canvasRef,\n activeCanvasRef,\n imgRef,\n objectHooksMap,\n });\n\n const {\n selectFocusObject,\n forceChangeFocusObject,\n mouseRightObjectsDropDownRender,\n } = useMouseEvents({\n visible,\n mode,\n drawData,\n setDrawData,\n editState,\n setEditState,\n clientSize,\n contentMouse,\n categories,\n updateRender,\n updateMouseCursor,\n objectHooksMap,\n imagePos,\n containerMouse,\n getAnnotColor,\n limitActiveObject,\n });\n\n const {\n onSaveAnnotations,\n onCommitAnnotations,\n onCancelAnnotations,\n onRejectAnnotations,\n onAcceptAnnotations,\n onModifyAnnotations,\n } = useActions({\n mode,\n currImageItem,\n modal,\n drawData,\n editState,\n setEditState,\n hadChangeRecord,\n categories,\n translateObject,\n flagSaved,\n onCancel,\n onSave,\n onCommit,\n onReviewModify,\n onReviewAccept,\n onReviewReject,\n classificationOptions,\n isInAiSession,\n });\n\n useShortcuts({\n visible,\n mode,\n drawData,\n categories,\n isMousePress,\n setDrawData,\n setEditState,\n onSaveAnnotations,\n onAcceptAnnotations,\n onRejectAnnotations,\n onChangeObjectHidden,\n onChangeCategoryHidden,\n removeObject,\n addObject,\n });\n\n const { resetDataWithImageData } = useDataEffect({\n imagePos,\n clientSize,\n naturalSize,\n annotations,\n setAnnotations,\n drawData,\n setDrawData,\n editState,\n setEditState,\n initObjectList,\n updateRender,\n clearHistory,\n objectsFilter,\n labelOptions,\n customDefaultDrawData,\n });\n\n // =================================================================================================================\n // Effects\n // =================================================================================================================\n\n /** Limit bottom layer body scroll */\n useEffect(() => {\n document.body.style.overflow = visible ? 'hidden' : 'overlay';\n return () => {\n document.body.style.overflow = 'overlay';\n };\n }, [visible]);\n\n /** Reset data when hiding the editor or switching images */\n useEffect(() => {\n resetDataWithImageData(currImageItem, visible);\n }, [visible, mode, current, currImageItem?.id, objectsFilter]);\n\n useEffect(() => {\n onChangeColorMode();\n }, [editState.annotsDisplayOptions.colorByCategory]);\n\n // =================================================================================================================\n // Render\n // =================================================================================================================\n\n const fileName = useMemo(() => {\n if (currAnnoItem?.name) return currAnnoItem?.name;\n if (currAnnoItem?.url && currAnnoItem?.url.indexOf('http') === 0) {\n const url = decodeURIComponent(currAnnoItem?.url);\n return url.replace(/\\?.*$/, '').split('/').pop() || '';\n }\n return '';\n }, [currAnnoItem]);\n\n const topBarCenterElement =\n pagination && pagination.show ? (\n \n ) : null;\n\n const { topToolsBar } = useTopTools({\n isOldMode,\n isSeperate,\n mode,\n hideTopBarActions: layoutOptions?.hideTopBarActions,\n fileName,\n drawData,\n editState,\n titleElements,\n actionElements,\n enableReviewerModify,\n labelOptions,\n showSubTools,\n currSubTools,\n topBarCenterElement,\n labelColors,\n selectSubTool,\n setBrushSize,\n activeAIAnnotation,\n onChangeImageDisplayOpts,\n onChangeAnnotsDisplayOpts,\n onChangeObjectLabel,\n onCreateCategory,\n onSaveAnnotations,\n onCommitAnnotations,\n onRejectAnnotations,\n onAcceptAnnotations,\n onModifyAnnotations,\n onCancelAnnotations,\n onSelectModel,\n });\n\n if (!visible) {\n return null;\n }\n\n return (\n \n {!layoutOptions?.hideTopBar && topToolsBar}\n \n {!layoutOptions?.hideMainToolBar && (\n \n )}\n
\n {currImageItem && (\n 0}\n >\n {CanvasContainer({\n className: 'edit-wrap',\n children: (\n <>\n {\n // Possibly size not changed but image changed\n updateRender();\n onLoadImg(event);\n }}\n />\n {renderPopoverMenu()}\n \n ),\n })}\n \n )}\n \n \n \n \n setDrawData((s) => {\n s.AIAnnotation = false;\n })\n }\n />\n {drawData.editingAttribute && (\n \n )}\n
\n {!layoutOptions?.hideRightList && (\n
\n {classificationOptions.length > 0 && (\n \n )}\n \n
\n )}\n \n {\n e.stopPropagation();\n }}\n >\n {contextHolder}\n \n \n );\n};\n\nexport default Edit;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgDoubleRight = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ width: 16, height: 16, fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"m8.379 7.648-4.56-5.825a.283.283 0 0 0-.224-.11h-1.38a.142.142 0 0 0-.113.231L6.842 8l-4.74 6.055a.143.143 0 0 0 .112.23h1.38a.289.289 0 0 0 .226-.109l4.559-5.823a.571.571 0 0 0 0-.705Zm5.428 0L9.248 1.823a.283.283 0 0 0-.225-.11h-1.38a.142.142 0 0 0-.112.231L12.27 8l-4.74 6.055a.143.143 0 0 0 .113.23h1.38a.289.289 0 0 0 .225-.109l4.56-5.823a.571.571 0 0 0 0-.705Z\", fill: \"#fff\", opacity: 0.85 }));\nexport { SvgDoubleRight as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTguMzc5IDcuNjQ4LTQuNTYtNS44MjVhLjI4My4yODMgMCAwIDAtLjIyNC0uMTFoLTEuMzhhLjE0Mi4xNDIgMCAwIDAtLjExMy4yMzFMNi44NDIgOGwtNC43NCA2LjA1NWEuMTQzLjE0MyAwIDAgMCAuMTEyLjIzaDEuMzhhLjI4OS4yODkgMCAwIDAgLjIyNi0uMTA5bDQuNTU5LTUuODIzYS41NzEuNTcxIDAgMCAwIDAtLjcwNVptNS40MjggMEw5LjI0OCAxLjgyM2EuMjgzLjI4MyAwIDAgMC0uMjI1LS4xMWgtMS4zOGEuMTQyLjE0MiAwIDAgMC0uMTEyLjIzMUwxMi4yNyA4bC00Ljc0IDYuMDU1YS4xNDMuMTQzIDAgMCAwIC4xMTMuMjNoMS4zOGEuMjg5LjI4OSAwIDAgMCAuMjI1LS4xMDlsNC41Ni01LjgyM2EuNTcxLjU3MSAwIDAgMCAwLS43MDVaIiBmaWxsPSIjZmZmIiBvcGFjaXR5PSIuODUiLz48L3N2Zz4=\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgDownload = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 14 14\", fill: \"#595959\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M6.887 9.657a.143.143 0 0 0 .225 0l2-2.53A.142.142 0 0 0 9 6.897H7.677V.854A.143.143 0 0 0 7.534.71H6.462a.143.143 0 0 0-.143.143v6.041H5a.142.142 0 0 0-.112.23l2 2.532Zm6.649-.625h-1.072a.143.143 0 0 0-.143.143v2.75H1.678v-2.75a.143.143 0 0 0-.142-.143H.464a.143.143 0 0 0-.143.143v3.536a.57.57 0 0 0 .572.572h12.214a.57.57 0 0 0 .571-.572V9.175a.143.143 0 0 0-.142-.143Z\" }));\nexport { SvgDownload as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTQgMTQiIGZpbGw9IiM1OTU5NTkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYuODg3IDkuNjU3YS4xNDMuMTQzIDAgMCAwIC4yMjUgMGwyLTIuNTNBLjE0Mi4xNDIgMCAwIDAgOSA2Ljg5N0g3LjY3N1YuODU0QS4xNDMuMTQzIDAgMCAwIDcuNTM0LjcxSDYuNDYyYS4xNDMuMTQzIDAgMCAwLS4xNDMuMTQzdjYuMDQxSDVhLjE0Mi4xNDIgMCAwIDAtLjExMi4yM2wyIDIuNTMyWm02LjY0OS0uNjI1aC0xLjA3MmEuMTQzLjE0MyAwIDAgMC0uMTQzLjE0M3YyLjc1SDEuNjc4di0yLjc1YS4xNDMuMTQzIDAgMCAwLS4xNDItLjE0M0guNDY0YS4xNDMuMTQzIDAgMCAwLS4xNDMuMTQzdjMuNTM2YS41Ny41NyAwIDAgMCAuNTcyLjU3MmgxMi4yMTRhLjU3LjU3IDAgMCAwIC41NzEtLjU3MlY5LjE3NWEuMTQzLjE0MyAwIDAgMC0uMTQyLS4xNDNaIi8+PC9zdmc+\";\n","import {\n CloseOutlined,\n LeftOutlined,\n RightOutlined,\n ZoomInOutlined,\n ZoomOutOutlined,\n} from '@ant-design/icons';\nimport { useKeyPress } from 'ahooks';\nimport { message } from 'antd';\nimport classNames from 'classnames';\nimport { cloneDeep, isEmpty } from 'lodash';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useImmer } from 'use-immer';\n\nimport { ReactComponent as DoubleRightIcon } from './assets/doubleRight.svg';\nimport { ReactComponent as DownloadIcon } from './assets/download.svg';\nimport { ImageView } from './components/ImageView';\nimport PopoverMenu from './components/PopoverMenu';\nimport TopTools from './components/TopTools';\nimport { DisplayOption, EElementType, MAX_SCALE, MIN_SCALE } from './constants';\nimport { EDITOR_SHORTCUTS, EShortcuts } from './constants/shortcuts';\nimport useCanvasContainer from './hooks/useCanvasContainer';\nimport useCanvasRender from './hooks/useCanvasRender';\nimport useColor from './hooks/useColor';\nimport useDataEffect from './hooks/useDataEffect';\nimport useHistory from './hooks/useHistory';\nimport useMouseCursor from './hooks/useMouseCursor';\nimport useMouseEvents from './hooks/useMouseEvents';\nimport useObjects from './hooks/useObjects';\nimport useTranslate from './hooks/useTranslate';\nimport { useToolInstances } from './tools/base';\nimport {\n BaseObject,\n Category,\n DEFAULT_DRAW_DATA,\n DEFAULT_EDIT_STATE,\n DrawData,\n AnnoItem,\n DrawObject,\n EditState,\n EditorMode,\n} from './type';\n\nimport './index.less';\n\nexport interface PreviewProps {\n isOldMode?: boolean; // is old dataset design mode\n visible: boolean;\n categories: Category[];\n list: AnnoItem[];\n current: number;\n objectsFilter?: (imageData: any) => BaseObject[];\n onCancel?: () => void;\n onPrev?: () => Promise;\n onNext?: () => Promise;\n displayOptionsResult: { [key in DisplayOption]?: boolean };\n}\n\nconst Preview: React.FC = (props) => {\n const {\n isOldMode,\n visible,\n categories,\n list,\n current,\n onPrev,\n onNext,\n onCancel,\n objectsFilter,\n displayOptionsResult,\n } = props;\n\n const [annotations, setAnnotations] = useImmer([]);\n\n const [editState, setEditState] = useImmer(\n cloneDeep(DEFAULT_EDIT_STATE),\n );\n\n const [drawData, setDrawData] = useImmer(\n cloneDeep(DEFAULT_DRAW_DATA),\n );\n\n const canvasRef = useRef(null);\n const activeCanvasRef = useRef(null);\n const imgRef = useRef(null);\n\n const {\n scale,\n naturalSize,\n clientSize,\n containerMouse,\n contentMouse,\n imagePos,\n onLoadImg,\n onZoomIn,\n onZoomOut,\n CanvasContainer,\n } = useCanvasContainer({\n visible,\n drawData,\n allowMove: editState.allowMove,\n isRequiring: editState.isRequiring,\n minPadding: {\n top: 120,\n left: 300,\n },\n cursorSize: drawData.brushSize,\n onClickMaskBg: onCancel,\n });\n\n const { getAnnotColor } = useColor({\n categories,\n editState,\n });\n\n const { updateMouseCursor } = useMouseCursor({\n topCanvas: activeCanvasRef.current,\n editState,\n drawData,\n });\n\n const { translateToObject } = useTranslate({\n isOldMode,\n clientSize,\n naturalSize,\n categories,\n getAnnotColor,\n });\n\n const { clearHistory, updateHistory, setDrawDataWithHistory } = useHistory({\n clientSize,\n naturalSize,\n setDrawData,\n });\n\n const { addObject, initObjectList, updateObject } = useObjects({\n mode: EditorMode.View,\n categories,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n setEditState,\n translateToObject,\n updateHistory,\n });\n\n const { objectHooksMap } = useToolInstances({\n imgRef,\n editState,\n clientSize,\n naturalSize,\n contentMouse,\n imagePos,\n containerMouse,\n canvasRef,\n activeCanvasRef,\n setEditState,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n updateHistory,\n updateObject,\n addObject,\n updateMouseCursor,\n displayOptionsResult,\n getAnnotColor,\n categories,\n });\n\n const { updateRender } = useCanvasRender({\n visible,\n drawData,\n editState,\n clientSize,\n imagePos,\n containerMouse,\n canvasRef,\n activeCanvasRef,\n imgRef,\n objectHooksMap,\n });\n\n useMouseEvents({\n visible,\n mode: EditorMode.View,\n drawData,\n setDrawData,\n editState,\n setEditState,\n clientSize,\n contentMouse,\n categories,\n updateRender,\n updateMouseCursor,\n objectHooksMap,\n imagePos,\n containerMouse,\n getAnnotColor,\n limitActiveObject: true,\n });\n\n // =================================================================================================================\n // Effects\n // =================================================================================================================\n\n /** Limit bottom layer body scroll */\n useEffect(() => {\n document.body.style.overflow = visible ? 'hidden' : 'overlay';\n }, [visible]);\n\n const { resetDataWithImageData } = useDataEffect({\n imagePos,\n clientSize,\n naturalSize,\n annotations,\n setAnnotations,\n drawData,\n setDrawData,\n editState,\n setEditState,\n initObjectList,\n updateRender,\n clearHistory,\n objectsFilter,\n labelOptions: categories,\n });\n\n /** Reset data when hiding the editor or switching images */\n useEffect(() => {\n resetDataWithImageData(list[current], visible);\n }, [visible, list[current], objectsFilter]);\n\n /** Custom options changed */\n useEffect(() => {\n updateRender();\n }, [displayOptionsResult]);\n\n // =================================================================================================================\n // Preview\n // =================================================================================================================\n\n const [showInfo, setShowInfo] = useState(true);\n const changeShowInfo = useCallback(() => {\n setShowInfo((s) => {\n return !s;\n });\n }, []);\n\n /** Snapshot image */\n const onDownload: React.MouseEventHandler = async (event) => {\n event.preventDefault();\n event.stopPropagation();\n\n const hide = message.loading('Creating image...', 60000);\n const loadDataUrl = () => {\n return new Promise((resolve, reject) => {\n setTimeout(function () {\n try {\n if (!canvasRef.current) return;\n const dataUrl = canvasRef.current.toDataURL();\n let a = document.createElement('a');\n a.setAttribute('download', `${list[current].id}.png`);\n a.setAttribute('href', dataUrl);\n a.click();\n hide();\n resolve(null);\n } catch (e) {\n reject(e);\n }\n }, 500);\n });\n };\n\n try {\n setEditState((s) => {\n s.focusObjectIndex = -1;\n });\n updateRender();\n await loadDataUrl();\n } catch (error) {\n console.error(error);\n hide();\n message.error('Create image fail, please try again');\n }\n };\n\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.PreviousImage].shortcut,\n () => {\n if (visible) onPrev?.();\n },\n {\n exactMatch: true,\n },\n );\n\n useKeyPress(\n EDITOR_SHORTCUTS[EShortcuts.NextImage].shortcut,\n () => {\n if (visible) onNext?.();\n },\n {\n exactMatch: true,\n },\n );\n\n // =================================================================================================================\n // Render\n // =================================================================================================================\n\n const renderPopoverMenu = () => {\n if (\n editState.focusObjectIndex > -1 &&\n drawData.objectList[editState.focusObjectIndex] &&\n !drawData.objectList[editState.focusObjectIndex]?.hidden &&\n editState.focusEleIndex > -1 &&\n editState.focusEleType === EElementType.Circle\n ) {\n const target =\n drawData.objectList[editState.focusObjectIndex]?.keypoints?.points?.[\n editState.focusEleIndex\n ];\n if (target) {\n return (\n \n );\n }\n }\n return <>;\n };\n\n if (!visible) {\n return <>;\n }\n\n const metadata = !isEmpty(list[current]?.metadata)\n ? list[current].metadata\n : undefined;\n\n return (\n
\n ,\n onClick: onZoomIn,\n disabled: scale >= MAX_SCALE,\n },\n {\n icon: ,\n onClick: onZoomOut,\n disabled: scale <= MIN_SCALE,\n },\n {\n icon: ,\n onClick: onDownload,\n },\n ]}\n rightTools={[\n {\n icon: ,\n onClick: onCancel,\n },\n ]}\n >\n {`${current + 1} / ${list.length}`}\n \n {CanvasContainer({\n className: 'edit-wrap',\n children: (\n <>\n \n {renderPopoverMenu()}\n \n ),\n })}\n {\n \n \n
\n }\n {\n \n \n \n }\n {showInfo && metadata && (\n
\n
\n {Object.keys(metadata).map((key) => (\n
\n {key}\n
\n {typeof metadata[key] === 'object'\n ? JSON.stringify(metadata[key])\n : metadata[key]}\n
\n ))}\n
\n
\n
\n \n
\n
\n )}\n {!showInfo && (\n
\n \n
\n )}\n
\n );\n};\n\nexport default Preview;\n","import { CursorState } from 'ahooks/lib/useMouse';\nimport { cloneDeep } from 'lodash';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { useImmer } from 'use-immer';\n\nimport { ImageView } from './components/ImageView';\nimport { DisplayOption } from './constants';\nimport useCanvasRender from './hooks/useCanvasRender';\nimport useColor from './hooks/useColor';\nimport useDataEffect from './hooks/useDataEffect';\nimport useHistory from './hooks/useHistory';\nimport useMouseCursor from './hooks/useMouseCursor';\nimport useObjects from './hooks/useObjects';\nimport useTranslate from './hooks/useTranslate';\nimport { useToolInstances } from './tools/base';\nimport {\n BaseObject,\n Category,\n DEFAULT_DRAW_DATA,\n DEFAULT_EDIT_STATE,\n DrawData,\n EditState,\n EditorMode,\n AnnoItem,\n DrawObject,\n} from './type';\nimport { zoomImgSize } from './utils/compute';\n\nimport './index.less';\n\nexport interface ViewProps {\n isOldMode?: boolean; // is old dataset design mode\n categories: Category[];\n data: AnnoItem;\n objectsFilter?: (imageData: any) => BaseObject[];\n currentSize?: ISize;\n wrapWidth?: number;\n wrapHeight?: number;\n minHeight?: number;\n displayOptionsResult?: { [key in DisplayOption]?: boolean };\n}\n\nconst View: React.FC = (props) => {\n const {\n isOldMode,\n categories,\n data,\n currentSize,\n wrapWidth,\n wrapHeight,\n minHeight,\n objectsFilter,\n displayOptionsResult,\n } = props;\n\n const [annotations, setAnnotations] = useImmer([]);\n\n const [editState, setEditState] = useImmer(\n cloneDeep(DEFAULT_EDIT_STATE),\n );\n\n const [drawData, setDrawData] = useImmer(\n cloneDeep(DEFAULT_DRAW_DATA),\n );\n\n const canvasRef = useRef(null);\n const activeCanvasRef = useRef(null);\n const imgRef = useRef(null);\n\n const imagePos = useRef({ x: 0, y: 0 });\n const [naturalSize, setNaturalSize] = useState({\n width: 0,\n height: minHeight || 0,\n });\n\n const clientSize: ISize = useMemo(() => {\n // Exact size passed in from outside.\n if (currentSize) {\n return currentSize;\n }\n if (!naturalSize.width) {\n // Init default size\n return {\n width: wrapWidth || 0,\n height: wrapHeight || minHeight || 0,\n };\n }\n const [width, height] = zoomImgSize(\n naturalSize.width,\n naturalSize.height,\n wrapWidth,\n wrapHeight,\n );\n return { width, height };\n }, [wrapWidth, wrapHeight, minHeight, naturalSize, currentSize]);\n\n const [contentMouse, containerMouse] = useMemo(() => {\n const mouse: CursorState = {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n elementX: 0,\n elementY: 0,\n elementPosX: 0,\n elementPosY: 0,\n elementW: clientSize.width,\n elementH: clientSize.height,\n };\n return [mouse, mouse];\n }, [clientSize]);\n\n const { getAnnotColor } = useColor({\n categories,\n editState,\n });\n\n const { translateToObject } = useTranslate({\n isOldMode,\n clientSize,\n naturalSize,\n categories,\n getAnnotColor,\n });\n\n const { clearHistory, updateHistory, setDrawDataWithHistory } = useHistory({\n clientSize,\n naturalSize,\n setDrawData,\n });\n\n const { addObject, initObjectList, updateObject } = useObjects({\n mode: EditorMode.View,\n categories,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n setEditState,\n translateToObject,\n updateHistory,\n });\n\n const { updateMouseCursor } = useMouseCursor({\n topCanvas: activeCanvasRef.current,\n editState,\n drawData,\n });\n\n const { objectHooksMap } = useToolInstances({\n imgRef,\n editState,\n clientSize,\n naturalSize,\n contentMouse,\n containerMouse,\n imagePos,\n canvasRef,\n activeCanvasRef,\n setEditState,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n updateHistory,\n updateObject,\n addObject,\n updateMouseCursor,\n displayOptionsResult,\n getAnnotColor,\n categories,\n });\n\n const { updateRender } = useCanvasRender({\n visible: true,\n drawData,\n editState,\n clientSize,\n imagePos,\n containerMouse,\n canvasRef,\n activeCanvasRef,\n imgRef,\n objectHooksMap,\n });\n\n // =================================================================================================================\n // Effects\n // =================================================================================================================\n\n const { resetDataWithImageData } = useDataEffect({\n imagePos,\n clientSize,\n naturalSize,\n annotations,\n setAnnotations,\n drawData,\n setDrawData,\n editState,\n setEditState,\n initObjectList,\n updateRender,\n clearHistory,\n objectsFilter,\n labelOptions: categories,\n });\n\n /** Reset data when hiding the editor or switching images */\n useEffect(() => {\n resetDataWithImageData(data, true);\n }, [data, objectsFilter]);\n\n /** Custom options changed */\n useEffect(() => {\n updateRender();\n }, [displayOptionsResult]);\n\n const onLoadImg = (e: React.UIEvent) => {\n // Set natural size.\n const img = e.target as HTMLImageElement;\n const size = {\n width: img.naturalWidth,\n height: img.naturalHeight,\n };\n setNaturalSize(size);\n };\n\n // =================================================================================================================\n // Render\n // =================================================================================================================\n\n return (\n
\n \n
\n );\n};\n\nexport default View;\n","import { clearCanvas, drawImage, drawRectWithFill } from '../utils/draw';\n\nimport { ToolInstanceHook, ToolHooksFunc } from './base';\n\nconst useMatting: ToolInstanceHook = ({\n imgRef,\n imagePos,\n canvasRef,\n clientSize,\n displayOptionsResult,\n}) => {\n const displayMattingImg = (alphaImg: HTMLImageElement) => {\n if (!alphaImg || !canvasRef.current || !imgRef.current) return;\n const { showMattingColorFill } = displayOptionsResult || {};\n const ctx = canvasRef.current!.getContext('2d') as CanvasRenderingContext2D;\n const rect = {\n x: imagePos.current.x,\n y: imagePos.current.y,\n ...clientSize,\n };\n clearCanvas(canvasRef.current);\n drawImage(canvasRef.current, alphaImg, rect);\n if (showMattingColorFill) {\n // Background fill.\n ctx.globalCompositeOperation = 'source-out';\n drawRectWithFill(canvasRef.current, rect, '#000');\n // Core fill.\n ctx.globalCompositeOperation = 'destination-atop';\n drawRectWithFill(canvasRef.current, rect, '#fff');\n } else {\n // Original image fill.\n ctx.globalCompositeOperation = 'source-in';\n drawImage(canvasRef.current, imgRef.current, rect);\n // Background blank.\n ctx.globalCompositeOperation = 'destination-over';\n drawRectWithFill(canvasRef.current, rect, '#fff');\n }\n };\n\n const renderObject: ToolHooksFunc.RenderObject = ({ object }) => {\n const { alphaImageElement } = object;\n if (alphaImageElement) {\n displayMattingImg(alphaImageElement);\n alphaImageElement.onload = () => {\n displayMattingImg(alphaImageElement);\n };\n }\n };\n\n const renderCreatingObject: ToolHooksFunc.RenderCreatingObject = () => {\n // todo\n };\n\n const renderEditingObject: ToolHooksFunc.RenderEditingObject = () => {\n // todo\n };\n\n const renderPrompt: ToolHooksFunc.RenderPrompt = () => {\n // nothing in matting\n };\n\n const startEditingWhenMouseDown: ToolHooksFunc.StartEditingWhenMouseDown =\n () => {\n return false;\n };\n\n const startCreatingWhenMouseDown: ToolHooksFunc.StartCreatingWhenMouseDown =\n () => {\n return false;\n };\n\n const updateEditingWhenMouseMove: ToolHooksFunc.UpdateEditingWhenMouseMove =\n () => {\n return false;\n };\n\n const updateCreatingWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove =\n () => {\n return false;\n };\n\n const finishEditingWhenMouseUp: ToolHooksFunc.FinishEditingWhenMouseUp =\n () => {\n return false;\n };\n\n const finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp =\n () => {\n return false;\n };\n\n return {\n renderObject,\n renderCreatingObject,\n renderEditingObject,\n renderPrompt,\n startEditingWhenMouseDown,\n startCreatingWhenMouseDown,\n updateEditingWhenMouseMove,\n updateCreatingWhenMouseMove,\n finishEditingWhenMouseUp,\n finishCreatingWhenMouseUp,\n };\n};\n\nexport default useMatting;\n","import { drawCircleWithFill } from '../utils/draw';\n\nimport { ToolInstanceHook, ToolHooksFunc } from './base';\n\nconst usePoint: ToolInstanceHook = ({ canvasRef }) => {\n const renderObject: ToolHooksFunc.RenderObject = ({ object, styles }) => {\n const { point } = object;\n if (point && point.visible) {\n const { x, y } = point;\n const { strokeColor, fillColor } = styles;\n drawCircleWithFill(\n canvasRef.current!,\n { x, y },\n 4,\n fillColor,\n 2,\n strokeColor,\n );\n }\n };\n\n const renderCreatingObject: ToolHooksFunc.RenderCreatingObject = () => {\n // todo\n };\n\n const renderEditingObject: ToolHooksFunc.RenderEditingObject = () => {\n // to do\n };\n\n const renderPrompt: ToolHooksFunc.RenderPrompt = () => {\n // nothing in rect\n };\n\n const startEditingWhenMouseDown: ToolHooksFunc.StartEditingWhenMouseDown =\n () => {\n return false;\n };\n\n const startCreatingWhenMouseDown: ToolHooksFunc.StartCreatingWhenMouseDown =\n () => {\n return false;\n };\n\n const updateEditingWhenMouseMove: ToolHooksFunc.UpdateEditingWhenMouseMove =\n () => {\n return false;\n };\n\n const updateCreatingWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove =\n () => {\n return false;\n };\n\n const finishEditingWhenMouseUp: ToolHooksFunc.FinishEditingWhenMouseUp =\n () => {\n return false;\n };\n\n const finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp =\n () => {\n return false;\n };\n\n return {\n renderObject,\n renderCreatingObject,\n renderEditingObject,\n renderPrompt,\n startEditingWhenMouseDown,\n startCreatingWhenMouseDown,\n updateEditingWhenMouseMove,\n updateCreatingWhenMouseMove,\n finishEditingWhenMouseUp,\n finishCreatingWhenMouseUp,\n };\n};\n\nexport default usePoint;\n","import { cloneDeep } from 'lodash';\n\nimport { EElementType, EObjectType, ESubToolItem } from '../constants';\nimport {\n ANNO_FILL_ALPHA,\n ANNO_FILL_COLOR,\n ANNO_STROKE_ALPHA,\n ANNO_STROKE_COLOR,\n PROMPT_FILL_COLOR,\n} from '../constants/render';\nimport { EPromptType, PromptItem } from '../type';\nimport { hexToRgba } from '../utils/color';\nimport {\n getClosestPointOnLineSegment,\n getLinesFromPolygon,\n getRectFromPoints,\n isInCanvas,\n isPointOnPoint,\n movePoint,\n movePolygon,\n translateAnnotCoord,\n translatePointCoord,\n translatePolygonCoord,\n translateRectCoord,\n} from '../utils/compute';\nimport {\n drawCircleWithFill,\n drawLine,\n drawPolygonWithFill,\n drawQuadraticPath,\n drawRect,\n shadeEverythingButRect,\n} from '../utils/draw';\n\nimport {\n ToolInstanceHook,\n ToolHooksFunc,\n editBaseElementWhenMouseDown,\n getPromptBoolean,\n} from './base';\n\nconst usePolygon: ToolInstanceHook = ({\n editState,\n clientSize,\n naturalSize,\n imagePos,\n containerMouse,\n canvasRef,\n activeCanvasRef,\n contentMouse,\n setEditState,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n updateHistory,\n updateMouseCursor,\n updateObject,\n addObject,\n onAiAnnotation,\n displayOptionsResult,\n}) => {\n const renderObject: ToolHooksFunc.RenderObject = ({\n object,\n color,\n styles,\n isFocus,\n isJustCreated,\n }) => {\n const { polygon } = object;\n if (polygon && polygon.visible) {\n let fiilColor = styles.fillColor;\n if (!isFocus && !isJustCreated) {\n fiilColor = hexToRgba(color, ANNO_FILL_ALPHA.DEFAULT_SHAPE);\n }\n let thickness = styles.thickness;\n if (displayOptionsResult) {\n if (!displayOptionsResult.showSegFilling && !isFocus) {\n fiilColor = 'transparent';\n }\n if (!displayOptionsResult.showSegContour) {\n thickness = 0;\n }\n }\n\n polygon?.group.forEach((polygon) => {\n drawPolygonWithFill(\n canvasRef.current,\n polygon,\n fiilColor,\n styles.strokeColor,\n thickness,\n styles.strokeDash,\n );\n });\n }\n };\n\n const renderCreatingObject: ToolHooksFunc.RenderCreatingObject = ({\n object,\n styles,\n }) => {\n // draw unfinished points and lines\n const { currIndex } = object;\n const annotObject = translateAnnotCoord(object, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n const { polygon } = annotObject;\n if (polygon && polygon.visible) {\n // draw creating polygon\n polygon.group.forEach((polygon, polygonIdx) => {\n if (currIndex === polygonIdx) {\n polygon.forEach((point, pointIdx) => {\n // draw points\n drawCircleWithFill(\n activeCanvasRef.current!,\n point,\n pointIdx === 0 ? 6 : 4,\n styles.strokeColor,\n 3,\n '#1f4dd8',\n );\n // draw lines\n if (polygon.length > 1 && pointIdx < polygon.length - 1) {\n drawLine(\n activeCanvasRef.current!,\n polygon[pointIdx],\n polygon[pointIdx + 1],\n hexToRgba(styles.strokeColor, ANNO_STROKE_ALPHA.CREATING),\n 2.5,\n [0],\n );\n } else if (pointIdx === polygon.length - 1) {\n drawLine(\n activeCanvasRef.current!,\n polygon[pointIdx],\n {\n x: containerMouse.elementX,\n y: containerMouse.elementY,\n },\n hexToRgba(styles.strokeColor, ANNO_STROKE_ALPHA.CREATING_LINE),\n 2.5,\n [5],\n );\n }\n });\n } else {\n // draw polygon\n drawPolygonWithFill(\n activeCanvasRef.current,\n polygon,\n hexToRgba('#1f4dd8', 0.5),\n '#1f4dd8',\n 2,\n [0],\n );\n\n // draw points\n polygon.forEach((point) => {\n drawCircleWithFill(\n activeCanvasRef.current!,\n point,\n 4,\n styles.strokeColor,\n 3,\n '#1f4dd8',\n );\n });\n }\n });\n }\n };\n\n const renderEditingObject: ToolHooksFunc.RenderEditingObject = ({\n object,\n color,\n styles,\n isFocus,\n }) => {\n const { polygon } = object;\n if (polygon && polygon.visible) {\n const isFocusOnPolygon =\n isFocus &&\n editState.focusEleType === EElementType.Polygon &&\n editState.focusEleIndex === 0;\n\n polygon.group.forEach((polygon) => {\n const fillColor = isFocusOnPolygon\n ? hexToRgba(color, 0.2)\n : 'transparent';\n drawPolygonWithFill(\n activeCanvasRef.current,\n polygon,\n fillColor,\n styles.strokeColor,\n styles.thickness,\n styles.strokeDash,\n );\n });\n\n // draw points when actived\n polygon.group.forEach((points) => {\n points.forEach((point) => {\n drawCircleWithFill(\n activeCanvasRef.current!,\n point,\n 4,\n color,\n 2,\n '#fff',\n );\n });\n });\n\n // drawHighlight point when foucs\n const { index, pointIndex, lineIndex } = editState.focusPolygonInfo;\n if (index > -1 && pointIndex > -1) {\n const focusPoint = polygon.group[index][pointIndex];\n if (focusPoint) {\n drawCircleWithFill(\n activeCanvasRef.current!,\n focusPoint,\n 4,\n '#fff',\n 5,\n color,\n );\n }\n } else if (index > -1 && lineIndex > -1) {\n const lines = getLinesFromPolygon(polygon.group[index]);\n if (lines[lineIndex]) {\n const { start, end } = lines[lineIndex];\n const midPoint = getClosestPointOnLineSegment(\n {\n x: contentMouse.elementX + imagePos.current.x,\n y: contentMouse.elementY + imagePos.current.y,\n },\n start,\n end,\n );\n if (midPoint) {\n drawCircleWithFill(\n activeCanvasRef.current!,\n midPoint,\n 4,\n '#fff',\n 5,\n color,\n );\n }\n }\n }\n }\n };\n\n const renderPrompt: ToolHooksFunc.RenderPrompt = ({ prompt }) => {\n // draw creating prompt\n if (prompt.creatingPrompt) {\n const strokeColor = ANNO_STROKE_COLOR.CREATING;\n const fillColor = ANNO_FILL_COLOR.CREATING;\n switch (prompt.creatingPrompt.type) {\n case EPromptType.Rect: {\n const { startPoint } = prompt.creatingPrompt;\n const rect = getRectFromPoints(\n startPoint!,\n {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n },\n {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n },\n );\n const canvasCoordRect = translateRectCoord(rect, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n drawRect(\n activeCanvasRef.current,\n canvasCoordRect,\n strokeColor,\n 2,\n [0],\n fillColor,\n );\n break;\n }\n case EPromptType.Point: {\n if (!prompt.creatingPrompt.point) break;\n const canvasCoordPoint = translatePointCoord(\n prompt.creatingPrompt.point,\n {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n },\n );\n drawCircleWithFill(\n activeCanvasRef.current!,\n canvasCoordPoint,\n 4,\n prompt.creatingPrompt.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE,\n 2,\n '#fff',\n );\n }\n case EPromptType.Stroke: {\n if (!prompt.creatingPrompt.stroke || !prompt.creatingPrompt.radius)\n break;\n const canvasCoordStroke = translatePolygonCoord(\n prompt.creatingPrompt.stroke,\n {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n },\n );\n const radius =\n (prompt.creatingPrompt.radius * clientSize.width) /\n naturalSize.width;\n const color = prompt.creatingPrompt.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE;\n drawQuadraticPath(\n activeCanvasRef.current!,\n canvasCoordStroke,\n color,\n radius,\n );\n break;\n }\n default:\n break;\n }\n\n // draw active area while loading ai annotations\n if (editState.isRequiring && prompt.activeRectWhileLoading) {\n const canvasCoordRect = translateRectCoord(\n prompt.activeRectWhileLoading,\n {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n },\n );\n shadeEverythingButRect(activeCanvasRef.current!, canvasCoordRect);\n }\n }\n\n // draw existing prompts\n if (prompt.promptsQueue) {\n prompt.promptsQueue.forEach((item) => {\n if (item.type === EPromptType.Point) {\n const canvasCoordPoint = translatePointCoord(item.point!, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n drawCircleWithFill(\n activeCanvasRef.current!,\n canvasCoordPoint,\n 4,\n item.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE,\n 2,\n '#fff',\n );\n }\n });\n }\n };\n\n const updateAiPolygonWhenMouseDown = (event: MouseEvent) => {\n const point = {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n };\n setDrawData((s) => {\n switch (s.selectedSubTool) {\n case ESubToolItem.AutoSegmentByBox:\n s.prompt.creatingPrompt = {\n type: EPromptType.Rect,\n startPoint: point,\n isPositive: true,\n };\n break;\n case ESubToolItem.AutoSegmentByClick:\n s.prompt.creatingPrompt = {\n type: EPromptType.Point,\n startPoint: point,\n point: point,\n isPositive: getPromptBoolean(event),\n };\n break;\n case ESubToolItem.AutoSegmentByStroke: {\n s.prompt.creatingPrompt = {\n type: EPromptType.Stroke,\n startPoint: point,\n stroke: [point],\n radius: s.brushSize,\n isPositive: getPromptBoolean(event),\n };\n break;\n }\n default: {\n }\n }\n });\n };\n\n const startEditingWhenMouseDown: ToolHooksFunc.StartEditingWhenMouseDown = ({\n object,\n event,\n }) => {\n if (drawData.AIAnnotation) {\n updateAiPolygonWhenMouseDown(event);\n return true;\n }\n if (event?.button === 2) return false;\n if (\n editBaseElementWhenMouseDown({\n object,\n contentMouse,\n setEditState,\n setDrawData,\n })\n ) {\n return true;\n }\n return false;\n };\n\n const startCreatingWhenMouseDown: ToolHooksFunc.StartCreatingWhenMouseDown =\n ({ event, point, basic }) => {\n setDrawData((s) => {\n if (!s.creatingObject || s.activeObjectIndex > -1) {\n s.activeObjectIndex = -1;\n if (s.AIAnnotation) {\n switch (s.selectedSubTool) {\n case ESubToolItem.AutoSegmentByBox:\n s.prompt.creatingPrompt = {\n type: EPromptType.Rect,\n startPoint: point,\n isPositive: true,\n };\n break;\n case ESubToolItem.AutoSegmentByClick:\n s.prompt.creatingPrompt = {\n type: EPromptType.Point,\n startPoint: point,\n point: point,\n isPositive: getPromptBoolean(event),\n };\n break;\n case ESubToolItem.AutoSegmentByStroke: {\n s.prompt.creatingPrompt = {\n type: EPromptType.Stroke,\n startPoint: point,\n stroke: [point],\n radius: s.brushSize,\n isPositive: getPromptBoolean(event),\n };\n break;\n }\n }\n } else {\n // create a new polygon manually\n s.creatingObject = {\n type: EObjectType.Polygon,\n polygon: {\n visible: true,\n group: [[point]],\n },\n currIndex: 0,\n ...basic,\n };\n updateHistory(cloneDeep(drawData));\n }\n } else {\n if (!s.AIAnnotation) {\n const currIndex = s.creatingObject.currIndex as number;\n const polygon = s.creatingObject.polygon as IElement;\n if (currIndex > -1) {\n const startPoint = polygon.group[currIndex][0];\n // finish creating polygon when click on startpoint\n if (isPointOnPoint(startPoint, contentMouse)) {\n s.creatingObject.currIndex = -1;\n } else if (s.creatingObject.polygon) {\n polygon.group[currIndex].push(point);\n updateHistory(cloneDeep(s));\n }\n } else {\n polygon.group.push([point]);\n s.creatingObject.currIndex = polygon.group.length - 1;\n updateHistory(cloneDeep(s));\n }\n } else {\n updateAiPolygonWhenMouseDown(event);\n }\n }\n });\n return true;\n };\n\n const updatePolygonWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove =\n ({ event }) => {\n const allowRecordMousePath =\n drawData.selectedSubTool === ESubToolItem.AutoSegmentByStroke;\n // Left/Right button is pressed while mousemove\n const isMousePress = event.buttons === 1 || event.buttons === 2;\n if (\n drawData.prompt.creatingPrompt &&\n allowRecordMousePath &&\n isMousePress\n ) {\n const mouse = {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n };\n setDrawData((s) => {\n s.prompt.creatingPrompt?.stroke?.push(mouse);\n });\n return true;\n }\n\n if (drawData.creatingObject) {\n return true;\n }\n\n return false;\n };\n\n const updateEditingWhenMouseMove: ToolHooksFunc.UpdateEditingWhenMouseMove =\n ({ event }) => {\n if (drawData.AIAnnotation) {\n updateMouseCursor('crosshair');\n return updatePolygonWhenMouseMove({ event });\n }\n const {\n focusEleType,\n focusEleIndex,\n focusObjectIndex,\n focusPolygonInfo,\n } = editState;\n if (\n focusObjectIndex === drawData.activeObjectIndex &&\n focusEleType === EElementType.Polygon\n ) {\n if (focusPolygonInfo.pointIndex > -1) {\n updateMouseCursor('pointer');\n } else if (focusPolygonInfo.lineIndex > -1) {\n updateMouseCursor('crosshair');\n } else {\n updateMouseCursor('move');\n }\n }\n if (focusEleType === EElementType.Polygon && focusEleIndex === 0) {\n const { index, pointIndex } = editState.focusPolygonInfo;\n if (editState.startElementMovePoint && index > -1) {\n if (pointIndex > -1) {\n // move single point\n setDrawData((s) => {\n if (\n s.activeObjectIndex > -1 &&\n editState.focusEleIndex > -1 &&\n editState.startElementMovePoint &&\n s.creatingObject?.polygon?.group[index]\n ) {\n const polygon = s.creatingObject?.polygon?.group[index];\n polygon[pointIndex] = movePoint(contentMouse);\n }\n });\n return true;\n } else {\n // move polygon\n setDrawData((s) => {\n if (\n s.activeObjectIndex > -1 &&\n editState.focusEleIndex > -1 &&\n editState.startElementMovePoint &&\n s.creatingObject?.polygon?.group[index]\n ) {\n const polygon = s.creatingObject?.polygon?.group[index];\n const newPolygon = movePolygon(\n polygon,\n editState.startElementMovePoint,\n contentMouse,\n );\n s.creatingObject.polygon.group[index] = newPolygon;\n // TODO: fix move offset\n // console.log(\n // '>>> move polygon',\n // editState.startElementMovePoint.mousePoint,\n // 'to', {\n // x: contentMouse.elementX,\n // y: contentMouse.elementY,\n // }\n // );\n setEditState((s) => {\n if (s.startElementMovePoint)\n s.startElementMovePoint.mousePoint = {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n };\n });\n }\n });\n return true;\n }\n }\n }\n return false;\n };\n\n const updateCreatingWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove =\n ({ event }) => {\n return updatePolygonWhenMouseMove({ event });\n };\n\n const getExistPolygonPrompts = (): PromptItem[] => {\n if (\n drawData.prompt.promptsQueue &&\n drawData.prompt.promptsQueue.length > 0\n ) {\n return drawData.prompt.promptsQueue;\n } else {\n // add exsit polygon as prompt item while editing instance by ai\n const addExistPolygon =\n !drawData.prompt.sessionId && drawData.creatingObject;\n\n if (addExistPolygon) {\n const existPolygons =\n drawData.creatingObject?.polygon?.group.map((polygon) => {\n return polygon.reduce((acc: number[], point) => {\n return acc.concat([point.x, point.y]);\n }, []);\n }) || [];\n\n const modifyPromptItem: PromptItem = {\n type: EPromptType.Modify,\n isPositive: true,\n polygons: existPolygons,\n };\n\n return [modifyPromptItem];\n } else {\n return [];\n }\n }\n };\n\n const finishAiPolygonWhenMouseUp = () => {\n const mouse = {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n };\n const existPrompts = getExistPolygonPrompts();\n switch (drawData.selectedSubTool) {\n case ESubToolItem.AutoSegmentByBox: {\n if (!drawData.prompt.creatingPrompt?.startPoint) break;\n if (\n mouse.x === drawData.prompt.creatingPrompt.startPoint?.x ||\n mouse.y === drawData.prompt.creatingPrompt.startPoint?.y\n ) {\n setDrawData((s) => (s.prompt.creatingPrompt = undefined));\n break;\n }\n const rect = getRectFromPoints(\n drawData.prompt.creatingPrompt.startPoint as IPoint,\n mouse,\n {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n },\n );\n const promptItem: PromptItem = {\n type: EPromptType.Rect,\n isPositive: true,\n rect,\n };\n setDrawDataWithHistory((s) => {\n s.prompt.activeRectWhileLoading = rect;\n });\n const promptsQueue = [...existPrompts, promptItem];\n onAiAnnotation?.({\n type: EObjectType.Polygon,\n drawData,\n promptsQueue,\n });\n break;\n }\n case ESubToolItem.AutoSegmentByClick: {\n if (\n !isInCanvas(contentMouse) ||\n !isInCanvas(containerMouse) ||\n !drawData.prompt.creatingPrompt?.point\n )\n break;\n const promptItem: PromptItem = {\n type: EPromptType.Point,\n isPositive: drawData.prompt.creatingPrompt.isPositive,\n point: drawData.prompt.creatingPrompt.point,\n };\n const promptsQueue = [...existPrompts, promptItem];\n onAiAnnotation?.({\n type: EObjectType.Polygon,\n drawData,\n promptsQueue,\n });\n break;\n }\n case ESubToolItem.AutoSegmentByStroke: {\n if (!drawData.prompt.creatingPrompt?.stroke) break;\n const promptItem: PromptItem = {\n type: EPromptType.Stroke,\n isPositive: drawData.prompt.creatingPrompt.isPositive,\n stroke: drawData.prompt.creatingPrompt.stroke,\n radius: drawData.brushSize,\n };\n const promptsQueue = [...existPrompts, promptItem];\n onAiAnnotation?.({\n type: EObjectType.Polygon,\n drawData,\n promptsQueue,\n });\n break;\n }\n }\n };\n\n const finishEditingWhenMouseUp: ToolHooksFunc.FinishEditingWhenMouseUp = ({\n object,\n }) => {\n if (drawData.AIAnnotation) {\n finishAiPolygonWhenMouseUp();\n } else {\n const isResizingOrMoving =\n editState.startRectResizeAnchor || editState.startElementMovePoint;\n\n const isMouseStand =\n editState.startElementMovePoint &&\n editState.startElementMovePoint.initPoint?.x ===\n contentMouse.elementX &&\n editState.startElementMovePoint.initPoint?.y === contentMouse.elementY;\n\n const isRemovePolygonPoints =\n isMouseStand &&\n editState.focusPolygonInfo.index > -1 &&\n editState.focusPolygonInfo.pointIndex > -1;\n\n if (isRemovePolygonPoints) {\n const copyObject = cloneDeep(object);\n const { index, pointIndex } = editState.focusPolygonInfo;\n const polygon = copyObject.polygon?.group[index];\n if (polygon && index > -1 && pointIndex > -1 && polygon.length >= 3) {\n polygon.splice(pointIndex, 1);\n }\n updateObject(copyObject, drawData.activeObjectIndex);\n } else if (isResizingOrMoving) {\n updateObject(object, drawData.activeObjectIndex);\n }\n\n setEditState((s) => {\n s.startRectResizeAnchor = undefined;\n s.startElementMovePoint = undefined;\n });\n }\n return true;\n };\n\n const finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp = ({\n object,\n }) => {\n if (drawData.AIAnnotation) {\n finishAiPolygonWhenMouseUp();\n } else {\n if (object && object.currIndex === -1) {\n const { polygon, type, hidden, labelId, status, color } = object;\n const newObject = {\n polygon,\n type,\n hidden,\n labelId,\n status,\n color,\n };\n addObject(newObject);\n }\n }\n return true;\n };\n\n return {\n renderObject,\n renderCreatingObject,\n renderEditingObject,\n renderPrompt,\n startEditingWhenMouseDown,\n startCreatingWhenMouseDown,\n updateEditingWhenMouseMove,\n updateCreatingWhenMouseMove,\n finishEditingWhenMouseUp,\n finishCreatingWhenMouseUp,\n };\n};\n\nexport default usePolygon;\n","import { ANNO_STROKE_ALPHA } from '../constants/render';\nimport { LineType } from '../type';\nimport { hexToRgba } from '../utils/color';\nimport { drawPolylineByType } from '../utils/draw';\n\nimport { ToolInstanceHook, ToolHooksFunc } from './base';\n\nconst usePolyline: ToolInstanceHook = ({ canvasRef }) => {\n const renderObject: ToolHooksFunc.RenderObject = ({\n object,\n color,\n isFocus,\n }) => {\n const { polyline } = object;\n if (polyline && polyline.visible && polyline.lineType) {\n const lineType: LineType = polyline.lineType as unknown as LineType;\n\n const baseColor = polyline.color || color;\n const strokeColor = isFocus\n ? hexToRgba(baseColor, ANNO_STROKE_ALPHA.FOCUS)\n : hexToRgba(baseColor, ANNO_STROKE_ALPHA.DEFAULT);\n\n polyline?.group.forEach((anchors) => {\n drawPolylineByType(canvasRef.current, anchors, strokeColor, lineType);\n });\n\n // todo render point & text\n }\n };\n\n const renderCreatingObject: ToolHooksFunc.RenderCreatingObject = () => {\n // todo\n };\n\n const renderEditingObject: ToolHooksFunc.RenderEditingObject = () => {\n // to do\n };\n\n const renderPrompt: ToolHooksFunc.RenderPrompt = () => {\n // nothing in rect\n };\n\n const startEditingWhenMouseDown: ToolHooksFunc.StartEditingWhenMouseDown =\n () => {\n return false;\n };\n\n const startCreatingWhenMouseDown: ToolHooksFunc.StartCreatingWhenMouseDown =\n () => {\n return false;\n };\n\n const updateEditingWhenMouseMove: ToolHooksFunc.UpdateEditingWhenMouseMove =\n () => {\n return false;\n };\n\n const updateCreatingWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove =\n () => {\n return false;\n };\n\n const finishEditingWhenMouseUp: ToolHooksFunc.FinishEditingWhenMouseUp =\n () => {\n return false;\n };\n\n const finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp =\n () => {\n return false;\n };\n\n return {\n renderObject,\n renderCreatingObject,\n renderEditingObject,\n renderPrompt,\n startEditingWhenMouseDown,\n startCreatingWhenMouseDown,\n updateEditingWhenMouseMove,\n updateCreatingWhenMouseMove,\n finishEditingWhenMouseUp,\n finishCreatingWhenMouseUp,\n };\n};\n\nexport default usePolyline;\n","import { EnumModelType, EObjectType, ESubToolItem } from '../constants';\nimport {\n ANNO_FILL_ALPHA,\n PROMPT_FILL_COLOR,\n PROMPT_STROKE_COLOR,\n} from '../constants/render';\nimport { EObjectStatus, EPromptType, PromptItem } from '../type';\nimport { hexToRgba } from '../utils/color';\nimport {\n getRectFromPoints,\n translatePointCoord,\n translateRectCoord,\n} from '../utils/compute';\nimport {\n drawCircleWithFill,\n drawRect,\n drawText,\n shadeEverythingButRect,\n} from '../utils/draw';\n\nimport {\n ToolInstanceHook,\n ToolHooksFunc,\n renderActiveRect,\n editBaseElementWhenMouseDown,\n updateEditingRectWhenMouseMove,\n} from './base';\n\nconst useRectangle: ToolInstanceHook = ({\n contentMouse,\n imagePos,\n canvasRef,\n activeCanvasRef,\n editState,\n setEditState,\n drawData,\n setDrawData,\n updateMouseCursor,\n updateObject,\n addObject,\n getAnnotColor,\n displayOptionsResult,\n categories,\n onAiAnnotation,\n}) => {\n const renderObject: ToolHooksFunc.RenderObject = ({\n object,\n color,\n styles,\n isFocus,\n }) => {\n const { rect } = object;\n if (rect && rect.visible) {\n let strokeDash = styles.strokeDash;\n let strokeColor = styles.strokeColor;\n let fillColor = styles.fillColor;\n let thickness = styles.thickness;\n const model = drawData.selectedModel[drawData.selectedTool];\n if (drawData.isBatchEditing) {\n if (\n object.status === EObjectStatus.Unchecked &&\n (!editState.isCtrlPressed || model === EnumModelType.IVP)\n )\n return;\n if (editState.isCtrlPressed && model === EnumModelType.Detection) {\n if (object.status !== EObjectStatus.Unchecked) {\n strokeColor = hexToRgba(color, 0.8);\n strokeDash = [2];\n thickness = 1.5;\n } else {\n fillColor = isFocus\n ? hexToRgba(color, ANNO_FILL_ALPHA.DEFAULT)\n : hexToRgba(color, ANNO_FILL_ALPHA.CTRL_TO_SELECT);\n }\n }\n }\n\n drawRect(\n canvasRef.current!,\n rect,\n strokeColor,\n thickness,\n strokeDash,\n fillColor,\n );\n\n // draw text\n if (displayOptionsResult?.showBoxText) {\n const labelName =\n categories.find((c) => c.id === object.labelId)?.name || '';\n const label =\n object?.conf && object.conf > 0 && object.conf < 1\n ? `${labelName} (${object.conf.toFixed(3)})`\n : labelName;\n drawText(\n canvasRef.current!,\n label || '',\n 13,\n { x: rect.x + 6, y: rect.y + 6 },\n color,\n true,\n 'left',\n );\n }\n\n // draw ctrlpressed rect mask\n if (drawData.isBatchEditing && editState.isCtrlPressed && isFocus) {\n shadeEverythingButRect(activeCanvasRef.current!, rect, '#000', 0.6);\n }\n }\n };\n\n const renderCreatingObject: ToolHooksFunc.RenderCreatingObject = ({\n object,\n styles,\n }) => {\n const { startPoint } = object;\n if (startPoint) {\n // creating\n const rect = getRectFromPoints(\n startPoint,\n {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n },\n {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n },\n );\n const canvasCoordRect = translateRectCoord(rect, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n drawRect(\n activeCanvasRef.current,\n canvasCoordRect,\n styles.strokeColor,\n styles.thickness,\n styles.strokeDash,\n styles.fillColor,\n );\n }\n };\n\n const renderEditingObject: ToolHooksFunc.RenderEditingObject = ({\n object,\n styles,\n }) => {\n const { rect } = object;\n if (rect && rect.visible) {\n drawRect(\n activeCanvasRef.current!,\n rect,\n styles.strokeColor,\n styles.thickness,\n styles.strokeDash,\n styles.fillColor,\n );\n renderActiveRect(activeCanvasRef.current!, rect);\n }\n };\n\n const renderPrompt: ToolHooksFunc.RenderPrompt = ({ prompt }) => {\n // draw creating prompt\n if (prompt.creatingPrompt) {\n const strokeColor = prompt.creatingPrompt.isPositive\n ? PROMPT_STROKE_COLOR.POSITIVE\n : PROMPT_STROKE_COLOR.NEGATIVE;\n const fillColor = prompt.creatingPrompt.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE;\n\n switch (prompt.creatingPrompt.type) {\n case EPromptType.Rect: {\n const { startPoint } = prompt.creatingPrompt;\n const rect = getRectFromPoints(\n startPoint!,\n {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n },\n {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n },\n );\n const canvasCoordRect = translateRectCoord(rect, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n drawRect(\n activeCanvasRef.current,\n canvasCoordRect,\n strokeColor,\n 2,\n [0],\n fillColor,\n );\n break;\n }\n case EPromptType.Point: {\n if (!prompt.creatingPrompt.point) break;\n const canvasCoordPoint = translatePointCoord(\n prompt.creatingPrompt.point,\n {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n },\n );\n drawCircleWithFill(\n activeCanvasRef.current!,\n canvasCoordPoint,\n 4,\n prompt.creatingPrompt.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE,\n 2,\n '#fff',\n );\n }\n default:\n break;\n }\n }\n\n // draw existing prompts\n if (prompt.promptsQueue) {\n prompt.promptsQueue.forEach((item) => {\n switch (item.type) {\n case EPromptType.Rect: {\n const canvasCoordRect = translateRectCoord(item.rect!, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n drawRect(\n activeCanvasRef.current,\n canvasCoordRect,\n item.isPositive\n ? PROMPT_STROKE_COLOR.POSITIVE\n : PROMPT_STROKE_COLOR.NEGATIVE,\n 2,\n [0],\n item.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE,\n );\n break;\n }\n case EPromptType.Point: {\n const canvasCoordPoint = translatePointCoord(item.point!, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n drawCircleWithFill(\n activeCanvasRef.current!,\n canvasCoordPoint,\n 4,\n item.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE,\n 2,\n '#fff',\n );\n break;\n }\n }\n });\n }\n };\n\n const startEditingWhenMouseDown: ToolHooksFunc.StartEditingWhenMouseDown = ({\n object,\n event,\n }) => {\n if (event?.button === 2) return false;\n if (\n editBaseElementWhenMouseDown({\n object,\n contentMouse,\n setEditState,\n setDrawData,\n })\n ) {\n return true;\n }\n return false;\n };\n\n const startCreatingWhenMouseDown: ToolHooksFunc.StartCreatingWhenMouseDown =\n ({ point, basic }) => {\n setDrawData((s) => {\n const model = s.selectedModel[s.selectedTool];\n if (s.AIAnnotation && model === EnumModelType.IVP) {\n s.activeObjectIndex = -1;\n s.prompt.creatingPrompt = {\n type: EPromptType.Rect,\n startPoint: point,\n point,\n isPositive: s.selectedSubTool !== ESubToolItem.NegativeVisualPrompt,\n };\n } else {\n s.activeObjectIndex = -1;\n s.creatingObject = {\n type: EObjectType.Rectangle,\n startPoint: point,\n ...basic,\n };\n }\n });\n return true;\n };\n\n const updateEditingWhenMouseMove: ToolHooksFunc.UpdateEditingWhenMouseMove =\n ({ object }) => {\n return updateEditingRectWhenMouseMove({\n object,\n editState,\n contentMouse,\n drawData,\n setDrawData,\n updateMouseCursor,\n });\n };\n\n const updateCreatingWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove =\n ({ object }) => {\n return !!object;\n };\n\n const finishEditingWhenMouseUp: ToolHooksFunc.FinishEditingWhenMouseUp = ({\n object,\n }) => {\n const isResizingOrMoving =\n editState.startRectResizeAnchor || editState.startElementMovePoint;\n if (isResizingOrMoving) {\n updateObject(object, drawData.activeObjectIndex);\n }\n setEditState((s) => {\n s.startRectResizeAnchor = undefined;\n s.startElementMovePoint = undefined;\n });\n return true;\n };\n\n const finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp = ({\n object,\n }) => {\n const mouse = {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n };\n if (\n drawData.AIAnnotation &&\n drawData.selectedModel[drawData.selectedTool] === EnumModelType.IVP &&\n drawData.prompt.creatingPrompt?.startPoint\n ) {\n const { startPoint } = drawData.prompt.creatingPrompt;\n if (mouse.x === startPoint.x || mouse.y === startPoint.y) {\n setDrawData((s) => {\n s.prompt.creatingPrompt = undefined;\n });\n return true;\n // TODO\n // if (!isInCanvas(contentMouse)) return false;\n // const promptItem: PromptItem = {\n // type: EPromptType.Point,\n // isPositive: drawData.prompt.creatingPrompt.isPositive,\n // point: startPoint,\n // };\n // const promptsQueue = [\n // ...(drawData.prompt.promptsQueue || []),\n // promptItem,\n // ];\n // onAiAnnotation?.({\n // type: EObjectType.Rectangle,\n // drawData,\n // promptsQueue,\n // });\n // return true;\n } else {\n const rect = getRectFromPoints(startPoint, mouse, {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n });\n const promptItem: PromptItem = {\n type: EPromptType.Rect,\n isPositive: drawData.prompt.creatingPrompt.isPositive,\n rect,\n };\n const promptsQueue = [\n ...(drawData.prompt.promptsQueue || []),\n promptItem,\n ];\n onAiAnnotation?.({\n type: EObjectType.Rectangle,\n drawData,\n promptsQueue,\n });\n }\n return true;\n }\n if (!object || !object.startPoint) return false;\n // Need to check if it can form a rectangle\n if (\n contentMouse.elementX === object.startPoint.x ||\n contentMouse.elementY === object.startPoint.y\n ) {\n setDrawData((s) => {\n s.creatingObject = undefined;\n });\n return true;\n }\n const newRect = getRectFromPoints(\n object.startPoint,\n { x: contentMouse.elementX, y: contentMouse.elementY },\n {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n },\n );\n const newObject = {\n type: EObjectType.Rectangle,\n labelId: object.labelId,\n hidden: false,\n rect: { visible: true, ...newRect },\n conf: 1,\n status: EObjectStatus.Commited,\n color: getAnnotColor(object.labelId),\n };\n addObject(newObject);\n return true;\n };\n\n return {\n renderObject,\n renderCreatingObject,\n renderEditingObject,\n renderPrompt,\n startEditingWhenMouseDown,\n startCreatingWhenMouseDown,\n updateEditingWhenMouseMove,\n updateCreatingWhenMouseMove,\n finishEditingWhenMouseUp,\n finishCreatingWhenMouseUp,\n };\n};\n\nexport default useRectangle;\n","import {\n BODY_TEMPLATE,\n EElementType,\n EObjectType,\n KEYPOINTS_VISIBLE_TYPE,\n} from '../constants';\nimport { EObjectStatus } from '../type';\nimport {\n getKeypointsFromRect,\n getRectFromPoints,\n movePoint,\n translatePointsToPointObjs,\n translateRectCoord,\n} from '../utils/compute';\nimport { drawCircleWithFill, drawLine, drawRect } from '../utils/draw';\n\nimport {\n ToolInstanceHook,\n ToolHooksFunc,\n renderActiveRect,\n editBaseElementWhenMouseDown,\n updateEditingRectWhenMouseMove,\n RenderStyles,\n} from './base';\n\nconst renderKeypoints = (\n canvas: HTMLCanvasElement,\n keypoints: {\n points: IElement[];\n lines: number[];\n },\n color: string,\n styles: RenderStyles,\n hideLine?: boolean,\n pointThickness = 4,\n) => {\n const { lines, points } = keypoints;\n\n // draw line\n if (!hideLine) {\n for (let i = 0; i * 2 < lines.length; i++) {\n const [index1, index2] = [lines[i * 2], lines[i * 2 + 1]];\n if (\n points[index1]?.visible === KEYPOINTS_VISIBLE_TYPE.labeledVisible &&\n points[index2]?.visible === KEYPOINTS_VISIBLE_TYPE.labeledVisible\n ) {\n drawLine(\n canvas,\n points[index1],\n points[index2],\n styles.strokeColor,\n styles.thickness,\n styles.strokeDash,\n );\n }\n }\n }\n\n // draw circle\n points.forEach((point) => {\n const { x, y, visible, color } = point;\n if (visible === KEYPOINTS_VISIBLE_TYPE.labeledVisible) {\n drawCircleWithFill(canvas, { x, y }, pointThickness, color, 2, '#000');\n }\n });\n};\n\nconst useSkeleton: ToolInstanceHook = ({\n editState,\n clientSize,\n naturalSize,\n contentMouse,\n imagePos,\n canvasRef,\n activeCanvasRef,\n setEditState,\n drawData,\n setDrawData,\n updateMouseCursor,\n addObject,\n updateObject,\n onAiAnnotation,\n displayOptionsResult,\n}) => {\n const renderObject: ToolHooksFunc.RenderObject = ({\n object,\n color,\n styles,\n }) => {\n if (object.status === EObjectStatus.Unchecked) return;\n const { rect, keypoints } = object;\n if (rect && rect.visible) {\n if (!displayOptionsResult || displayOptionsResult.showKeyPointsBox) {\n drawRect(\n canvasRef.current!,\n rect,\n styles.strokeColor,\n styles.thickness,\n styles.strokeDash,\n styles.fillColor,\n );\n }\n }\n if (keypoints) {\n renderKeypoints(\n canvasRef.current!,\n keypoints,\n color,\n styles,\n displayOptionsResult && !displayOptionsResult.showKeyPointsLine,\n clientSize.width > 400 ? 4 : 2,\n );\n }\n };\n\n const renderCreatingObject: ToolHooksFunc.RenderCreatingObject = ({\n object,\n styles,\n }) => {\n const { startPoint } = object;\n if (startPoint) {\n // creating\n const rect = getRectFromPoints(\n startPoint!,\n {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n },\n {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n },\n );\n const canvasCoordRect = translateRectCoord(rect, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n const { points, lines, pointColors, pointNames } = BODY_TEMPLATE;\n const pointObjs = translatePointsToPointObjs(\n points,\n pointNames,\n pointColors,\n naturalSize,\n clientSize,\n );\n const updatedKeypoints = getKeypointsFromRect(pointObjs, canvasCoordRect);\n\n // draw rect\n drawRect(\n activeCanvasRef.current,\n canvasCoordRect,\n styles.strokeColor,\n styles.thickness,\n );\n\n // draw circles\n updatedKeypoints.forEach((p) => {\n drawCircleWithFill(\n activeCanvasRef.current!,\n { x: p.x, y: p.y },\n 4,\n styles.strokeColor,\n 3,\n '#1f4dd8',\n );\n });\n\n // draw lines\n for (let i = 0; i * 2 < lines.length; i++) {\n const [index1, index2] = [lines[i * 2], lines[i * 2 + 1]];\n drawLine(\n activeCanvasRef.current!,\n updatedKeypoints[index1],\n updatedKeypoints[index2],\n styles.strokeColor,\n 2.5,\n [0],\n );\n }\n }\n };\n\n const renderEditingObject: ToolHooksFunc.RenderEditingObject = ({\n object,\n color,\n styles,\n isFocus,\n }) => {\n const { rect, keypoints } = object;\n if (rect && rect.visible) {\n // editing\n drawRect(\n activeCanvasRef.current!,\n rect,\n styles.strokeColor,\n styles.thickness,\n styles.strokeDash,\n styles.fillColor,\n );\n renderActiveRect(activeCanvasRef.current!, rect);\n }\n if (keypoints) {\n renderKeypoints(activeCanvasRef.current!, keypoints, color, styles);\n\n // draw hightlight circle\n if (\n isFocus &&\n editState.focusEleType === EElementType.Circle &&\n keypoints.points[editState.focusEleIndex]\n ) {\n const { x, y, visible, color } =\n keypoints.points[editState.focusEleIndex];\n if (visible === KEYPOINTS_VISIBLE_TYPE.labeledVisible) {\n drawCircleWithFill(\n activeCanvasRef.current!,\n { x, y },\n 4,\n color,\n 5,\n '#fff',\n );\n }\n }\n }\n };\n\n const renderPrompt: ToolHooksFunc.RenderPrompt = () => {\n // nothing in skeleton\n };\n\n const startEditingWhenMouseDown: ToolHooksFunc.StartEditingWhenMouseDown = ({\n object,\n event,\n }) => {\n if (event?.button === 2) return false;\n if (\n editBaseElementWhenMouseDown({\n object,\n contentMouse,\n setEditState,\n setDrawData,\n })\n ) {\n return true;\n }\n return false;\n };\n\n const startCreatingWhenMouseDown: ToolHooksFunc.StartCreatingWhenMouseDown =\n ({ point, basic }) => {\n setDrawData((s) => {\n s.activeObjectIndex = -1;\n s.creatingObject = {\n type: EObjectType.Skeleton,\n startPoint: point,\n ...basic,\n };\n });\n return true;\n };\n\n const updateEditingWhenMouseMove: ToolHooksFunc.UpdateEditingWhenMouseMove =\n ({ object }) => {\n // change rect\n if (\n updateEditingRectWhenMouseMove({\n object,\n editState,\n contentMouse,\n drawData,\n setDrawData,\n updateMouseCursor,\n })\n )\n return true;\n\n if (\n editState.focusObjectIndex === drawData.activeObjectIndex &&\n editState.focusEleType === EElementType.Circle\n ) {\n updateMouseCursor('pointer');\n }\n if (editState.focusEleType === EElementType.Circle) {\n // move point\n if (editState.startElementMovePoint) {\n setDrawData((s) => {\n if (\n s.activeObjectIndex > -1 &&\n editState.focusEleIndex > -1 &&\n editState.startElementMovePoint &&\n s.creatingObject?.keypoints?.points?.[editState.focusEleIndex]\n ) {\n const point =\n s.creatingObject?.keypoints?.points?.[editState.focusEleIndex];\n const { x: newX, y: newY } = movePoint(contentMouse);\n point.x = newX;\n point.y = newY;\n }\n });\n return true;\n }\n }\n return false;\n };\n\n const updateCreatingWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove =\n ({ object }) => {\n return !!object;\n };\n\n const finishEditingWhenMouseUp: ToolHooksFunc.FinishEditingWhenMouseUp = ({\n object,\n }) => {\n const isResizingOrMoving =\n editState.startRectResizeAnchor || editState.startElementMovePoint;\n if (isResizingOrMoving) {\n updateObject(object, drawData.activeObjectIndex);\n }\n\n if (drawData.AIAnnotation) {\n if (\n editState.startElementMovePoint &&\n (editState.startElementMovePoint.mousePoint?.x !==\n contentMouse.elementX ||\n editState.startElementMovePoint.mousePoint?.y !==\n contentMouse.elementY)\n ) {\n onAiAnnotation?.({ type: EObjectType.Skeleton, drawData });\n }\n }\n\n setEditState((s) => {\n s.startRectResizeAnchor = undefined;\n s.startElementMovePoint = undefined;\n });\n return true;\n };\n\n const finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp = ({\n object,\n }) => {\n if (!object || !object.startPoint) return false;\n // Need to check if it can form a rectangle\n if (\n contentMouse.elementX === object.startPoint?.x ||\n contentMouse.elementY === object.startPoint?.y\n ) {\n setDrawData((s) => (s.creatingObject = undefined));\n return true;\n }\n const newRect = getRectFromPoints(\n object.startPoint,\n { x: contentMouse.elementX, y: contentMouse.elementY },\n {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n },\n );\n const { points, lines, pointColors, pointNames } = BODY_TEMPLATE;\n const pointObjs = translatePointsToPointObjs(\n points,\n pointNames,\n pointColors,\n naturalSize,\n clientSize,\n );\n const updatedObjs = getKeypointsFromRect(pointObjs, newRect);\n const newObject = {\n type: EObjectType.Skeleton,\n labelId: object.labelId,\n hidden: false,\n color: object.color,\n rect: { visible: true, ...newRect },\n keypoints: {\n points: updatedObjs,\n lines: lines,\n },\n conf: 1,\n status: EObjectStatus.Commited,\n };\n addObject(newObject);\n return true;\n };\n\n return {\n renderObject,\n renderCreatingObject,\n renderEditingObject,\n renderPrompt,\n startEditingWhenMouseDown,\n startCreatingWhenMouseDown,\n updateEditingWhenMouseMove,\n updateCreatingWhenMouseMove,\n finishEditingWhenMouseUp,\n finishCreatingWhenMouseUp,\n };\n};\n\nexport default useSkeleton;\n","/* eslint-disable @typescript-eslint/no-namespace */\nimport { CursorState } from 'ahooks/lib/useMouse';\nimport { Updater } from 'use-immer';\n\nimport { DisplayOption, EElementType, EObjectType } from '../constants';\nimport { OnAiAnnotationFunc } from '../hooks/useAiModels';\nimport {\n Category,\n DrawData,\n EditState,\n EObjectStatus,\n IAnnotationObject,\n ICreatingObject,\n IPrompt,\n} from '../type';\nimport {\n Direction,\n getAnchorFixRectPoint,\n getAnchorUnderMouseByRect,\n getClosestPointOnLineSegment,\n getLinesFromPolygon,\n getRectWithCenterAndSize,\n judgeFocusOnElement,\n mapRectToAnchors,\n moveRect,\n resizeRect,\n setRectBetweenPixels,\n} from '../utils/compute';\nimport { drawRect } from '../utils/draw';\n\nimport useMask from './useMask';\nimport useMatting from './useMatting';\nimport usePoint from './usePoint';\nimport usePolygon from './usePolygon';\nimport usePolyline from './usePolyline';\nimport useRectangle from './useRectangle';\nimport useSkeleton from './useSkeleton';\n\nexport type RenderStyles = {\n strokeColor: string;\n fillColor: string;\n maskAlpha: number;\n strokeDash: Array;\n thickness: number;\n pointAplha: number;\n};\n\nexport namespace ToolHooksFunc {\n export type RenderObject = (params: {\n object: IAnnotationObject;\n color: string;\n styles: RenderStyles;\n isFocus: boolean;\n isJustCreated?: boolean;\n }) => void;\n\n export type RenderCreatingObject = (params: {\n object: ICreatingObject;\n color: string;\n styles: RenderStyles;\n }) => void;\n\n export type RenderEditingObject = (params: {\n object: ICreatingObject;\n color: string;\n styles: RenderStyles;\n isFocus: boolean;\n }) => void;\n\n export type RenderPrompt = (params: { prompt: IPrompt }) => void;\n\n export type StartCreatingWhenMouseDown = (params: {\n event: MouseEvent;\n object?: ICreatingObject;\n point: { x: number; y: number };\n basic: {\n hidden: boolean;\n labelId: string;\n status: EObjectStatus;\n color: string;\n };\n }) => boolean;\n\n export type StartEditingWhenMouseDown = (params: {\n event: MouseEvent;\n object: ICreatingObject;\n }) => boolean;\n\n export type UpdateCreatingWhenMouseMove = (params: {\n event: MouseEvent;\n object?: ICreatingObject;\n }) => boolean;\n\n export type UpdateEditingWhenMouseMove = (params: {\n event: MouseEvent;\n object: ICreatingObject;\n }) => boolean;\n\n export type FinishCreatingWhenMouseUp = (params: {\n event: MouseEvent;\n object?: ICreatingObject;\n }) => boolean;\n\n export type FinishEditingWhenMouseUp = (params: {\n event: MouseEvent;\n object: ICreatingObject;\n }) => boolean;\n}\n\nexport type ToolInstanceHookReturn = {\n renderObject: ToolHooksFunc.RenderObject;\n renderCreatingObject: ToolHooksFunc.RenderCreatingObject;\n renderEditingObject: ToolHooksFunc.RenderEditingObject;\n renderPrompt: ToolHooksFunc.RenderPrompt;\n startCreatingWhenMouseDown: ToolHooksFunc.StartCreatingWhenMouseDown;\n startEditingWhenMouseDown: ToolHooksFunc.StartEditingWhenMouseDown;\n updateCreatingWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove;\n updateEditingWhenMouseMove: ToolHooksFunc.UpdateEditingWhenMouseMove;\n finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp;\n finishEditingWhenMouseUp: ToolHooksFunc.FinishEditingWhenMouseUp;\n};\nexport interface ToolInstanceHookProps {\n imgRef: React.RefObject;\n editState: EditState;\n setEditState: Updater;\n drawData: DrawData;\n setDrawData: Updater;\n setDrawDataWithHistory: Updater;\n updateHistory: (drawData: DrawData) => void;\n updateObject: (object: IAnnotationObject, index: number) => void;\n addObject: (object: IAnnotationObject, notActive?: boolean) => void;\n clientSize: ISize;\n naturalSize: ISize;\n contentMouse: CursorState;\n imagePos: React.MutableRefObject;\n containerMouse: CursorState;\n canvasRef: React.RefObject;\n activeCanvasRef: React.RefObject;\n updateMouseCursor: (value: string, position?: Direction) => void;\n getAnnotColor: (category: string) => string;\n onAiAnnotation?: OnAiAnnotationFunc;\n displayOptionsResult?: { [key in DisplayOption]?: boolean };\n categories: Category[];\n}\n\nexport type ToolInstanceHook = (\n props: ToolInstanceHookProps,\n) => ToolInstanceHookReturn;\n\nexport const useToolInstances = (props: ToolInstanceHookProps) => {\n const rectangleHooks = useRectangle(props);\n const polygenHooks = usePolygon(props);\n const skeletonHooks = useSkeleton(props);\n const maskHooks = useMask(props);\n const mattingHooks = useMatting(props);\n const pointHooks = usePoint(props);\n const polylineHooks = usePolyline(props);\n\n const objectHooksMap: Record = {\n [EObjectType.Rectangle]: rectangleHooks,\n [EObjectType.Polygon]: polygenHooks,\n [EObjectType.Skeleton]: skeletonHooks,\n [EObjectType.Mask]: maskHooks,\n [EObjectType.Matting]: mattingHooks,\n [EObjectType.Point]: pointHooks,\n [EObjectType.Polyline]: polylineHooks,\n [EObjectType.Custom]: rectangleHooks, // todo\n [EObjectType.Classification]: rectangleHooks, // todo\n };\n\n return {\n objectHooksMap,\n };\n};\n\nexport const getPromptBoolean = (event: MouseEvent): boolean => {\n // Right Mouse Click / Lift Mouse Click + (Alt/Option) -> false\n if (event.button === 2 || (event.button === 0 && event.altKey)) return false;\n return true;\n};\n\nexport const renderActiveRect = (\n canvas: HTMLCanvasElement,\n rect: IElement,\n) => {\n const handleCenters: IPoint[] = mapRectToAnchors(rect).map(\n (rectAnchor) => rectAnchor.position,\n );\n handleCenters.forEach((center: IPoint) => {\n const handleRect: IRect = getRectWithCenterAndSize(center, {\n width: 10,\n height: 10,\n });\n const handleRectBetweenPixels: IRect = setRectBetweenPixels(handleRect);\n drawRect(\n canvas,\n handleRectBetweenPixels,\n 'rgba(0, 0, 0, 0.8)',\n 3,\n [0],\n '#fff',\n );\n });\n};\n\nexport const editBaseElementWhenMouseDown = ({\n object,\n contentMouse,\n setEditState,\n setDrawData,\n}: {\n object: ICreatingObject;\n contentMouse: CursorState;\n setEditState: Updater;\n setDrawData: Updater;\n}) => {\n const { focusEleIndex, focusEleType, focusPolygonInfo } = judgeFocusOnElement(\n contentMouse,\n object,\n );\n if (focusEleType === EElementType.None) return false;\n\n const { rect, keypoints, polygon } = object;\n const mouse = {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n };\n setEditState((s) => {\n switch (focusEleType) {\n case EElementType.Rect: {\n if (rect) {\n const anchorUnderMouse = getAnchorUnderMouseByRect(rect, mouse);\n if (anchorUnderMouse) {\n // resize\n s.startRectResizeAnchor = {\n type: anchorUnderMouse.type,\n position: getAnchorFixRectPoint(rect, anchorUnderMouse.type),\n };\n } else {\n // move\n s.startElementMovePoint = {\n topLeftPoint: {\n x: rect.x,\n y: rect.y,\n },\n mousePoint: mouse,\n };\n }\n }\n break;\n }\n case EElementType.Circle: {\n // move circle\n if (keypoints) {\n const point = keypoints.points[focusEleIndex];\n s.startElementMovePoint = {\n topLeftPoint: {\n x: point.x,\n y: point.y,\n },\n mousePoint: mouse,\n };\n }\n break;\n }\n case EElementType.Polygon: {\n const { lineIndex, index } = focusPolygonInfo;\n if (polygon) {\n if (lineIndex > -1) {\n // add point\n const line = getLinesFromPolygon(polygon.group[index])[lineIndex];\n if (line) {\n const midPoint = getClosestPointOnLineSegment(\n mouse,\n line.start,\n line.end,\n );\n setDrawData((s) => {\n const activeObject = s.objectList[s.activeObjectIndex];\n if (activeObject.polygon) {\n activeObject.polygon.group[index].splice(\n lineIndex + 1,\n 0,\n midPoint,\n );\n }\n s.creatingObject = { ...activeObject };\n });\n s.focusPolygonInfo.pointIndex = lineIndex + 1;\n s.startElementMovePoint = {\n topLeftPoint: {\n x: 0,\n y: 0,\n },\n mousePoint: midPoint,\n initPoint: midPoint,\n };\n }\n } else {\n s.startElementMovePoint = {\n topLeftPoint: {\n x: 0,\n y: 0,\n },\n mousePoint: mouse,\n initPoint: mouse,\n };\n }\n }\n break;\n }\n }\n });\n return true;\n};\n\nexport const updateEditingRectWhenMouseMove = ({\n object,\n editState,\n contentMouse,\n drawData,\n setDrawData,\n updateMouseCursor,\n}: {\n object: ICreatingObject;\n editState: EditState;\n contentMouse: CursorState;\n drawData: DrawData;\n setDrawData: Updater;\n updateMouseCursor: (value: string, position?: Direction) => void;\n}) => {\n const {\n focusObjectIndex,\n focusEleIndex,\n focusEleType,\n startRectResizeAnchor,\n } = editState;\n // update mouse cursor\n if (\n focusObjectIndex === drawData.activeObjectIndex &&\n focusEleType === EElementType.Rect &&\n object.rect\n ) {\n const anchorUnderMouse = getAnchorUnderMouseByRect(object.rect, {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n });\n if (anchorUnderMouse) {\n updateMouseCursor('resize', anchorUnderMouse.type);\n } else {\n updateMouseCursor('move');\n }\n }\n if (focusEleType === EElementType.Rect && focusEleIndex === 0) {\n // resize rectangle\n if (startRectResizeAnchor) {\n setDrawData((s) => {\n if (\n s.activeObjectIndex > -1 &&\n editState.startRectResizeAnchor &&\n s.creatingObject &&\n s.creatingObject.rect\n ) {\n const newRect = resizeRect(\n s.creatingObject.rect,\n editState.startRectResizeAnchor,\n contentMouse,\n );\n s.creatingObject.rect = { ...s.creatingObject.rect, ...newRect };\n }\n });\n return true;\n }\n // move rectangle\n if (editState.startElementMovePoint) {\n setDrawData((s) => {\n if (\n s.activeObjectIndex > -1 &&\n editState.startElementMovePoint &&\n s.creatingObject &&\n s.creatingObject.rect\n ) {\n const newRect = moveRect(\n s.creatingObject.rect,\n editState.startElementMovePoint,\n contentMouse,\n );\n s.creatingObject.rect = { ...s.creatingObject.rect, ...newRect };\n }\n });\n return true;\n }\n }\n return false;\n};\n","import { cloneDeep } from 'lodash';\n\nimport { EnumModelType, EObjectType, ESubToolItem } from '../constants';\nimport {\n ANNO_FILL_COLOR,\n ANNO_MASK_ALPHA,\n ANNO_STROKE_ALPHA,\n ANNO_STROKE_COLOR,\n PROMPT_FILL_COLOR,\n PROMPT_STROKE_COLOR,\n} from '../constants/render';\nimport {\n EPromptType,\n ICreatingMaskStep,\n ICreatingObject,\n PromptItem,\n} from '../type';\nimport { hexToRgbArray, hexToRgba } from '../utils/color';\nimport {\n getRectFromPoints,\n isInCanvas,\n isPointOnPoint,\n translatePointCoord,\n translatePointZoom,\n translatePolygonCoord,\n translateRectCoord,\n} from '../utils/compute';\nimport {\n clearCanvas,\n drawBooleanBrush,\n drawBooleanPolygon,\n drawCircleWithFill,\n drawImage,\n drawLine,\n drawPath,\n drawQuadraticPath,\n drawRect,\n shadeEverythingButRect,\n} from '../utils/draw';\n\nimport { ToolInstanceHook, ToolHooksFunc, getPromptBoolean } from './base';\n\nexport const encodeRleString = (rleArr: number[]): string => {\n const m = rleArr.length;\n let p = 0;\n let x = 0;\n let more = true;\n const s = Array(m * 6);\n\n for (let i = 0; i < m; i++) {\n x = rleArr[i];\n if (i > 2) {\n x -= rleArr[i - 2];\n }\n more = true;\n\n while (more) {\n let c = x & 0x1f;\n x >>= 5;\n more = !!((x !== -1 && c & 0x10) || (x !== 0 && !(c & 0x10)));\n if (more) {\n c |= 0x20;\n }\n c += 48;\n s[p] = String.fromCharCode(c);\n p += 1;\n }\n }\n return s.join('');\n};\n\nexport const decodeRleString = (s: string): number[] => {\n let p = 0;\n const cnts = [];\n\n while (p < s.length && s[p]) {\n let x = 0;\n let k = 0;\n let more = 1;\n\n while (more) {\n const c = s.charCodeAt(p) - 48;\n x |= (c & 0x1f) << (5 * k);\n more = c & 0x20;\n p += 1;\n k += 1;\n\n if (!more && c & 0x10) {\n x |= -1 << (5 * k);\n }\n }\n\n if (cnts.length > 2) {\n x += cnts[cnts.length - 2];\n }\n cnts.push(x);\n }\n return cnts;\n};\n\n/**\n * only [0,1] array with rle decode\n * example:\n * [2,3,4,1,....] to [0,0,1,1,1,0,0,0,0,1....]\n */\nexport const decodeRleArray = (rle: number[], length: number) => {\n let mask = new Array(length);\n let pixel = 0;\n let bit = 0;\n\n for (let i = 0; i < rle.length; i++) {\n const count = rle[i];\n for (let j = 0; j < count; j++) {\n mask[pixel] = bit;\n pixel++;\n }\n bit = 1 - bit;\n }\n return mask;\n};\n\n/**\n * only [0,1] array with rle encode\n * example:\n * [0,0,1,1,1,0,0,0,0,1....] to [2,3,4,1,....]\n */\nexport const encodeRleArray = (mask: number[]) => {\n const rle: number[] = [];\n let count = 0;\n let prevBit = mask[0];\n\n for (let i = 0; i < mask.length; i++) {\n const bit = mask[i];\n if (bit === prevBit) {\n count++;\n } else {\n rle.push(count);\n count = 1;\n prevBit = bit;\n }\n }\n rle.push(count);\n\n return rle;\n};\n\nconst decodeRle = (rleStr: string, length: number) => {\n return decodeRleArray(decodeRleString(rleStr), length);\n};\n\nconst encodeRle = (mask: number[]) => {\n return encodeRleString(encodeRleArray(mask));\n};\n\nexport const renderMaskSteps = (\n maskCanvas: HTMLCanvasElement,\n imagePos: IPoint,\n clientSize: ISize,\n naturalSize: ISize,\n strokeColor: string,\n tempMaskSteps?: ICreatingMaskStep[],\n) => {\n const ctx = maskCanvas.getContext('2d');\n if (!ctx) return null;\n\n // prevent the mask from exceeding the image boundaries.\n ctx.save();\n ctx.beginPath();\n ctx.rect(imagePos.x, imagePos.y, clientSize.width, clientSize.height);\n ctx.clip();\n\n // draw temp mask according to step queue\n if (tempMaskSteps && tempMaskSteps?.length > 0) {\n tempMaskSteps.forEach((step) => {\n const canvasCoordPoints = translatePolygonCoord(step.points, {\n x: -imagePos.x,\n y: -imagePos.y,\n });\n\n if (\n step.tool === ESubToolItem.PenAdd ||\n step.tool === ESubToolItem.PenErase\n ) {\n drawBooleanPolygon(\n maskCanvas!,\n canvasCoordPoints,\n step.positive,\n hexToRgba(strokeColor, ANNO_MASK_ALPHA.CREATING),\n 'transparent',\n );\n }\n\n if (\n step.tool === ESubToolItem.BrushAdd ||\n step.tool === ESubToolItem.BrushErase\n ) {\n drawBooleanBrush(\n maskCanvas!,\n canvasCoordPoints,\n step.positive,\n strokeColor,\n ANNO_MASK_ALPHA.CREATING,\n (step.radius * clientSize.width) / naturalSize.width,\n );\n }\n });\n }\n\n ctx.restore();\n};\n\nexport const renderMask = (\n maskCanvas: HTMLCanvasElement,\n creatingObject: ICreatingObject,\n imagePos: IPoint,\n strokeColor: string,\n mousePoint: IPoint,\n clientSize: ISize,\n naturalSize: ISize,\n) => {\n if (!maskCanvas) return;\n\n const { maskStep, tempMaskSteps, maskCanvasElement } = creatingObject;\n const ctx = maskCanvas.getContext('2d');\n if (!ctx) return null;\n\n // draw mask image\n if (maskCanvasElement) {\n ctx.globalAlpha = ANNO_MASK_ALPHA.CREATING;\n drawImage(maskCanvas, maskCanvasElement, {\n x: imagePos.x,\n y: imagePos.y,\n width: clientSize.width,\n height: clientSize.height,\n });\n ctx.globalAlpha = 1;\n }\n\n // draw temp mask according to step queue\n renderMaskSteps(\n maskCanvas,\n imagePos,\n clientSize,\n naturalSize,\n strokeColor,\n tempMaskSteps,\n );\n\n // draw currently step when mouse move\n if (maskStep && maskStep.points.length > 0) {\n const color =\n maskStep.tool === ESubToolItem.PenAdd ||\n maskStep.tool === ESubToolItem.BrushAdd\n ? ANNO_FILL_COLOR.CREATING_POSITIVE\n : ANNO_FILL_COLOR.CREATING_NEGATIVE;\n const canvasCoordPath = translatePolygonCoord(maskStep.points, {\n x: -imagePos.x,\n y: -imagePos.y,\n });\n\n if (\n maskStep.tool === ESubToolItem.PenAdd ||\n maskStep.tool === ESubToolItem.PenErase\n ) {\n // draw start point\n drawCircleWithFill(\n maskCanvas!,\n canvasCoordPath[0],\n 6,\n hexToRgba(color, ANNO_STROKE_ALPHA.CREATING),\n 3,\n ANNO_STROKE_COLOR.CREATING,\n );\n\n if (canvasCoordPath.length > 0) {\n // draw path\n drawPath(\n maskCanvas!,\n canvasCoordPath,\n hexToRgba(color, ANNO_STROKE_ALPHA.CREATING),\n 2.5,\n [0],\n );\n\n // draw dash line for mouse\n drawLine(\n maskCanvas!,\n canvasCoordPath[canvasCoordPath.length - 1],\n mousePoint,\n hexToRgba(color, ANNO_STROKE_ALPHA.CREATING_LINE),\n 2.5,\n [5],\n );\n }\n }\n\n if (\n maskStep.tool === ESubToolItem.BrushAdd ||\n maskStep.tool === ESubToolItem.BrushErase ||\n maskStep.tool === ESubToolItem.AutoSegmentByStroke\n ) {\n if (canvasCoordPath.length > 1) {\n drawQuadraticPath(\n maskCanvas!,\n canvasCoordPath,\n hexToRgba(color, ANNO_MASK_ALPHA.CREATING),\n (maskStep.radius * clientSize.width) / naturalSize.width,\n );\n }\n }\n }\n};\n\nexport const changeMaskCanvasColor = (\n maskCanvas: HTMLCanvasElement,\n color: string,\n) => {\n const imageCtx = maskCanvas.getContext('2d', { willReadFrequently: true });\n\n if (!imageCtx) {\n return null;\n }\n const nImageData = imageCtx.getImageData(\n 0,\n 0,\n maskCanvas.width,\n maskCanvas.height,\n );\n\n // Change color by pixel\n const rgb = hexToRgbArray(color);\n for (let i = nImageData.data.length / 4; i--; ) {\n if (nImageData.data[i * 4 + 3] > 0) {\n nImageData.data[i * 4] = rgb[0];\n nImageData.data[i * 4 + 1] = rgb[1];\n nImageData.data[i * 4 + 2] = rgb[2];\n nImageData.data[i * 4 + 3] = 255;\n }\n }\n clearCanvas(maskCanvas);\n imageCtx.putImageData(nImageData, 0, 0);\n\n return maskCanvas;\n};\n\nexport const objectToRle = (\n clientSize: ISize,\n naturalSize: ISize,\n maskSteps?: ICreatingMaskStep[],\n maskCanvasElement?: HTMLCanvasElement,\n) => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d', { willReadFrequently: true });\n if (!ctx || !maskSteps) return null;\n\n canvas.width = naturalSize.width;\n canvas.height = naturalSize.height;\n\n // translate size\n const newSteps = maskSteps.map((step) => {\n return {\n ...step,\n points: step.points.map((point) =>\n translatePointZoom(point, clientSize, naturalSize),\n ),\n };\n });\n\n // render edit maskImage\n if (maskCanvasElement) {\n drawImage(canvas, maskCanvasElement, {\n x: 0,\n y: 0,\n width: naturalSize.width,\n height: naturalSize.height,\n });\n }\n\n // render new mask object\n renderMaskSteps(\n canvas,\n { x: 0, y: 0 },\n naturalSize, // target clientsize\n naturalSize,\n '#fff',\n newSteps,\n );\n\n // getImageData\n const maskData = ctx.getImageData(\n 0,\n 0,\n naturalSize.width,\n naturalSize.height,\n );\n\n // Grayscale pixels respecting the opacity\n let maskPixelCount = 0;\n // custom encode rle\n const arr = new Array(maskData.data.length / 4).fill(0);\n for (let i = maskData.data.length / 4; i--; ) {\n let maskAplha = 0;\n if (maskData.data[i * 4 + 3] > 0) {\n maskPixelCount++;\n maskAplha = 1;\n arr[i] = 1;\n }\n maskData.data[i * 4] =\n maskData.data[i * 4 + 1] =\n maskData.data[i * 4 + 2] =\n maskData.data[i * 4 + 3] =\n maskAplha;\n }\n\n return maskPixelCount > 0 ? encodeRle(arr) : '';\n};\n\nexport const rleToCanvas = (rle: string, size: ISize, color: string) => {\n const { width, height } = size;\n\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n canvas.width = width;\n canvas.height = height;\n\n if (!ctx) return null;\n\n const newdata = ctx.createImageData(width, height);\n const rgb = hexToRgbArray(color);\n\n // custom rle decode\n const maskArr = decodeRle(rle, Math.ceil(width) * Math.ceil(height));\n for (let i = newdata.data.length / 4; i--; ) {\n if (maskArr[i] > 0) {\n newdata.data[i * 4] = rgb[0];\n newdata.data[i * 4 + 1] = rgb[1];\n newdata.data[i * 4 + 2] = rgb[2];\n newdata.data[i * 4 + 3] = 255;\n }\n }\n\n ctx.putImageData(newdata, 0, 0);\n\n return canvas;\n};\n\nconst useMask: ToolInstanceHook = ({\n editState,\n clientSize,\n naturalSize,\n contentMouse,\n imagePos,\n containerMouse,\n canvasRef,\n activeCanvasRef,\n drawData,\n setDrawData,\n setDrawDataWithHistory,\n updateHistory,\n onAiAnnotation,\n updateMouseCursor,\n}) => {\n const renderObject: ToolHooksFunc.RenderObject = ({ object, styles }) => {\n const { maskCanvasElement } = object;\n const ctx = canvasRef.current!.getContext('2d') as CanvasRenderingContext2D;\n const tempAlpha = ctx.globalAlpha;\n ctx.globalAlpha = ctx.globalAlpha * styles.maskAlpha;\n drawImage(canvasRef.current!, maskCanvasElement, {\n x: imagePos.current.x,\n y: imagePos.current.y,\n width: clientSize.width,\n height: clientSize.height,\n });\n // restore\n ctx.globalAlpha = tempAlpha;\n };\n\n const renderCreatingObject: ToolHooksFunc.RenderCreatingObject = ({\n object,\n color,\n }) => {\n if (editState.hideCreatingObject) {\n return;\n }\n renderMask(\n activeCanvasRef.current!,\n object,\n imagePos.current,\n color,\n {\n x: containerMouse.elementX,\n y: containerMouse.elementY,\n },\n clientSize,\n naturalSize,\n );\n };\n\n const renderEditingObject: ToolHooksFunc.RenderEditingObject = ({\n object,\n color,\n }) => {\n if (editState.hideCreatingObject) {\n return;\n }\n renderMask(\n activeCanvasRef.current!,\n object,\n imagePos.current,\n color,\n {\n x: containerMouse.elementX,\n y: containerMouse.elementY,\n },\n clientSize,\n naturalSize,\n );\n };\n\n const renderPrompt: ToolHooksFunc.RenderPrompt = ({ prompt }) => {\n const model = drawData.selectedModel[drawData.selectedTool];\n\n // draw creating prompt\n if (prompt.creatingPrompt) {\n if (model === EnumModelType.IVP) {\n const strokeColor = prompt.creatingPrompt.isPositive\n ? PROMPT_STROKE_COLOR.POSITIVE\n : PROMPT_STROKE_COLOR.NEGATIVE;\n const fillColor = prompt.creatingPrompt.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE;\n\n switch (prompt.creatingPrompt.type) {\n case EPromptType.Rect: {\n const { startPoint } = prompt.creatingPrompt;\n const rect = getRectFromPoints(\n startPoint!,\n {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n },\n {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n },\n );\n const canvasCoordRect = translateRectCoord(rect, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n drawRect(\n activeCanvasRef.current,\n canvasCoordRect,\n strokeColor,\n 2,\n [0],\n fillColor,\n );\n break;\n }\n case EPromptType.Point: {\n if (!prompt.creatingPrompt.point) break;\n const canvasCoordPoint = translatePointCoord(\n prompt.creatingPrompt.point,\n {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n },\n );\n drawCircleWithFill(\n activeCanvasRef.current!,\n canvasCoordPoint,\n 4,\n prompt.creatingPrompt.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE,\n 2,\n '#fff',\n );\n }\n default:\n break;\n }\n } else {\n const strokeColor = ANNO_STROKE_COLOR.CREATING;\n const fillColor = ANNO_FILL_COLOR.CREATING;\n switch (prompt.creatingPrompt.type) {\n case EPromptType.Rect: {\n const { startPoint } = prompt.creatingPrompt;\n const rect = getRectFromPoints(\n startPoint!,\n {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n },\n {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n },\n );\n const canvasCoordRect = translateRectCoord(rect, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n drawRect(\n activeCanvasRef.current,\n canvasCoordRect,\n strokeColor,\n 2,\n [0],\n fillColor,\n );\n break;\n }\n case EPromptType.Point: {\n if (!prompt.creatingPrompt.point) break;\n const canvasCoordPoint = translatePointCoord(\n prompt.creatingPrompt.point,\n {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n },\n );\n drawCircleWithFill(\n activeCanvasRef.current!,\n canvasCoordPoint,\n 4,\n prompt.creatingPrompt.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE,\n 2,\n '#fff',\n );\n }\n case EPromptType.EdgeStitch:\n case EPromptType.Stroke: {\n if (!prompt.creatingPrompt.stroke || !prompt.creatingPrompt.radius)\n break;\n const canvasCoordStroke = translatePolygonCoord(\n prompt.creatingPrompt.stroke,\n {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n },\n );\n const radius =\n (prompt.creatingPrompt.radius * clientSize.width) /\n naturalSize.width;\n const color =\n prompt.creatingPrompt.type === EPromptType.EdgeStitch\n ? hexToRgba(strokeColor, ANNO_MASK_ALPHA.CREATING)\n : prompt.creatingPrompt.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE;\n drawQuadraticPath(\n activeCanvasRef.current!,\n canvasCoordStroke,\n color,\n radius,\n );\n break;\n }\n default:\n break;\n }\n\n // draw active area while loading ai annotations\n if (editState.isRequiring && prompt.activeRectWhileLoading) {\n const canvasCoordRect = translateRectCoord(\n prompt.activeRectWhileLoading,\n {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n },\n );\n shadeEverythingButRect(activeCanvasRef.current!, canvasCoordRect);\n }\n }\n }\n\n // draw existing prompts\n if (prompt.promptsQueue) {\n if (model === EnumModelType.IVP) {\n prompt.promptsQueue.forEach((item) => {\n switch (item.type) {\n case EPromptType.Rect: {\n const canvasCoordRect = translateRectCoord(item.rect!, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n drawRect(\n activeCanvasRef.current,\n canvasCoordRect,\n item.isPositive\n ? PROMPT_STROKE_COLOR.POSITIVE\n : PROMPT_STROKE_COLOR.NEGATIVE,\n 2,\n [0],\n item.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE,\n );\n break;\n }\n case EPromptType.Point: {\n const canvasCoordPoint = translatePointCoord(item.point!, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n drawCircleWithFill(\n activeCanvasRef.current!,\n canvasCoordPoint,\n 4,\n item.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE,\n 2,\n '#fff',\n );\n break;\n }\n }\n });\n } else {\n prompt.promptsQueue.forEach((item) => {\n if (item.type === EPromptType.Point) {\n const canvasCoordPoint = translatePointCoord(item.point!, {\n x: -imagePos.current.x,\n y: -imagePos.current.y,\n });\n drawCircleWithFill(\n activeCanvasRef.current!,\n canvasCoordPoint,\n 4,\n item.isPositive\n ? PROMPT_FILL_COLOR.POSITIVE\n : PROMPT_FILL_COLOR.NEGATIVE,\n 2,\n '#fff',\n );\n }\n });\n }\n }\n };\n\n const updateMaskWhenMouseDown = (event: MouseEvent) => {\n const mouse = {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n };\n setDrawData((s) => {\n switch (s.selectedSubTool) {\n case ESubToolItem.PenAdd:\n case ESubToolItem.PenErase:\n case ESubToolItem.BrushAdd:\n case ESubToolItem.BrushErase:\n if (s.creatingObject) {\n if (s.creatingObject.maskStep) {\n // add points for currently path\n s.creatingObject.maskStep.points.push(mouse);\n // judege to close path\n if (\n [ESubToolItem.PenAdd, ESubToolItem.PenErase].includes(\n s.selectedSubTool,\n ) &&\n isPointOnPoint(\n s.creatingObject.maskStep.points[0],\n contentMouse,\n )\n ) {\n s.creatingObject.tempMaskSteps?.push(s.creatingObject.maskStep);\n s.creatingObject.maskStep = undefined;\n }\n } else {\n // init new step for creating points\n s.creatingObject.maskStep = {\n tool: s.selectedSubTool,\n positive:\n s.selectedSubTool === ESubToolItem.PenAdd ||\n s.selectedSubTool === ESubToolItem.BrushAdd,\n points: [mouse],\n radius: s.brushSize,\n };\n }\n if (\n ![ESubToolItem.BrushAdd, ESubToolItem.BrushErase].includes(\n s.selectedSubTool,\n )\n ) {\n // Brush tool need not push history when mousedown\n updateHistory(cloneDeep(s));\n }\n }\n s.prompt.sessionId = undefined;\n break;\n case ESubToolItem.AutoSegmentByBox:\n s.prompt.creatingPrompt = {\n type: EPromptType.Rect,\n startPoint: mouse,\n isPositive: true,\n };\n break;\n case ESubToolItem.AutoSegmentByClick:\n s.prompt.creatingPrompt = {\n type: EPromptType.Point,\n startPoint: mouse,\n point: mouse,\n isPositive: getPromptBoolean(event),\n };\n break;\n case ESubToolItem.AutoSegmentByStroke:\n s.prompt.creatingPrompt = {\n type: EPromptType.Stroke,\n startPoint: mouse,\n stroke: [mouse],\n radius: s.brushSize,\n isPositive: getPromptBoolean(event),\n };\n break;\n case ESubToolItem.AutoEdgeStitching:\n s.prompt.creatingPrompt = {\n type: EPromptType.EdgeStitch,\n startPoint: mouse,\n stroke: [mouse],\n radius: s.brushSize,\n isPositive: true,\n };\n default:\n break;\n }\n });\n };\n\n const startEditingWhenMouseDown: ToolHooksFunc.StartEditingWhenMouseDown = ({\n event,\n }) => {\n updateMaskWhenMouseDown(event);\n return true;\n };\n\n const startCreatingWhenMouseDown: ToolHooksFunc.StartCreatingWhenMouseDown =\n ({ event, object, point, basic }) => {\n if (!object) {\n setDrawData((s) => {\n s.activeObjectIndex = -1;\n switch (s.selectedSubTool) {\n case ESubToolItem.PenAdd:\n case ESubToolItem.PenErase:\n case ESubToolItem.BrushAdd:\n case ESubToolItem.BrushErase:\n s.creatingObject = {\n ...basic,\n type: EObjectType.Mask,\n startPoint: point,\n maskStep: {\n tool: s.selectedSubTool,\n positive:\n s.selectedSubTool === ESubToolItem.PenAdd ||\n s.selectedSubTool === ESubToolItem.BrushAdd,\n points: [point],\n radius: s.brushSize,\n },\n tempMaskSteps: [],\n };\n s.prompt.sessionId = undefined;\n break;\n case ESubToolItem.AutoSegmentByBox:\n s.prompt.creatingPrompt = {\n type: EPromptType.Rect,\n startPoint: point,\n isPositive: true,\n };\n break;\n case ESubToolItem.AutoSegmentByClick:\n s.prompt.creatingPrompt = {\n type: EPromptType.Point,\n startPoint: point,\n point: point,\n isPositive: getPromptBoolean(event),\n };\n break;\n case ESubToolItem.AutoSegmentByStroke:\n s.prompt.creatingPrompt = {\n type: EPromptType.Stroke,\n startPoint: point,\n stroke: [point],\n radius: s.brushSize,\n isPositive: getPromptBoolean(event),\n };\n break;\n case ESubToolItem.AutoEdgeStitching:\n s.prompt.creatingPrompt = {\n type: EPromptType.EdgeStitch,\n startPoint: point,\n stroke: [point],\n radius: s.brushSize,\n isPositive: true,\n };\n break;\n case ESubToolItem.PositiveVisualPrompt:\n case ESubToolItem.NegativeVisualPrompt:\n s.prompt.creatingPrompt = {\n type: EPromptType.Rect,\n startPoint: point,\n point,\n isPositive:\n s.selectedSubTool !== ESubToolItem.NegativeVisualPrompt,\n };\n default:\n break;\n }\n });\n } else {\n updateMaskWhenMouseDown(event);\n }\n return true;\n };\n\n const updateMaskWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove = ({\n event,\n object,\n }) => {\n if (object || drawData.prompt.creatingPrompt) {\n updateMouseCursor('crosshair');\n const allowRecordMousePath = [\n ESubToolItem.BrushAdd,\n ESubToolItem.BrushErase,\n ESubToolItem.PenAdd,\n ESubToolItem.PenErase,\n ESubToolItem.AutoSegmentByStroke,\n ESubToolItem.AutoEdgeStitching,\n ].includes(drawData.selectedSubTool);\n\n // Left/Right button is pressed while mousemove\n const isMousePress = event.buttons === 1 || event.buttons === 2;\n if (allowRecordMousePath && isMousePress) {\n // checkContainerVisibleArea();\n const mouse = {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n };\n const isCreatingPrompt = [\n ESubToolItem.AutoSegmentByStroke,\n ESubToolItem.AutoEdgeStitching,\n ].includes(drawData.selectedSubTool);\n setDrawData((s) => {\n if (isCreatingPrompt) {\n s.prompt.creatingPrompt?.stroke?.push(mouse);\n } else {\n s.creatingObject?.maskStep?.points.push(mouse);\n }\n });\n }\n return true;\n }\n return false;\n };\n\n const updateEditingWhenMouseMove: ToolHooksFunc.UpdateEditingWhenMouseMove =\n ({ object, event }) => {\n return updateMaskWhenMouseMove({\n object,\n event,\n });\n };\n\n const updateCreatingWhenMouseMove: ToolHooksFunc.UpdateCreatingWhenMouseMove =\n ({ object, event }) => {\n return updateMaskWhenMouseMove({\n object,\n event,\n });\n };\n\n const finishMaskWhenMouseUp = () => {\n if (!drawData.creatingObject && !drawData.prompt.creatingPrompt) return;\n const mouse = {\n x: contentMouse.elementX,\n y: contentMouse.elementY,\n };\n const model = drawData.selectedModel[drawData.selectedTool];\n switch (drawData.selectedSubTool) {\n case ESubToolItem.BrushAdd:\n case ESubToolItem.BrushErase:\n case ESubToolItem.PenAdd:\n case ESubToolItem.PenErase: {\n setDrawDataWithHistory((s) => {\n if (\n s.creatingObject &&\n s.creatingObject.tempMaskSteps &&\n s.creatingObject.maskStep &&\n s.creatingObject.maskStep.points.length > 1\n ) {\n if (\n [ESubToolItem.BrushAdd, ESubToolItem.BrushErase].includes(\n s.selectedSubTool,\n ) ||\n ([ESubToolItem.PenAdd, ESubToolItem.PenErase].includes(\n s.selectedSubTool,\n ) &&\n isPointOnPoint(\n s.creatingObject.maskStep.points[0],\n contentMouse,\n ))\n ) {\n s.creatingObject.tempMaskSteps?.push(s.creatingObject.maskStep);\n s.creatingObject.maskStep = undefined;\n }\n }\n s.prompt.sessionId = undefined;\n });\n break;\n }\n case ESubToolItem.AutoSegmentByBox: {\n if (!drawData.prompt.creatingPrompt?.startPoint) break;\n if (\n mouse.x === drawData.prompt.creatingPrompt.startPoint?.x ||\n mouse.y === drawData.prompt.creatingPrompt.startPoint?.y\n ) {\n setDrawData((s) => (s.prompt.creatingPrompt = undefined));\n break;\n }\n const rect = getRectFromPoints(\n drawData.prompt.creatingPrompt.startPoint as IPoint,\n mouse,\n {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n },\n );\n const promptItem: PromptItem = {\n type: EPromptType.Rect,\n isPositive: true,\n rect,\n };\n setDrawDataWithHistory((s) => {\n s.prompt.activeRectWhileLoading = rect;\n });\n const promptsQueue = drawData.prompt.promptsQueue\n ? [...drawData.prompt.promptsQueue, promptItem]\n : [promptItem];\n onAiAnnotation?.({ type: EObjectType.Mask, drawData, promptsQueue });\n break;\n }\n case ESubToolItem.AutoSegmentByClick: {\n if (\n !isInCanvas(contentMouse) ||\n !isInCanvas(containerMouse) ||\n !drawData.prompt.creatingPrompt?.point\n )\n break;\n const promptItem: PromptItem = {\n type: EPromptType.Point,\n isPositive: drawData.prompt.creatingPrompt.isPositive,\n point: drawData.prompt.creatingPrompt.point,\n };\n const promptsQueue = drawData.prompt.promptsQueue\n ? [...drawData.prompt.promptsQueue, promptItem]\n : [promptItem];\n onAiAnnotation?.({ type: EObjectType.Mask, drawData, promptsQueue });\n break;\n }\n case ESubToolItem.AutoSegmentByStroke: {\n if (!drawData.prompt.creatingPrompt?.stroke) break;\n const promptItem: PromptItem = {\n type: EPromptType.Stroke,\n isPositive: drawData.prompt.creatingPrompt.isPositive,\n stroke: drawData.prompt.creatingPrompt.stroke,\n radius: drawData.brushSize,\n };\n const promptsQueue = drawData.prompt.promptsQueue\n ? [...drawData.prompt.promptsQueue, promptItem]\n : [promptItem];\n onAiAnnotation?.({ type: EObjectType.Mask, drawData, promptsQueue });\n break;\n }\n case ESubToolItem.AutoEdgeStitching: {\n if (!drawData.prompt.creatingPrompt?.stroke) break;\n onAiAnnotation?.({ type: EObjectType.Mask, drawData });\n break;\n }\n case ESubToolItem.PositiveVisualPrompt:\n case ESubToolItem.NegativeVisualPrompt: {\n if (\n model !== EnumModelType.IVP ||\n !drawData.prompt.creatingPrompt?.startPoint\n )\n break;\n const { startPoint } = drawData.prompt.creatingPrompt;\n if (mouse.x === startPoint.x || mouse.y === startPoint.y) {\n setDrawData((s) => (s.prompt.creatingPrompt = undefined));\n break;\n } else {\n const rect = getRectFromPoints(startPoint, mouse, {\n width: contentMouse.elementW,\n height: contentMouse.elementH,\n });\n const promptItem: PromptItem = {\n type: EPromptType.Rect,\n isPositive: drawData.prompt.creatingPrompt.isPositive,\n rect,\n };\n const promptsQueue = [\n ...(drawData.prompt.promptsQueue || []),\n promptItem,\n ];\n onAiAnnotation?.({\n type: EObjectType.Mask,\n drawData,\n promptsQueue,\n });\n }\n }\n }\n };\n\n const finishEditingWhenMouseUp: ToolHooksFunc.FinishEditingWhenMouseUp =\n () => {\n finishMaskWhenMouseUp();\n return true;\n };\n\n const finishCreatingWhenMouseUp: ToolHooksFunc.FinishCreatingWhenMouseUp =\n () => {\n finishMaskWhenMouseUp();\n return true;\n };\n\n return {\n renderObject,\n renderCreatingObject,\n renderEditingObject,\n renderPrompt,\n startEditingWhenMouseDown,\n startCreatingWhenMouseDown,\n updateEditingWhenMouseMove,\n updateCreatingWhenMouseMove,\n finishEditingWhenMouseUp,\n finishCreatingWhenMouseUp,\n };\n};\n\nexport default useMask;\n","import {\n EBasicToolItem,\n EElementType,\n ELabelType,\n EnumModelType,\n EObjectType,\n ESubToolItem,\n EToolType,\n} from './constants';\nimport { RectAnchor } from './utils/compute';\n\nexport enum EActionType {\n Radio = 'radio',\n Checkbox = 'checkbox',\n Text = 'text',\n}\n\nexport interface IAttribute {\n field: string;\n type: EActionType;\n required: boolean;\n options?: { label: string }[];\n}\n\nexport type IAttributeValue = string | number | number[] | null;\n\nexport interface IMask {\n counts: string; // mask rle string\n size: [number, number]; // [height, width]\n}\n\nexport interface Category {\n id: string;\n name: string;\n labelName?: string;\n labelType?: ELabelType;\n renderColor?: string;\n description?: string;\n attributes?: IAttribute[];\n valueType?: EActionType;\n valueOptions?: { label: string }[];\n}\n\nexport interface BaseObject {\n id?: string;\n /** catagory */\n categoryId?: string;\n categoryName?: string;\n boundingBox?: IBoundingBox;\n /** y1,x1,y2,x2 -> x1,y1 */\n segmentation?: string;\n /** matting url */\n alpha?: string;\n /**\n * keypoints: [x, y, visible, conf, ...]\n * (old mode)keypoints:[x, y, z, w, visible, conf, ...]. (Needs to be split manually.)\n * visible 0: not labeled, v=1: labeled but not visible, and v=2: labeled and visible.\n */\n points?: number[];\n /** [r, g, b, ...] */\n pointColors?: string[];\n pointNames?: string[];\n /** Keypoint connection. [start point index, end point index, ...] */\n lines?: number[];\n /** mask */\n mask?: IMask;\n /** point */\n point?: number[];\n /** polyline */\n polyline?: [number[], number[]]; // [[x1, x2, x3, ...], [y1, y2, y3, ...]]\n lineColor?: string;\n lineType?: string;\n}\n\nexport interface DrawObject extends BaseObject {\n conf?: number;\n // custom styles\n customStyles?: Record;\n}\n\nexport interface AnnoItem extends Record {\n id: string;\n url: string;\n}\n\nexport enum EObjectStatus {\n Unchecked,\n Checked,\n Commited,\n}\n\nexport interface VideoFramesData {\n id: string;\n list: AnnoItem[];\n objects: IAnnotationObject[][]; // objects[objectIndex][frameIndex]\n activeIndex: number;\n}\n\nexport interface IAnnotationObject {\n type: EObjectType;\n labelId: string;\n hidden: boolean;\n color: string;\n customStyles?: Record;\n attributes?: IAttributeValue[];\n status: EObjectStatus;\n\n // value\n rect?: IElement;\n polygon?: IElement;\n keypoints?: {\n points: IElement[];\n lines: number[];\n };\n point?: IElement;\n polyline?: IElement;\n maskRle?: string;\n maskCanvasElement?: any;\n alpha?: string;\n alphaImageElement?: any;\n conf?: number;\n\n // for video frame attribute\n frameEmpty?: boolean;\n}\n\nexport interface ICreatingMaskStep {\n tool: ESubToolItem;\n /** Add / Erase an area for Mask */\n positive: boolean;\n /** The points stroked by Pen Tool or Brush Tool */\n points: IPoint[];\n radius: number;\n}\n\nexport interface ICreatingObject extends IAnnotationObject {\n /** To determine Which polygon corresponds to the creation of a new polygon */\n currIndex?: number;\n /** Starting stretching point when creating a new Rect/Skeleton object */\n startPoint?: IPoint;\n /** Currently drawing path creating by Pen Tool or Brush Tool */\n maskStep?: ICreatingMaskStep;\n /** Steps for creating mask object */\n tempMaskSteps?: ICreatingMaskStep[];\n}\n\nexport enum EPromptType {\n Rect = 'rect',\n Point = 'point',\n Stroke = 'stroke',\n EdgeStitch = 'edgeStitch',\n Modify = 'modify',\n Text = 'text',\n}\n\nexport interface PromptItem {\n type: EPromptType;\n isPositive: boolean;\n /** Rect */\n startPoint?: IPoint;\n rect?: IRect;\n /** Point */\n point?: IPoint;\n /** Stroke / EdgeStitching */\n stroke?: IPoint[];\n radius?: number;\n /** Modify */\n polygons?: number[][];\n /** Text */\n text?: string;\n}\n\nexport interface ReqPromptItem {\n type: string;\n isPositive?: boolean;\n point?: number[];\n rect?: number[];\n stroke?: number[];\n radius?: number;\n polygons?: number[][];\n text?: string;\n}\n\nexport interface IPrompt {\n sessionId?: string;\n creatingPrompt?: PromptItem;\n promptsQueue?: PromptItem[];\n activeRectWhileLoading?: IRect;\n}\n\nexport interface IEditingAttribute {\n index: number; // Object Index || -1\n labelId: string;\n attributes: IAttribute[];\n values?: IAttributeValue[];\n}\n\n/**\n * Need to be saved in history\n */\nexport interface DrawData {\n initialized: boolean;\n\n /** Selected tool */\n selectedTool: EToolType;\n selectedSubTool: ESubToolItem;\n AIAnnotation: boolean;\n selectedModel: Record;\n brushSize: number;\n pointResolution: number;\n\n /** drawed */\n objectList: IAnnotationObject[];\n classifications: {\n labelId: string;\n labelValue: IAttributeValue;\n attributes?: IAttributeValue[];\n }[];\n\n /** drawing */\n activeClassName: string;\n activeObjectIndex: number;\n isJustCreated: boolean;\n creatingObject?: ICreatingObject; // - editing / creating\n isBatchEditing: boolean; // active while handle batch predictions by model\n editingAttribute?: IEditingAttribute;\n limitConf: number;\n\n /** prompt actions */\n prompt: IPrompt;\n}\n\nexport interface IImageDisplayOptions {\n brightness: number;\n contrast: number;\n saturate: number;\n}\n\nexport interface IAnnotsDisplayOptions {\n colorByCategory: boolean; // color by category by instance\n}\n\nexport interface EditState {\n isLoading: boolean;\n isLoadingError: boolean;\n isRequiring: boolean;\n allowMove: boolean;\n latestLabelId: string;\n startRectResizeAnchor?: RectAnchor;\n startElementMovePoint?: {\n topLeftPoint: IPoint;\n mousePoint: IPoint;\n initPoint?: IPoint;\n };\n focusObjectIndex: number;\n foucsObjectAllIndexs: number[];\n focusEleType: EElementType;\n focusEleIndex: number;\n focusPolygonInfo: {\n index: number;\n pointIndex: number;\n lineIndex: number;\n };\n isCtrlPressed: boolean;\n hideCreatingObject: boolean;\n imageDisplayOptions: IImageDisplayOptions;\n annotsDisplayOptions: IAnnotsDisplayOptions;\n}\n\nexport const enum EditorMode {\n View,\n Edit,\n Review,\n}\n\nexport const DEFAULT_DRAW_DATA: DrawData = {\n initialized: false,\n\n /** Selected tool */\n selectedTool: EBasicToolItem.Drag,\n selectedSubTool: ESubToolItem.PenAdd,\n selectedModel: {\n [EBasicToolItem.Drag]: undefined,\n [EBasicToolItem.Rectangle]: undefined,\n [EBasicToolItem.Mask]: undefined,\n [EBasicToolItem.Skeleton]: EnumModelType.Pose,\n [EBasicToolItem.Polygon]: EnumModelType.SegmentByPolygon,\n },\n AIAnnotation: false,\n\n /** drawed */\n objectList: [],\n classifications: [],\n activeObjectIndex: -1,\n activeClassName: '',\n isJustCreated: false,\n creatingObject: undefined,\n editingAttribute: undefined,\n brushSize: 20,\n pointResolution: 0.5,\n prompt: {},\n isBatchEditing: false,\n limitConf: 0,\n};\n\nexport const DEFAULT_IMG_DISPLAY_OPTIONS: IImageDisplayOptions = {\n brightness: 100,\n contrast: 100,\n saturate: 100,\n};\n\nexport const DEFAULT_ANNOTS_DISPLAY_OPTIONS: IAnnotsDisplayOptions = {\n colorByCategory: true,\n};\n\nexport const DEFAULT_EDIT_STATE: EditState = {\n isLoading: false,\n isLoadingError: false,\n isRequiring: false,\n allowMove: false,\n latestLabelId: '',\n startRectResizeAnchor: undefined,\n startElementMovePoint: undefined,\n focusObjectIndex: -1,\n foucsObjectAllIndexs: [],\n focusEleType: EElementType.Rect,\n focusEleIndex: -1,\n focusPolygonInfo: {\n index: -1,\n pointIndex: -1,\n lineIndex: -1,\n },\n isCtrlPressed: false,\n hideCreatingObject: false,\n imageDisplayOptions: DEFAULT_IMG_DISPLAY_OPTIONS,\n annotsDisplayOptions: DEFAULT_ANNOTS_DISPLAY_OPTIONS,\n};\n\nexport enum LineType {\n Solid = 'solid',\n Dashed = 'dash',\n DoubleSolid = 'double_solid',\n DoubleDashed = 'double_dash',\n LDashedRSolid = 'left_dash-right_solid',\n LSolidRDashed = 'left_solid-right_dash',\n LCurbside = 'left_curbside',\n RCurbside = 'right_curbside',\n Unknown = 'none',\n}\n","/** Convert RGB array to hexadecimal. */\nexport const rgbArrayToHex = (rgb: (number | string)[]) => {\n if (rgb.length !== 3) return 'transparent';\n return `#${rgb[0].toString(16).padStart(2, '0')}${rgb[1]\n .toString(16)\n .padStart(2, '0')}${rgb[2].toString(16).padStart(2, '0')}`.toUpperCase();\n};\n\n/** Convert RGB string to hexadecimal. */\nexport const rgbToHex = (rgb: string) => {\n const arr = /^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/i.exec(rgb);\n if (!arr) return 'transparent';\n return rgbArrayToHex(arr);\n};\n\n/** Convert hexadecimal to RGB array. */\nexport const hexToRgbArray = (hex: string) => {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n const formatHex = hex.replace(shorthandRegex, (m, r, g, b) => {\n return r + r + g + g + b + b;\n });\n const arr = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(formatHex);\n if (!arr) {\n return [0, 0, 0];\n }\n return [parseInt(arr[1], 16), parseInt(arr[2], 16), parseInt(arr[3], 16)];\n};\n\n/** Convert hexadecimal to RGBA string. */\nexport const hexToRgba = (hex: string, opacity = 1) => {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n const formatHex = hex.replace(shorthandRegex, (m, r, g, b) => {\n return r + r + g + g + b + b;\n });\n const arr = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(formatHex);\n const op = opacity < 0 || opacity > 1 ? 1 : opacity;\n if (!arr) {\n return 'transparent';\n }\n return `rgba(${parseInt(arr[1], 16)},${parseInt(arr[2], 16)},${parseInt(\n arr[3],\n 16,\n )},${op})`;\n};\n\n/** Generate a color list based on the number of categories. */\nexport const createColorList = (count: number) => {\n const colors = [\n '#FFFF00',\n '#FF0000',\n '#0000FF',\n '#00FF00',\n '#FF00FF',\n '#00FFFF',\n ];\n const preList = [255, 128, 64, 32, 16, 8, 4, 2, 1];\n for (let cur = colors.length + 1; colors.length < count; cur++) {\n let rgb = [0, 0, 0];\n let flag = 1;\n let finded = true;\n for (let i = 0; flag <= cur; i++) {\n if ((cur & flag) > 0) {\n if (rgb[i % 3] + preList[Math.floor(i / 3)] <= 255) {\n rgb[i % 3] += preList[Math.floor(i / 3)];\n } else {\n finded = false;\n break;\n }\n }\n flag <<= 1;\n }\n if (finded) {\n const hexColor = `#${rgb[0].toString(16).padStart(2, '0')}${rgb[1]\n .toString(16)\n .padStart(2, '0')}${rgb[2]\n .toString(16)\n .padStart(2, '0')}`.toUpperCase();\n if (!colors.includes(hexColor)) {\n colors.push(hexColor);\n }\n }\n }\n return colors;\n};\n\nexport const getCategoryColors = (list: string[]) => {\n if (!list.length) return {};\n\n const sortList = [...list];\n const colors = createColorList(sortList.length);\n const result: Record = {};\n sortList.forEach((item, index) => {\n result[item] = colors[index];\n });\n return result;\n};\n\n/** Convert RGB array to RGBA string. */\nexport const rgbArrayToRgba = (rgb: (number | string)[], alpha: number) => {\n if (rgb.length !== 3) return 'transparent';\n return `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${alpha})`;\n};\n\n/** Convert RGBA string to RGB array. */\nexport const rgbaToRgbArray = (rgba: string): string[] => {\n const rgbaValues = rgba\n .slice(5, -1)\n .split(',')\n .map((value) => value.trim());\n if (rgbaValues.length !== 4 || isNaN(parseFloat(rgbaValues[3]))) {\n return [];\n }\n return rgbaValues.slice(0, 3);\n};\n\n/** Modify the transparency of the RGBA format. */\nexport const changeRgbaOpacity = (rgba: string, opacity: number): string => {\n if (!rgba) return 'rgba(0,0,0,0)';\n const rgbaArray = rgba\n .substring(5, rgba.length - 1)\n .split(',')\n .map((value) => parseInt(value.trim()));\n const newRgbaArray = [...rgbaArray.slice(0, 3), opacity];\n const newRgbaString = `rgba(${newRgbaArray.join(',')})`;\n return newRgbaString;\n};\n\n/** HSV to RGB */\nexport const hsvToRgb = (\n h: number,\n s: number,\n v: number,\n): [number, number, number] => {\n const c = v * s;\n const x = c * (1 - Math.abs(((h * 6) % 2) - 1));\n const m = v - c;\n\n let r = 0,\n g = 0,\n b = 0;\n if (h < 1 / 6) {\n r = c;\n g = x;\n } else if (h < 2 / 6) {\n r = x;\n g = c;\n } else if (h < 3 / 6) {\n g = c;\n b = x;\n } else if (h < 4 / 6) {\n g = x;\n b = c;\n } else if (h < 5 / 6) {\n r = x;\n b = c;\n } else {\n r = c;\n b = x;\n }\n\n return [\n Math.round((r + m) * 255),\n Math.round((g + m) * 255),\n Math.round((b + m) * 255),\n ];\n};\n\nexport const generateUniformHexColor = (() => {\n const goldenRatio = 0.618033988749895; // Golden ratio for even color distribution\n let hue = 0;\n return (): string => {\n hue = (hue + goldenRatio) % 1;\n const rgbColor = hsvToRgb(hue, 0.8, 0.95);\n return rgbArrayToHex(rgbColor);\n };\n})();\n","import { CursorState } from 'ahooks/lib/useMouse';\nimport { cloneDeep, isEqual, isNumber, isUndefined, omitBy } from 'lodash';\n\nimport {\n EElementType,\n EObjectType,\n KEYPOINTS_VISIBLE_TYPE,\n} from '../constants';\nimport { LINE_COLOR } from '../constants/render';\nimport { rleToCanvas } from '../tools/useMask';\nimport {\n DrawData,\n EObjectStatus,\n IAnnotationObject,\n PromptItem,\n} from '../type';\n\nimport { rgbArrayToRgba, rgbaToRgbArray } from './color';\n\n/**\n * Calculate the scaled width and height.\n * @param imgWidth\n * @param imgHeight\n * @param maxWidth\n * @param maxHeight\n * @returns [number,number] [width, height]\n */\nexport const zoomImgSize = (\n imgWidth: number,\n imgHeight: number,\n contianerWidth?: number,\n contianerHeight?: number,\n): [number, number, number] => {\n if (!imgWidth || !imgHeight) return [0, 0, 1];\n // Only restrict the container width or height.\n if (!contianerWidth) {\n return [\n (imgWidth / imgHeight) * (contianerHeight || 0),\n contianerHeight || 0,\n 1,\n ];\n }\n if (!contianerHeight) {\n return [\n contianerWidth || 0,\n (imgHeight / imgWidth) * (contianerWidth || 0),\n 1,\n ];\n }\n let newWidth = imgWidth,\n newHeight = imgHeight,\n scale = 1;\n if (imgWidth / imgHeight >= contianerWidth / contianerHeight) {\n // Scale based on container width.\n newWidth = contianerWidth;\n newHeight = (imgHeight * contianerWidth) / imgWidth;\n scale = contianerWidth / imgWidth;\n } else {\n // Scale based on container height.\n newHeight = contianerHeight;\n newWidth = (imgWidth * contianerHeight) / imgHeight;\n scale = contianerHeight / imgHeight;\n }\n return [newWidth || 0, newHeight || 0, scale];\n};\n\n/** translate points */\nexport const getCanvasPoint = (\n [x = 0, y = 0]: number[],\n naturalSize: ISize,\n clientSize: ISize,\n) => {\n return {\n x: (x / naturalSize.width) * clientSize.width,\n y: (y / naturalSize.height) * clientSize.height,\n };\n};\n\n/** Convert to coordinates in image coordinate system. */\nexport const getNaturalPoint = (\n [x = 0, y = 0]: number[],\n naturalSize: ISize,\n clientSize: ISize,\n): IPoint => {\n return {\n x: (x / clientSize.width) * naturalSize.width,\n y: (y / clientSize.height) * naturalSize.height,\n };\n};\n\n/**\n * Generate corresponding canvas coordinates based on the segmentation data returned by the API.\n * @param seg\n * @param naturalSize\n * @param clientSize\n * @returns\n */\nexport const getSegmentationPoints = (\n seg: string,\n naturalSize: ISize,\n clientSize: ISize,\n): IPoint[][] => {\n const groups: IPoint[][] = [];\n if (!seg) return groups;\n const paths = seg.split('/');\n paths?.forEach((item) => {\n const points = [];\n const nums = item.split(',').map(Number);\n for (let i = 0; i < nums.length; i += 2) {\n const point = getCanvasPoint(\n [nums[i], nums[i + 1]],\n naturalSize,\n clientSize,\n );\n points.push(point);\n }\n groups.push(points);\n });\n return groups;\n};\n\nexport const translatePointGroupsToPoints = (\n pointGroups: number[][],\n naturalSize: ISize,\n clientSize: ISize,\n): IPoint[][] => {\n const groups: IPoint[][] = [];\n pointGroups.forEach((nums) => {\n const points = [];\n for (let i = 0; i < nums.length; i += 2) {\n const point = getCanvasPoint(\n [nums[i], nums[i + 1]],\n naturalSize,\n clientSize,\n );\n points.push(point);\n }\n groups.push(points);\n });\n return groups;\n};\n\n/**\n * translate points to rect\n * @param startPoint\n * @param endPoint\n * @param canvasSize\n */\nexport const getRectFromPoints = (\n startPoint: IPoint,\n endPoint: IPoint,\n canvasSize: ISize,\n): IRect => {\n const realEndPoint = {\n x:\n endPoint.x < 0\n ? 0\n : endPoint.x > canvasSize.width\n ? canvasSize.width\n : endPoint.x,\n y:\n endPoint.y < 0\n ? 0\n : endPoint.y > canvasSize.height\n ? canvasSize.height\n : endPoint.y,\n };\n return {\n x: Math.min(startPoint.x, realEndPoint.x),\n y: Math.min(startPoint.y, realEndPoint.y),\n width: Math.abs(startPoint.x - realEndPoint.x),\n height: Math.abs(startPoint.y - realEndPoint.y),\n };\n};\n\n/**\n * Calculate the polar coordinates of a set of points.\n * @param points\n * @returns\n */\nexport const getLimitCoordsFromPoints = (\n points: IPoint[],\n): { minX: number; minY: number; maxX: number; maxY: number } => {\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n for (const p of points) {\n minX = Math.min(minX, p.x);\n minY = Math.min(minY, p.y);\n maxX = Math.max(maxX, p.x);\n maxY = Math.max(maxY, p.y);\n }\n return { minX, minY, maxX, maxY };\n};\n\n/**\n * Calculate the coordinates of a point after scaling transformation.\n * @param point\n * @param scaleX\n * @param scaleY\n * @returns\n */\nexport const getScaledPointCoord = (\n point: IPoint,\n scaleX: number,\n scaleY: number,\n): IPoint => {\n return {\n x: scaleX * point.x,\n y: scaleY * point.y,\n };\n};\n\n/**\n * Calculate the coordinates of a point after translation transformation.\n * @param point\n * @param translateX\n * @param translateY\n * @returns\n */\nexport const getTranslatedPointCoord = (\n point: IPoint,\n translateX: number,\n translateY: number,\n): IPoint => {\n return {\n x: point.x + translateX,\n y: point.y + translateY,\n };\n};\n\n/**\n * Calculate the position of a set of keypoint templates after coordinate transformation.\n * @param startPoint Must be inside the canvas.\n * @param endPoint Can be outside the canvas.\n * @param canvasSize\n */\nexport const getKeypointsFromRect = (\n points: IElement[],\n rect: IRect,\n): IElement[] => {\n const { minX, minY, maxX, maxY } = getLimitCoordsFromPoints(points);\n const scaleX = rect.width / (maxX - minX);\n const scaleY = rect.height / (maxY - minY);\n\n const newPoints = points.map((point) => {\n const translatedPoint = getTranslatedPointCoord(point, -minX, -minY);\n const scaledPoint = getScaledPointCoord(translatedPoint, scaleX, scaleY);\n const updatedPoint = getTranslatedPointCoord(scaledPoint, rect.x, rect.y);\n return { ...point, ...updatedPoint };\n });\n\n return newPoints;\n};\n\n/**\n * translate rect to bounding box\n * @param rect\n * @param size\n * @returns\n */\nexport const translateRectToBoundingBox = (\n rect: IRect,\n size: ISize,\n): IBoundingBox => ({\n xmin: rect.x / size.width,\n ymin: rect.y / size.height,\n xmax: (rect.x + rect.width) / size.width,\n ymax: (rect.y + rect.height) / size.height,\n});\n\nexport const translateRectToAbsBbox = (rect: IRect): IBoundingBox => ({\n xmin: rect.x,\n ymin: rect.y,\n xmax: rect.x + rect.width,\n ymax: rect.y + rect.height,\n});\n\n/**\n * zoom rect size\n * @param rect\n * @param size\n * @returns\n */\nexport const translateRectZoom = (\n rect: IRect,\n fromSize: ISize,\n toSize: ISize,\n): IRect => ({\n x: (rect.x * toSize.width) / fromSize.width,\n y: (rect.y * toSize.height) / fromSize.height,\n width: (rect.width * toSize.width) / fromSize.width,\n height: (rect.height * toSize.height) / fromSize.height,\n});\n\n/**\n * translate rect to points\n * @param theRect\n * @param fromSize\n * @param toSize\n * @returns\n */\nexport const translateRectToPointsArray = (\n theRect: IRect,\n fromSize: ISize,\n toSize: ISize,\n): number[] => {\n const rect = translateRectZoom(theRect, fromSize, toSize);\n return [rect.x, rect.y, rect.x + rect.width, rect.y + rect.height];\n};\n\n/**\n * zoom point size\n * @param point\n * @param size\n * @returns\n */\nexport const translatePointZoom = (\n point: IPoint,\n formSize: ISize,\n toSize: ISize,\n): IPoint => ({\n x: (point.x * toSize.width) / formSize.width,\n y: (point.y * toSize.height) / formSize.height,\n});\n\n/**\n * transtlate points to rect\n * @param box\n * @param size\n * @returns\n */\nexport const translatePointsToRect = (\n points: [number, number, number, number],\n formSize: ISize,\n toSize: ISize,\n): IRect => ({\n x: ((points[0] || 0) / formSize.width) * toSize.width,\n y: ((points[1] || 0) / formSize.height) * toSize.height,\n width:\n (((points[2] || 0) - (points[0] || 0)) / formSize.width) * toSize.width,\n height:\n (((points[3] || 0) - (points[1] || 0)) / formSize.height) * toSize.height,\n});\n\n/**\n * transtlate bounding box to rect\n * @param box\n * @param size\n * @returns\n */\nexport const translateBoundingBoxToRect = (\n box: IBoundingBox,\n size: ISize,\n): IRect => ({\n x: (box.xmin || 0) * size.width,\n y: (box.ymin || 0) * size.height,\n width: ((box.xmax || 0) - (box.xmin || 0)) * size.width,\n height: ((box.ymax || 0) - (box.ymin || 0)) * size.height,\n});\n\nexport const translateAbsBBoxToRect = (box: IBoundingBox): IRect => ({\n x: box.xmin,\n y: box.ymin,\n width: box.xmax - box.xmin,\n height: box.ymax - box.ymin,\n});\n\n/**\n * format points\n * keypoints: [x, y, z, w, visible, conf, ...]\n * visible 0: not labeled, v=1: labeled but not visible, and v=2: labeled and visible.\n * @param box\n * @param size\n * @returns\n */\nexport const translatePointsToPointObjs = (\n points: number[],\n pointNames: string[],\n pointColors: string[],\n naturalSize: ISize,\n clientSize: ISize,\n): IElement[] => {\n const pointList = [];\n for (let i = 0; i * 6 < points.length; i++) {\n const { x, y } = getCanvasPoint(\n [points[i * 6], points[i * 6 + 1]],\n naturalSize,\n clientSize,\n );\n const color = rgbArrayToRgba(pointColors.slice(i * 3, i * 3 + 3), 1);\n const point = {\n x,\n y,\n visible: points[i * 6 + 4],\n color,\n name: pointNames[i],\n };\n pointList.push(point);\n }\n return pointList;\n};\n\nexport const translatePointObjsToPointAttrs = (\n pointObjs: IElement[],\n naturalSize: ISize,\n clientSize: ISize,\n): {\n points: number[];\n pointNames: string[];\n pointColors: string[];\n} => {\n const points = [];\n const pointNames = [];\n const pointColors = [];\n\n for (let i = 0; i < pointObjs.length; i++) {\n const point = pointObjs[i];\n const { x, y } = point;\n const rgb = rgbaToRgbArray(point.color!);\n const naturalPoint = getNaturalPoint([x, y], naturalSize, clientSize);\n points.push(naturalPoint.x, naturalPoint.y, 0, 1, point.visible, 1);\n pointNames.push(point.name!);\n pointColors.push(rgb[0] || '255', rgb[1] || '255', rgb[2] || '255');\n }\n\n return {\n points,\n pointNames,\n pointColors,\n };\n};\n\n/**\n * format points (new model)\n * keypoints: [x, y, visible, conf, ...]\n * visible 0: not labeled, v=1: labeled but not visible, and v=2: labeled and visible.\n * @param box\n * @param size\n * @returns\n */\nexport const newTranslatePointsToPointObjs = (\n points: number[],\n pointNames: string[],\n pointColors: string[],\n naturalSize: ISize,\n clientSize: ISize,\n): IElement[] => {\n const pointList = [];\n for (let i = 0; i * 4 < points.length; i++) {\n const { x, y } = getCanvasPoint(\n [points[i * 4], points[i * 4 + 1]],\n naturalSize,\n clientSize,\n );\n const color = rgbArrayToRgba(pointColors.slice(i * 3, i * 3 + 3), 1);\n const point = {\n x,\n y,\n visible: points[i * 4 + 2],\n color,\n name: pointNames[i],\n };\n pointList.push(point);\n }\n return pointList;\n};\n\nexport const newTranslatePointObjsToPointAttrs = (\n pointObjs: IElement[],\n naturalSize: ISize,\n clientSize: ISize,\n): {\n points: number[];\n pointNames: string[];\n pointColors: string[];\n} => {\n const points = [];\n const pointNames = [];\n const pointColors = [];\n\n for (let i = 0; i < pointObjs.length; i++) {\n const point = pointObjs[i];\n const { x, y } = point;\n const rgb = rgbaToRgbArray(point.color!);\n const naturalPoint = getNaturalPoint([x, y], naturalSize, clientSize);\n points.push(naturalPoint.x, naturalPoint.y, point.visible, 1);\n pointNames.push(point.name!);\n pointColors.push(rgb[0] || '255', rgb[1] || '255', rgb[2] || '255');\n }\n\n return {\n points,\n pointNames,\n pointColors,\n };\n};\n\n/**\n * Determine if two rects are the same.(Only compare the decimal places after the second digit)\n * @param aRect\n * @param bRect\n * @returns\n */\nexport const isEqualRect = (aRect: IRect, bRect: IRect): boolean => {\n return (\n Object.keys(aRect).findIndex(\n (key) =>\n aRect[key as keyof IRect].toFixed(2) !==\n bRect[key as keyof IRect].toFixed(2),\n ) < 0\n );\n};\n\n/**\n * Whether it is inside the canvas.\n * @param mouse\n * @returns\n */\nexport const isInCanvas = (mouse: CursorState): boolean =>\n mouse.elementX >= 0 &&\n mouse.elementX <= mouse.elementW &&\n mouse.elementY >= 0 &&\n mouse.elementY <= mouse.elementH;\n\n/**\n * Expand / shrink rect\n * @param rect\n * @param delta\n * @returns\n */\nexport const expandRect = (rect: IRect, delta: IPoint): IRect => {\n return {\n x: rect.x - delta.x,\n y: rect.y - delta.y,\n width: rect.width + 2 * delta.x,\n height: rect.height + 2 * delta.y,\n };\n};\n\nexport const expandPointToCircle = (point: IPoint, radius: number): ICircle => {\n return {\n ...point,\n radius,\n };\n};\n\nfunction crossProduct(p1: IPoint, p2: IPoint, p3: IPoint) {\n const v1 = { x: p2.x - p1.x, y: p2.y - p1.y };\n const v2 = { x: p3.x - p1.x, y: p3.y - p1.y };\n return v1.x * v2.y - v1.y * v2.x;\n}\n\n/**\n * Determine if a point is inside a shape.\n * @param shape\n * @param point\n * @param type\n * @returns\n */\nexport const isPointInside = (\n shape: IRect | ICircle | IPolygon,\n point: IPoint,\n type: EElementType,\n): boolean => {\n if (!shape || !point) return false;\n switch (type) {\n case EElementType.Rect: {\n const rect = shape as IRect;\n return (\n rect.x <= point.x &&\n rect.x + rect.width >= point.x &&\n rect.y <= point.y &&\n rect.y + rect.height >= point.y\n );\n }\n case EElementType.Circle: {\n const circle = shape as ICircle;\n return (\n Math.sqrt(\n Math.pow(point.x - circle.x, 2) + Math.pow(point.y - circle.y, 2),\n ) <= circle.radius\n );\n }\n case EElementType.Polygon: {\n const polygon = shape as IPolygon;\n // Divide a polygon into several triangles.\n for (let i = 1; i < polygon.length - 1; i++) {\n // Calculate the cross product of the three vertices of a triangle and point P.\n const cross1 = crossProduct(polygon[0], polygon[i], point);\n const cross2 = crossProduct(polygon[i], polygon[i + 1], point);\n const cross3 = crossProduct(polygon[i + 1], polygon[0], point);\n // If the signs of all three cross products are the same, then the point is inside the triangle.\n if (cross1 * cross2 > 0 && cross1 * cross3 > 0) {\n return true;\n }\n }\n return false;\n }\n default:\n return false;\n }\n};\n\n// const isPointInsideRect = (rect: IRect, mouse: CursorState): boolean => {\n// const outerRect = expandRect(rect, { x: 8, y: 8 });\n// const innerRect = expandRect(rect, { x: -8, y: -8 });\n// const point = { x: mouse.elementX, y: mouse.elementY };\n// return (\n// isPointInside(outerRect, point, EElementType.Rect) &&\n// !isPointInside(innerRect, point, EElementType.Rect)\n// );\n// };\n\nexport const isPointOnPoint = (\n point: IPoint,\n mouse: CursorState,\n redius: number = 5,\n): boolean => {\n const circle = expandPointToCircle(point, redius);\n const focusPoint = { x: mouse.elementX, y: mouse.elementY };\n return isPointInside(circle, focusPoint, EElementType.Circle);\n};\n\nconst isPointOnLine = (line: ILine, mouse: CursorState): boolean => {\n const { elementX: x, elementY: y } = mouse;\n const distanceFromStart = Math.sqrt(\n Math.pow(x - line.start.x, 2) + Math.pow(y - line.start.y, 2),\n );\n const distanceFromEnd = Math.sqrt(\n Math.pow(x - line.end.x, 2) + Math.pow(y - line.end.y, 2),\n );\n const lineLength = Math.sqrt(\n Math.pow(line.end.x - line.start.x, 2) +\n Math.pow(line.end.y - line.start.y, 2),\n );\n const buffer = 0.75;\n return (\n distanceFromStart + distanceFromEnd >= lineLength - buffer &&\n distanceFromStart + distanceFromEnd <= lineLength + buffer\n );\n};\n\nexport const getLimitRectFromPoints = (points: IPoint[]): IRect => {\n const { maxX, minX, maxY, minY } = getLimitCoordsFromPoints(points);\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n};\n\nexport const getLinesFromPolygon = (polygon: IPolygon): ILine[] => {\n const lines: ILine[] = [];\n for (let i = 0; i < polygon.length; i++) {\n const startPoint = polygon[i];\n const endPoint = polygon[(i + 1) % polygon.length];\n lines.push({ start: startPoint, end: endPoint });\n }\n return lines;\n};\n\nexport const judgeFocusOnSingleObject = (\n mouse: CursorState,\n object: IAnnotationObject,\n clientSize?: ISize,\n): boolean => {\n if (object.hidden || object.frameEmpty) {\n return false;\n }\n\n const mousePoint = {\n x: mouse.elementX,\n y: mouse.elementY,\n };\n\n switch (object.type) {\n case EObjectType.Rectangle: {\n if (\n object.rect &&\n isPointInside(\n expandRect(object.rect, { x: 8, y: 8 }),\n mousePoint,\n EElementType.Rect,\n )\n ) {\n return true;\n }\n break;\n }\n case EObjectType.Polygon: {\n if (object.polygon) {\n const { group } = object.polygon!;\n const isInside = group.some((polygon) =>\n isPointInside(polygon, mousePoint, EElementType.Polygon),\n );\n if (isInside) return true;\n const isInsidePoints = group.some((polygon) => {\n return polygon.some((point) => {\n return isPointOnPoint(point, mouse);\n });\n });\n if (isInsidePoints) return true;\n const isOnLines = group.some((polygon) => {\n const lines = getLinesFromPolygon(polygon);\n return lines.some((line) => {\n return isPointOnLine(line, mouse);\n });\n });\n if (isOnLines) return true;\n }\n break;\n }\n case EObjectType.Skeleton: {\n if (object.keypoints?.points) {\n const validPoints = object.keypoints?.points.filter(\n (point) => point.visible === KEYPOINTS_VISIBLE_TYPE.labeledVisible,\n );\n const limitRect = getLimitRectFromPoints(validPoints);\n const isInside = isPointInside(\n limitRect,\n mousePoint,\n EElementType.Rect,\n );\n if (isInside) return true;\n }\n if (object.rect) {\n if (isPointInside(object.rect, mousePoint, EElementType.Rect)) {\n return true;\n }\n }\n break;\n }\n case EObjectType.Custom: {\n if (object.keypoints?.points) {\n const validPoints = object.keypoints?.points.filter(\n (point) => point.visible === KEYPOINTS_VISIBLE_TYPE.labeledVisible,\n );\n const limitRect = getLimitRectFromPoints(validPoints);\n const isInside = isPointInside(\n limitRect,\n mousePoint,\n EElementType.Rect,\n );\n if (isInside) {\n return true;\n }\n }\n if (object.polygon) {\n const { group } = object.polygon;\n const isInside = group.some((polygon) =>\n isPointInside(polygon, mousePoint, EElementType.Polygon),\n );\n if (isInside) {\n return true;\n }\n }\n if (object.rect) {\n if (isPointInside(object.rect, mousePoint, EElementType.Rect)) {\n return true;\n }\n }\n break;\n }\n case EObjectType.Mask: {\n if (object.maskCanvasElement) {\n const tempCtx = object.maskCanvasElement.getContext('2d', {\n willReadFrequently: true,\n });\n if (!tempCtx || !clientSize) break;\n\n // get target pixel data\n const pixelData = tempCtx.getImageData(\n (mousePoint.x * object.maskCanvasElement.width) / clientSize.width,\n (mousePoint.y * object.maskCanvasElement.height) / clientSize.height,\n 1,\n 1,\n ).data;\n if (pixelData[3] > 0) {\n return true;\n }\n }\n break;\n }\n }\n return false;\n};\n\nexport const judgeFocusOnElement = (\n mouse: CursorState,\n object: IAnnotationObject,\n): {\n focusEleIndex: number;\n focusEleType: EElementType;\n focusPolygonInfo: {\n index: number;\n pointIndex: number;\n lineIndex: number;\n };\n} => {\n let focusEleType = EElementType.None;\n let focusEleIndex = -1;\n let focusPolygonInfo = {\n index: -1,\n pointIndex: -1,\n lineIndex: -1,\n };\n\n if (!isInCanvas(mouse) || object.hidden) {\n return { focusEleType, focusEleIndex, focusPolygonInfo };\n }\n\n if (object.keypoints?.points) {\n const { points } = object.keypoints;\n for (let j = 0; j < points.length; j++) {\n const { visible, x, y } = points[j];\n if (\n visible === KEYPOINTS_VISIBLE_TYPE.labeledVisible &&\n isPointOnPoint({ x, y }, mouse)\n ) {\n focusEleType = EElementType.Circle;\n focusEleIndex = j;\n\n return { focusEleType, focusEleIndex, focusPolygonInfo };\n }\n }\n }\n\n if (object.polygon && object.polygon.visible) {\n const { group } = object.polygon;\n // find point in polygon\n for (let i = 0; i < group.length; i++) {\n const pointIndex = group[i].findIndex((point) => {\n return isPointOnPoint(point, mouse);\n });\n if (pointIndex > -1) {\n focusPolygonInfo.index = i;\n focusPolygonInfo.pointIndex = pointIndex;\n return {\n focusEleType: EElementType.Polygon,\n focusEleIndex: 0,\n focusPolygonInfo,\n };\n }\n }\n // find line in polygon\n for (let i = 0; i < group.length; i++) {\n const lines = getLinesFromPolygon(group[i]);\n const lineIndex = lines.findIndex((line) => isPointOnLine(line, mouse));\n if (lineIndex > -1) {\n focusPolygonInfo.index = i;\n focusPolygonInfo.lineIndex = lineIndex;\n return {\n focusEleType: EElementType.Polygon,\n focusEleIndex: 0,\n focusPolygonInfo,\n };\n }\n }\n const polygonIdx = group.findIndex((polygon) =>\n isPointInside(\n polygon,\n {\n x: mouse.elementX,\n y: mouse.elementY,\n },\n EElementType.Polygon,\n ),\n );\n if (polygonIdx > -1) {\n focusPolygonInfo.index = polygonIdx;\n return {\n focusEleType: EElementType.Polygon,\n focusEleIndex: 0,\n focusPolygonInfo,\n };\n }\n }\n\n if (\n object.rect &&\n isPointInside(\n expandRect(object.rect, { x: 8, y: 8 }),\n {\n x: mouse.elementX,\n y: mouse.elementY,\n },\n EElementType.Rect,\n )\n ) {\n focusEleType = EElementType.Rect;\n focusEleIndex = 0;\n return { focusEleType, focusEleIndex, focusPolygonInfo };\n }\n\n return { focusEleType, focusEleIndex, focusPolygonInfo };\n};\n\nexport const judgeFocusOnObject = (\n clientSize: ISize,\n mouse: CursorState,\n activeObjectIndex: number,\n objects: IAnnotationObject[],\n focusFilter: (obj: IAnnotationObject) => boolean = () => true,\n): number => {\n if (!isInCanvas(mouse)) {\n return -1;\n }\n\n // Judge focus on active object.\n if (\n objects[activeObjectIndex] &&\n focusFilter(objects[activeObjectIndex]) &&\n judgeFocusOnSingleObject(mouse, objects[activeObjectIndex], clientSize)\n ) {\n return activeObjectIndex;\n }\n\n // Find the topmost instance by searching the objectList in reverse order.\n for (let index = objects.length - 1; index >= 0; index--) {\n if (\n focusFilter(objects[index]) &&\n judgeFocusOnSingleObject(mouse, objects[index], clientSize)\n ) {\n return index;\n }\n }\n\n return -1;\n};\n\nexport const judgeFocusOnPointAllObject = (\n clientSize: ISize,\n mouse: CursorState,\n objects: IAnnotationObject[],\n focusFilter: (obj: IAnnotationObject) => boolean = () => true,\n): number[] => {\n if (!isInCanvas(mouse)) {\n return [];\n }\n\n const results = [];\n // Find the topmost instance by searching the objectList in reverse order.\n for (let index = objects.length - 1; index >= 0; index--) {\n if (\n focusFilter(objects[index]) &&\n judgeFocusOnSingleObject(mouse, objects[index], clientSize)\n ) {\n results.push(index);\n }\n }\n\n return results;\n};\n\nexport enum Direction {\n TOP = 'TOP',\n BOTTOM = 'BOTTOM',\n LEFT = 'LEFT',\n RIGHT = 'RIGHT',\n TOP_RIGHT = 'TOP_RIGHT',\n TOP_LEFT = 'TOP_LEFT',\n BOTTOM_RIGHT = 'BOTTOM_RIGHT',\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n CENTER = 'CENTER',\n}\n\nexport interface RectAnchor {\n type: Direction;\n position: IPoint;\n}\n\nconst setValueBetweenPixels = (value: number): number => {\n return Math.floor(value) + 0.5;\n};\n\nconst setPointBetweenPixels = (point: IPoint): IPoint => {\n return {\n x: setValueBetweenPixels(point.x),\n y: setValueBetweenPixels(point.y),\n };\n};\n\nexport const setRectBetweenPixels = (rect: IRect): IRect => {\n const topLeft: IPoint = {\n x: rect.x,\n y: rect.y,\n };\n const bottomRight: IPoint = {\n x: rect.x + rect.width,\n y: rect.y + rect.height,\n };\n const topLeftBetweenPixels = setPointBetweenPixels(topLeft);\n const bottomRightBetweenPixels = setPointBetweenPixels(bottomRight);\n return {\n x: topLeftBetweenPixels.x,\n y: topLeftBetweenPixels.y,\n width: bottomRightBetweenPixels.x - topLeftBetweenPixels.x,\n height: bottomRightBetweenPixels.y - topLeftBetweenPixels.y,\n };\n};\n\nexport const mapRectToAnchors = (rect: IRect): RectAnchor[] => {\n return [\n { type: Direction.TOP_LEFT, position: { x: rect.x, y: rect.y } },\n {\n type: Direction.TOP,\n position: { x: rect.x + 0.5 * rect.width, y: rect.y },\n },\n {\n type: Direction.TOP_RIGHT,\n position: { x: rect.x + rect.width, y: rect.y },\n },\n {\n type: Direction.LEFT,\n position: { x: rect.x, y: rect.y + 0.5 * rect.height },\n },\n {\n type: Direction.RIGHT,\n position: { x: rect.x + rect.width, y: rect.y + 0.5 * rect.height },\n },\n {\n type: Direction.BOTTOM_LEFT,\n position: { x: rect.x, y: rect.y + rect.height },\n },\n {\n type: Direction.BOTTOM,\n position: { x: rect.x + 0.5 * rect.width, y: rect.y + rect.height },\n },\n {\n type: Direction.BOTTOM_RIGHT,\n position: { x: rect.x + rect.width, y: rect.y + rect.height },\n },\n ];\n};\n\nexport const getRectWithCenterAndSize = (\n centerPoint: IPoint,\n size: ISize,\n): IRect => {\n return {\n x: centerPoint.x - 0.5 * size.width,\n y: centerPoint.y - 0.5 * size.height,\n ...size,\n };\n};\n\nexport const getAnchorUnderMouseByRect = (\n rect: IRect,\n mousePosition: IPoint,\n): RectAnchor | null => {\n const rectAnchors: RectAnchor[] = mapRectToAnchors(rect);\n for (let i = 0; i < rectAnchors.length; i++) {\n const anchorRect: IRect = getRectWithCenterAndSize(\n rectAnchors[i].position,\n { width: 16, height: 16 },\n );\n if (\n !!mousePosition &&\n isPointInside(anchorRect, mousePosition, EElementType.Rect)\n ) {\n return rectAnchors[i];\n }\n }\n return null;\n};\n\nexport const getAnchorFixRectPoint = (\n rect: IRect,\n direction: Direction,\n): IPoint => {\n switch (direction) {\n case Direction.RIGHT:\n case Direction.BOTTOM:\n case Direction.BOTTOM_RIGHT:\n return { x: rect.x, y: rect.y };\n case Direction.LEFT:\n case Direction.TOP:\n case Direction.TOP_LEFT:\n return { x: rect.x + rect.width, y: rect.y + rect.height };\n case Direction.BOTTOM_LEFT:\n return { x: rect.x + rect.width, y: rect.y };\n case Direction.TOP_RIGHT:\n return { x: rect.x, y: rect.y + rect.height };\n }\n return { x: rect.x, y: rect.y };\n};\n\nexport const resizeRect = (\n rect: IRect,\n anchor: RectAnchor,\n mouse: CursorState,\n): IRect => {\n const { type, position } = anchor;\n const limitMouseX =\n mouse.elementX < 0\n ? 0\n : mouse.elementX > mouse.elementW\n ? mouse.elementW\n : mouse.elementX;\n const limitMouseY =\n mouse.elementY < 0\n ? 0\n : mouse.elementY > mouse.elementH\n ? mouse.elementH\n : mouse.elementY;\n const endPoint = { x: limitMouseX, y: limitMouseY };\n switch (type) {\n case Direction.RIGHT:\n endPoint.y = rect.y + rect.height;\n break;\n case Direction.BOTTOM:\n endPoint.x = rect.x + rect.width;\n break;\n case Direction.LEFT:\n endPoint.y = rect.y;\n break;\n case Direction.TOP:\n endPoint.x = rect.x;\n break;\n }\n return getRectFromPoints(position, endPoint, {\n width: mouse.elementW,\n height: mouse.elementH,\n });\n};\n\nexport const moveRect = (\n rect: IRect,\n startPoints: { topLeftPoint: IPoint; mousePoint: IPoint },\n mouse: CursorState,\n): IRect => {\n const { width, height } = rect;\n const { topLeftPoint, mousePoint } = startPoints;\n const offsetX = mouse.elementX - mousePoint.x;\n const offsetY = mouse.elementY - mousePoint.y;\n const x = topLeftPoint.x + offsetX;\n const y = topLeftPoint.y + offsetY;\n\n return {\n x: x < 0 ? 0 : x + width > mouse.elementW ? mouse.elementW - width : x,\n y: y < 0 ? 0 : y + height > mouse.elementH ? mouse.elementH - height : y,\n width,\n height,\n };\n};\n\nexport const movePolygon = (\n polygon: IPolygon,\n startPoints: { mousePoint: IPoint },\n mouse: CursorState,\n): IPolygon => {\n const { mousePoint } = startPoints;\n const { elementX, elementY, elementW, elementH } = mouse;\n const { minX, minY, maxX, maxY } = getLimitCoordsFromPoints(polygon);\n let offsetX = elementX - mousePoint.x;\n let offsetY = elementY - mousePoint.y;\n offsetX =\n offsetX + maxX > elementW\n ? elementW - maxX\n : offsetX + minX < 0\n ? 0\n : offsetX;\n offsetY =\n offsetY + maxY > elementH\n ? elementH - maxY\n : offsetY + minY < 0\n ? 0\n : offsetY;\n const newPolygon = polygon.map((point) => ({\n x: point.x + offsetX,\n y: point.y + offsetY,\n }));\n return newPolygon;\n};\n\nexport const movePoint = (mouse: CursorState): IPoint => {\n const { elementX, elementY } = mouse;\n return {\n x: elementX < 0 ? 0 : elementX > mouse.elementW ? mouse.elementW : elementX,\n y: elementY < 0 ? 0 : elementY > mouse.elementH ? mouse.elementH : elementY,\n };\n};\n\nexport const isValidRect = (rect: IRect) => {\n if (\n !isNumber(rect.x) ||\n !isNumber(rect.y) ||\n !isNumber(rect.width) ||\n !isNumber(rect.height)\n ) {\n return false;\n }\n if (rect.x === 0 && rect.y === 0 && rect.width === 0 && rect.height === 0) {\n return false;\n }\n return true;\n};\n\n// TODO: How to confirm ObjectType\nexport const getObjectType = (obj: IAnnotationObject): EObjectType => {\n if (obj.maskRle) {\n return EObjectType.Mask;\n }\n if (obj.alpha) {\n return EObjectType.Matting;\n }\n if (obj.keypoints) {\n return EObjectType.Skeleton;\n }\n if (obj.polygon) {\n return EObjectType.Polygon;\n }\n if (obj.point) {\n return EObjectType.Point;\n }\n if (obj.rect && isValidRect(obj.rect)) {\n return EObjectType.Rectangle;\n }\n if (obj.polyline) {\n return EObjectType.Polyline;\n }\n return EObjectType.Custom;\n};\n\nexport const translatePolygonsToPointsArrayGroup = (\n polygons: IElement,\n naturalSize: ISize,\n clientSize: ISize,\n): number[][] => {\n const arr = polygons.group.map((polygon) => {\n return polygon.reduce((acc: number[], point: IPoint) => {\n const { x, y } = point;\n const naturalPoint = getNaturalPoint([x, y], naturalSize, clientSize);\n return acc.concat([naturalPoint.x, naturalPoint.y]);\n }, []);\n });\n return arr;\n};\n\nexport const translatePolygonsToSegmentation = (\n polygons: IElement,\n naturalSize: ISize,\n clientSize: ISize,\n): string => {\n const arr = translatePolygonsToPointsArrayGroup(\n polygons,\n naturalSize,\n clientSize,\n );\n const res =\n arr\n .map((polygon) => {\n return polygon.join(',');\n })\n .join('/') || '';\n\n return res;\n};\n\nexport const getClosestPointOnLineSegment = (\n point: IPoint,\n lineStart: IPoint,\n lineEnd: IPoint,\n) => {\n const ap = { x: point.x - lineStart.x, y: point.y - lineStart.y };\n const ab = { x: lineEnd.x - lineStart.x, y: lineEnd.y - lineStart.y };\n const ab2: number = ab.x * ab.x + ab.y * ab.y;\n const ap_ab: number = ap.x * ab.x + ap.y * ab.y;\n let t: number = ap_ab / ab2;\n if (t < 0 || isNaN(t)) {\n t = 0;\n } else if (t > 1) {\n t = 1;\n }\n return { x: lineStart.x + ab.x * t, y: lineStart.y + ab.y * t };\n};\n\nexport const getMidPointFromTwoPoints = (p1: IPoint, p2: IPoint): IPoint => {\n return {\n x: (p1.x + p2.x) / 2,\n y: (p1.y + p2.y) / 2,\n };\n};\n\n/**\n * Get the corner points, edge midpoints, and center point of a rectangle.\n */\nexport const getReferencePointsFromRect = (rect: IRect): IPoint[] => {\n const { x, y, width, height } = rect;\n\n const topLeft: IPoint = { x, y };\n const topRight: IPoint = { x: x + width, y };\n const bottomLeft: IPoint = { x, y: y + height };\n const bottomRight: IPoint = { x: x + width, y: y + height };\n\n const topMidpoint: IPoint = { x: x + width / 2, y };\n const bottomMidpoint: IPoint = { x: x + width / 2, y: y + height };\n const leftMidpoint: IPoint = { x, y: y + height / 2 };\n const rightMidpoint: IPoint = { x: x + width, y: y + height / 2 };\n\n const center: IPoint = { x: x + width / 2, y: y + height / 2 };\n\n return [\n topLeft,\n topRight,\n bottomLeft,\n bottomRight,\n topMidpoint,\n bottomMidpoint,\n leftMidpoint,\n rightMidpoint,\n center,\n ];\n};\n\n/**\n * Determine if polygon p1 is surrounded by p2.\n * @param p1\n * @param p2\n * @returns\n */\nexport const isPolygonInsidePolygon = (p1: IPolygon, p2: IPolygon) => {\n const box1 = getLimitCoordsFromPoints(p1);\n const box2 = getLimitCoordsFromPoints(p2);\n if (\n box2.minX >= box1.maxX ||\n box2.maxX <= box1.minX ||\n box2.minY >= box1.maxY ||\n box2.maxY <= box1.minY\n ) {\n return false;\n }\n for (const point of p1) {\n if (!isPointInside(p2, point, EElementType.Polygon)) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Find the polygons in a set of polygons that are completely surrounded and return their indexs.\n * @param polygons\n * @returns\n */\nexport const getInnerPolygonIndexFromGroup = (\n polygons: IPolygon[],\n): number[] => {\n const innerPolygonIdx: number[] = [];\n for (let i = 0; i < polygons.length; i++) {\n const polygon = polygons[i];\n let isInnerPolygon = false;\n for (let j = 0; j < polygons.length; j++) {\n if (i !== j && isPolygonInsidePolygon(polygon, polygons[j])) {\n isInnerPolygon = true;\n break;\n }\n }\n if (isInnerPolygon) {\n innerPolygonIdx.push(i);\n }\n }\n return innerPolygonIdx;\n};\n\nexport const calculatePolygonArea = (vertices: [number, number][]): number => {\n const n = vertices.length;\n let area = 0;\n for (let i = 0; i < n; i++) {\n const [x1, y1] = vertices[i];\n const [x2, y2] = vertices[(i + 1) % n];\n area += x1 * y2 - x2 * y1;\n }\n return Math.abs(area / 2);\n};\n\nexport const convertToVerticesArray = (\n numbers: number[],\n): [number, number][] => {\n const vertices: [number, number][] = [];\n\n for (let i = 0; i < numbers.length; i += 2) {\n const x = numbers[i];\n const y = numbers[i + 1];\n vertices.push([x, y]);\n }\n\n return vertices;\n};\n\nexport const translateRectCoord = (\n rect: IRect,\n newCoordOrigin: IPoint,\n): IRect => {\n return {\n ...rect,\n x: rect.x - newCoordOrigin.x,\n y: rect.y - newCoordOrigin.y,\n };\n};\n\nexport const translatePolygonCoord = (\n polygon: IPolygon,\n newCoordOrigin: IPoint,\n): IPolygon => {\n return polygon.map((point) => {\n return {\n x: point.x - newCoordOrigin.x,\n y: point.y - newCoordOrigin.y,\n };\n });\n};\n\nexport const translatePointCoord = (\n point: IPoint,\n newCoordOrigin: IPoint,\n): IPoint => {\n return {\n x: point.x - newCoordOrigin.x,\n y: point.y - newCoordOrigin.y,\n };\n};\n\nexport const translateAnnotCoord = (\n annoObj: IAnnotationObject,\n newCoordOrigin: IPoint,\n): IAnnotationObject => {\n const { rect, polygon, keypoints, point, polyline } = annoObj;\n const newAnnoObj = { ...annoObj };\n\n if (rect) {\n newAnnoObj.rect = {\n ...rect,\n ...translateRectCoord(rect, newCoordOrigin),\n };\n }\n\n if (polygon) {\n const newGroup = polygon.group.map((polyItem) => {\n return translatePolygonCoord(polyItem, newCoordOrigin);\n });\n newAnnoObj.polygon = {\n ...polygon,\n group: newGroup,\n };\n }\n\n if (keypoints) {\n const newPoints = keypoints.points.map((point) => {\n return {\n ...point,\n ...translatePointCoord(point, newCoordOrigin),\n };\n });\n newAnnoObj.keypoints = {\n ...keypoints,\n points: newPoints,\n };\n }\n\n if (point) {\n newAnnoObj.point = {\n ...point,\n ...translatePointCoord(point, newCoordOrigin),\n };\n }\n\n if (polyline) {\n const newGroup = polyline.group.map((lineItem) => {\n return translatePolygonCoord(lineItem, newCoordOrigin);\n });\n newAnnoObj.polyline = {\n ...polyline,\n group: newGroup,\n };\n }\n\n return newAnnoObj;\n};\n\n/**\n * Scale obj to curSize\n * @param obj\n * @param preSize\n * @param curSize\n * @returns\n */\nexport const scaleObject = (\n obj: IAnnotationObject,\n preSize: ISize,\n curSize: ISize,\n) => {\n const newObj = { ...obj };\n\n if (newObj.rect) {\n const newRect = translateRectZoom(newObj.rect, preSize, curSize);\n newObj.rect = { ...newObj.rect, ...newRect };\n }\n if (newObj.keypoints) {\n const { points, lines } = newObj.keypoints;\n const newPoints = points.map((point) => {\n const newPoint = translatePointZoom(point, preSize, curSize);\n return { ...point, ...newPoint };\n });\n newObj.keypoints = { points: newPoints, lines };\n }\n if (newObj.polygon) {\n const newGroups = newObj.polygon.group.map((polygon) => {\n return polygon.map((point) => {\n return translatePointZoom(point, preSize, curSize);\n });\n });\n newObj.polygon = { ...newObj.polygon, group: newGroups };\n }\n if (newObj.point) {\n const newPoint = translatePointZoom(newObj.point, preSize, curSize);\n newObj.point = { ...newObj.point, ...newPoint };\n }\n if (newObj.polyline) {\n const newGroups = newObj.polyline.group.map((polyline) => {\n return polyline.map((point) => {\n return translatePointZoom(point, preSize, curSize);\n });\n });\n newObj.polyline = { ...newObj.polyline, group: newGroups };\n }\n return newObj;\n};\nconst scalePromptItem = (\n promptItem: PromptItem,\n preSize: ISize,\n curSize: ISize,\n): PromptItem => {\n const { point, startPoint, rect, stroke, polygons } = promptItem;\n const scaledPromptItem = { ...promptItem };\n if (point) {\n Object.assign(scaledPromptItem, {\n point: translatePointZoom(point, preSize, curSize),\n });\n }\n if (startPoint) {\n Object.assign(scaledPromptItem, {\n startPoint: translatePointZoom(startPoint, preSize, curSize),\n });\n }\n if (rect) {\n Object.assign(scaledPromptItem, {\n rect: translateRectZoom(rect, preSize, curSize),\n });\n }\n if (stroke) {\n Object.assign(scaledPromptItem, {\n stroke: stroke.map((point) => {\n return translatePointZoom(point, preSize, curSize);\n }),\n });\n }\n if (polygons) {\n Object.assign(scaledPromptItem, {\n polygons: polygons.map((polygon) => {\n const res = [];\n for (let i = 0; i < polygon.length; i += 2) {\n const point = { x: polygon[i], y: polygon[i + 1] };\n const scaledPoint = translatePointZoom(point, preSize, curSize);\n res.push(scaledPoint.x, scaledPoint.y);\n }\n return res;\n }),\n });\n }\n return scaledPromptItem;\n};\n\n/**\n * Scale frames objects\n * @param preSize\n * @param curSize\n */\nexport const scaleFramesObjects = (\n framesObjects: IAnnotationObject[][],\n preSize: ISize,\n curSize: ISize,\n) => {\n const updateFramesObjects = cloneDeep(framesObjects);\n return updateFramesObjects.map((objs) => {\n if (objs) {\n return objs.map((obj) => {\n return obj ? scaleObject(obj, preSize, curSize) : obj;\n });\n }\n return objs;\n });\n};\n\n/**\n * Scale draw data\n * @param preSize\n * @param curSize\n */\nexport const scaleDrawData = (\n theDrawData: DrawData,\n preSize: ISize,\n curSize: ISize,\n) => {\n const updateDrawData = cloneDeep(theDrawData);\n updateDrawData.objectList = updateDrawData.objectList.map((obj) => {\n return scaleObject(obj, preSize, curSize);\n });\n\n if (updateDrawData.creatingObject) {\n updateDrawData.creatingObject = scaleObject(\n updateDrawData.creatingObject,\n preSize,\n curSize,\n );\n if (updateDrawData.creatingObject.startPoint) {\n updateDrawData.creatingObject.startPoint = translatePointZoom(\n updateDrawData.creatingObject.startPoint,\n preSize,\n curSize,\n );\n }\n if (updateDrawData.creatingObject.maskStep) {\n const newPoints = updateDrawData.creatingObject.maskStep.points.map(\n (point) => {\n return translatePointZoom(point, preSize, curSize);\n },\n );\n updateDrawData.creatingObject = {\n ...updateDrawData.creatingObject,\n maskStep: {\n ...updateDrawData.creatingObject.maskStep,\n points: newPoints,\n },\n };\n }\n if (updateDrawData.creatingObject.tempMaskSteps) {\n const newSteps = updateDrawData.creatingObject.tempMaskSteps.map(\n (step) => {\n return {\n ...step,\n points: step.points.map((point) =>\n translatePointZoom(point, preSize, curSize),\n ),\n };\n },\n );\n updateDrawData.creatingObject = {\n ...updateDrawData.creatingObject,\n tempMaskSteps: newSteps,\n };\n }\n }\n\n if (updateDrawData.prompt.creatingPrompt) {\n updateDrawData.prompt.creatingPrompt = scalePromptItem(\n updateDrawData.prompt.creatingPrompt,\n preSize,\n curSize,\n );\n }\n\n if (updateDrawData.prompt.promptsQueue) {\n updateDrawData.prompt.promptsQueue =\n updateDrawData.prompt.promptsQueue?.map((item) => {\n return scalePromptItem(item, preSize, curSize);\n });\n }\n\n if (updateDrawData.prompt.activeRectWhileLoading) {\n updateDrawData.prompt.activeRectWhileLoading = translateRectZoom(\n updateDrawData.prompt.activeRectWhileLoading,\n preSize,\n curSize,\n );\n }\n\n return updateDrawData;\n};\n\nexport const convertFrameObjectsIntoFramesObjects = (\n currFrameObjects: IAnnotationObject[],\n framesObjects: IAnnotationObject[][],\n frameCount: number,\n activeIndex: number,\n naturalSize: ISize,\n) => {\n const tempObjects = [...framesObjects];\n currFrameObjects\n .filter((obj) => obj?.status === EObjectStatus.Commited)\n .forEach((item, objectIdx) => {\n const objectframes =\n tempObjects[objectIdx] || new Array(frameCount).fill(undefined);\n tempObjects[objectIdx] = objectframes.map((obj, frameIdx) => {\n if (frameIdx === activeIndex) {\n return item;\n }\n const frameEmpty = obj?.frameEmpty || Boolean(!obj);\n let resultObject = obj;\n if (\n frameIdx > activeIndex &&\n isEqual(\n omitBy(obj, isUndefined),\n omitBy(objectframes[activeIndex], isUndefined),\n )\n ) {\n // [active frame, later changed frame] -> same change\n resultObject = item;\n } else if (\n !frameEmpty &&\n item.type === EObjectType.Mask &&\n resultObject.maskRle &&\n item.labelId !== obj.labelId\n ) {\n // mask label changed => re compute maskCanvas\n resultObject.maskCanvasElement = rleToCanvas(\n resultObject.maskRle,\n naturalSize,\n item.color,\n );\n }\n return {\n ...resultObject,\n type: item.type,\n labelId: item.labelId,\n hidden: item.hidden,\n color: item.color,\n customStyles: item.customStyles,\n attributes: item.attributes,\n status: item.status,\n frameEmpty,\n };\n });\n });\n return tempObjects;\n};\n\nexport const updateDrawDataFrameCreateObject = (newDrawData: DrawData) => {\n // TODO: creating object should reset alone\n if (\n newDrawData.activeObjectIndex >= 0 &&\n newDrawData.objectList?.[newDrawData.activeObjectIndex] &&\n !newDrawData.objectList?.[newDrawData.activeObjectIndex].frameEmpty\n ) {\n newDrawData.creatingObject = {\n ...newDrawData.creatingObject,\n ...newDrawData.objectList?.[newDrawData.activeObjectIndex],\n };\n return;\n }\n newDrawData.prompt = {};\n newDrawData.creatingObject = undefined;\n};\n\nexport const getVisibleAreaForImage = (\n imagePos: IPoint,\n clientSize: ISize,\n containerMouse: CursorState,\n) => {\n const { x: imageX, y: imageY } = imagePos;\n const { width: imageWidth, height: imageHeight } = clientSize;\n const { elementW: containerWidth, elementH: containerHeight } =\n containerMouse;\n\n if (\n imageX > containerWidth ||\n imageY > containerHeight ||\n imageX + imageWidth <= 0 ||\n imageY + imageHeight <= 0\n ) {\n return {\n xmin: 0,\n ymin: 0,\n xmax: 0,\n ymax: 0,\n };\n }\n\n const leftTopPoint = {\n x: Math.max(0, imageX),\n y: Math.max(0, imageY),\n };\n const rightBottonPoint = {\n x: Math.min(imageX + imageWidth, containerWidth),\n y: Math.min(imageY + imageHeight, containerHeight),\n };\n\n const newCoordOrigin = {\n x: imagePos.x,\n y: imagePos.y,\n };\n const { x: xmin, y: ymin } = translatePointCoord(\n leftTopPoint,\n newCoordOrigin,\n );\n const { x: xmax, y: ymax } = translatePointCoord(\n rightBottonPoint,\n newCoordOrigin,\n );\n\n return {\n xmin,\n ymin,\n xmax,\n ymax,\n };\n};\n\nexport const getMaskInfoByCanvas = (\n canvas: HTMLCanvasElement,\n): {\n area: number;\n bbox: IBoundingBox;\n} => {\n const ctx = canvas.getContext('2d', { willReadFrequently: true });\n\n const imageData = ctx!.getImageData(0, 0, canvas.width, canvas.height);\n const data = imageData.data;\n const width = imageData.width;\n const height = imageData.height;\n\n let xmin = width;\n let ymin = height;\n let xmax = 0;\n let ymax = 0;\n let area = 0;\n\n for (let i = 0; i < data.length; i += 4) {\n const alpha = data[i + 3];\n if (alpha > 0) {\n const x = (i / 4) % width;\n const y = Math.floor(i / 4 / width);\n area++;\n xmin = Math.min(xmin, x);\n ymin = Math.min(ymin, y);\n xmax = Math.max(xmax, x);\n ymax = Math.max(ymax, y);\n }\n }\n\n const bbox = { xmin, ymin, xmax, ymax };\n\n return {\n area,\n bbox,\n };\n};\n\nexport const translateUVtoPolylinePoints = (\n uv: [number[], number[]],\n): IPolyline => {\n if (!uv || uv.length < 2 || uv[0]?.length !== uv[1]?.length) {\n return [];\n }\n\n const [xCoords, yCoords] = uv;\n const polyline: IPolyline = [];\n\n for (let i = 0; i < xCoords.length; i++) {\n polyline.push({\n x: xCoords[i],\n y: yCoords[i],\n });\n }\n\n return polyline;\n};\n\nexport const convertLaneLineColorToHex = (lineColor: string): string => {\n if (lineColor === 'yellow') {\n return LINE_COLOR.Yellow;\n } else if (lineColor === 'white') {\n return LINE_COLOR.White;\n } else {\n return LINE_COLOR.Other;\n }\n};\n","import { LINE_STYLE_MAP } from '../constants/render';\nimport { LineType } from '../type';\n\nimport { hexToRgba } from './color';\n\nfunction deg2rad(angleDeg: number) {\n return (angleDeg * Math.PI) / 180;\n}\n\nexport function clearCanvas(canvas: HTMLCanvasElement): void {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n}\n\nexport function resizeSmoothCanvas(\n canvas: HTMLCanvasElement,\n clientSize: ISize,\n): void {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n if (window.devicePixelRatio) {\n canvas.style.width = clientSize.width + 'px';\n canvas.style.height = clientSize.height + 'px';\n canvas.height = clientSize.height * window.devicePixelRatio;\n canvas.width = clientSize.width * window.devicePixelRatio;\n ctx.scale(window.devicePixelRatio, window.devicePixelRatio);\n }\n}\n\nexport function setCanvasGlobalAlpha(\n canvas: HTMLCanvasElement,\n alpha: number,\n): void {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.globalAlpha = alpha;\n}\n\nexport function drawImage(\n canvas: HTMLCanvasElement,\n image: HTMLImageElement | HTMLCanvasElement,\n imageRect: IRect,\n) {\n if (!!image && !!canvas) {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n try {\n ctx.drawImage(\n image,\n imageRect.x,\n imageRect.y,\n imageRect.width,\n imageRect.height,\n );\n } catch (error) {\n console.error('Load image error:', error);\n }\n }\n}\n\nexport function addFilter(\n canvas: HTMLCanvasElement,\n brightness: number,\n contrast: number,\n saturate: number,\n) {\n if (!!canvas) {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.filter =\n 'brightness(' +\n brightness +\n '%) contrast(' +\n contrast +\n '%) saturate(' +\n saturate +\n '%)';\n }\n}\n\nexport function removeFilter(canvas: HTMLCanvasElement) {\n if (!!canvas) {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.filter = 'none';\n }\n}\n\nexport function putImageData(\n canvas: HTMLCanvasElement,\n imageData: ImageData,\n imageRect: IRect,\n) {\n if (!!imageData && !!canvas) {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.putImageData(\n imageData,\n 0,\n 0,\n imageRect.x,\n imageRect.y,\n imageRect.width,\n imageRect.height,\n );\n }\n}\n\nexport function drawLine(\n canvas: HTMLCanvasElement,\n startPoint: IPoint,\n endPoint: IPoint,\n color = '#111111',\n thickness = 1,\n lineDash?: number[],\n): void {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = thickness;\n ctx.lineCap = 'round';\n ctx.beginPath();\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n ctx.moveTo(startPoint.x, startPoint.y);\n ctx.lineTo(endPoint.x + 1, endPoint.y + 1);\n ctx.stroke();\n ctx.restore();\n}\n\nexport function drawPath(\n canvas: HTMLCanvasElement,\n points: IPoint[],\n color = '#111111',\n thickness = 1,\n lineDash?: number[],\n): void {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = thickness;\n ctx.lineCap = 'round';\n ctx.lineJoin = 'round';\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n ctx.beginPath();\n ctx.moveTo(points[0].x, points[0].y);\n for (let i = 1, len = points.length; i < len; i++) {\n ctx.lineTo(points[i].x, points[i].y);\n }\n ctx.stroke();\n ctx.restore();\n}\n\nconst midPointBtw = (p1: any, p2: any) => {\n return {\n x: p1.x + (p2.x - p1.x) / 2,\n y: p1.y + (p2.y - p1.y) / 2,\n };\n};\n\nexport function drawQuadraticPath(\n canvas: HTMLCanvasElement,\n points: IPoint[],\n color = '#111111',\n thickness = 20,\n lineDash?: number[],\n): void {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = thickness;\n ctx.lineCap = 'round';\n ctx.lineJoin = 'round';\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n\n ctx.beginPath();\n\n let p1 = points[0];\n let p2 = points[1];\n\n ctx.moveTo(p1.x, p1.y);\n\n for (let i = 1, len = points.length; i < len; i++) {\n let midPoint = midPointBtw(p1, p2);\n ctx.quadraticCurveTo(p1.x, p1.y, midPoint.x, midPoint.y);\n p1 = points[i];\n p2 = points[i + 1];\n }\n ctx.lineTo(p1.x, p1.y);\n ctx.stroke();\n ctx.restore();\n}\n\nexport function drawRect(\n canvas: HTMLCanvasElement | null,\n rect: IRect,\n color = '#fff',\n thickness = 1,\n lineDash?: number[],\n fillColor?: string,\n): void {\n if (!canvas) return;\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = thickness;\n ctx.beginPath();\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n ctx.rect(rect.x, rect.y, rect.width, rect.height);\n ctx.stroke();\n if (fillColor) {\n ctx.fillStyle = fillColor;\n ctx.fill();\n }\n ctx.restore();\n}\n\nexport function drawRectWithFill(\n canvas: HTMLCanvasElement | null,\n rect: IRect,\n color = '#fff',\n): void {\n if (!canvas) return;\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n ctx.fillStyle = color;\n ctx.beginPath();\n ctx.rect(rect.x, rect.y, rect.width, rect.height);\n ctx.fill();\n ctx.restore();\n}\n\nexport function shadeEverythingButRect(\n canvas: HTMLCanvasElement,\n rect: IRect,\n color = '#000',\n alpha = 0.5,\n): void {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n ctx.fillStyle = color;\n ctx.globalAlpha = alpha;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.globalCompositeOperation = 'destination-out';\n ctx.globalAlpha = 1;\n ctx.fillRect(rect.x, rect.y, rect.width, rect.height);\n ctx.restore();\n}\n\nexport function drawPolygon(\n canvas: HTMLCanvasElement | null,\n offset: IPoint = { x: 0, y: 0 },\n anchors: IPoint[],\n color = '#fff',\n thickness = 1,\n): void {\n if (!canvas) return;\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = thickness;\n ctx.beginPath();\n const { x: offsetX, y: offsetY } = offset;\n ctx.moveTo(anchors[0].x + offsetX, anchors[0].y + offsetY);\n for (let i = 1; i < anchors.length; i++) {\n ctx.lineTo(anchors[i].x + offsetX, anchors[i].y + offsetX);\n }\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\n\n// function calculateOffsetPoints(\n// anchors: IPoint[],\n// offset: IPoint,\n// ): [IPoint[], IPoint[]] {\n// const calculateOffset = (point: IPoint, angle: number, side: number) => ({\n// x: point.x + side * offset.x * Math.cos(angle),\n// y: point.y + side * offset.y * Math.sin(angle),\n// });\n\n// let leftOffsetPoints: IPoint[] = [];\n// let rightOffsetPoints: IPoint[] = [];\n\n// for (let i = 0; i < anchors.length - 1; i++) {\n// const angle =\n// Math.atan2(\n// anchors[i + 1].y - anchors[i].y,\n// anchors[i + 1].x - anchors[i].x,\n// ) +\n// Math.PI / 2;\n// leftOffsetPoints.push(calculateOffset(anchors[i], angle, 1));\n// rightOffsetPoints.push(calculateOffset(anchors[i], angle, -1));\n// }\n\n// // 处理最后一个点\n// const lastAngle =\n// Math.atan2(\n// anchors[anchors.length - 1].y - anchors[anchors.length - 2].y,\n// anchors[anchors.length - 1].x - anchors[anchors.length - 2].x,\n// ) +\n// Math.PI / 2;\n// leftOffsetPoints.push(\n// calculateOffset(anchors[anchors.length - 1], lastAngle, 1),\n// );\n// rightOffsetPoints.push(\n// calculateOffset(anchors[anchors.length - 1], lastAngle, -1),\n// );\n\n// return [leftOffsetPoints, rightOffsetPoints];\n// }\n\nexport function drawPolyline(\n canvas: HTMLCanvasElement | null,\n offset: IPoint = { x: 0, y: 0 },\n anchors: IPoint[],\n color = '#fff',\n thickness = 1,\n lineDash?: number[],\n): void {\n if (!canvas) return;\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n\n ctx.strokeStyle = color;\n ctx.lineWidth = thickness;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n\n ctx.beginPath();\n const { x: offsetX, y: offsetY } = offset;\n ctx.moveTo(anchors[0].x + offsetX, anchors[0].y + offsetY);\n for (let i = 1; i < anchors.length; i++) {\n ctx.lineTo(anchors[i].x + offsetX, anchors[i].y + offsetX);\n }\n ctx.stroke();\n ctx.restore();\n}\n\n// function drawOffsetDoubleLine(\n// canvas: HTMLCanvasElement | null,\n// offset: IPoint = { x: 0, y: 0 },\n// anchors: IPoint[],\n// color: string = '#fff',\n// thickness: number = 1,\n// lineDash: [number[], number[]] = [[], []],\n// ): void {\n// if (!canvas || anchors.length < 2) return;\n// const [leftOffsetPoints, rightOffsetPoints] = calculateOffsetPoints(\n// anchors,\n// offset,\n// );\n// const [leftLineDash, rightLineDash] = lineDash;\n\n// drawPolyline(\n// canvas,\n// { x: 0, y: 0 },\n// leftOffsetPoints,\n// color,\n// thickness,\n// leftLineDash,\n// );\n// drawPolyline(\n// canvas,\n// { x: 0, y: 0 },\n// rightOffsetPoints,\n// color,\n// thickness,\n// rightLineDash,\n// );\n// }\n\nexport function drawPolylineByType(\n canvas: HTMLCanvasElement | null,\n anchors: IPoint[],\n color: string,\n lineType: LineType,\n): void {\n if (!LINE_STYLE_MAP[lineType]) return;\n const { lineDash, thickness } = LINE_STYLE_MAP[lineType];\n drawPolyline(canvas, { x: 0, y: 0 }, anchors, color, thickness, lineDash);\n}\n\nexport function drawPolygonWithFill(\n canvas: HTMLCanvasElement | null,\n anchors: IPoint[],\n fillColor = '#fff',\n strokeColor = '#fff',\n thickness = 1,\n lineDash?: number[],\n): void {\n if (!canvas) return;\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n ctx.fillStyle = fillColor;\n ctx.strokeStyle = strokeColor;\n ctx.lineWidth = thickness;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n ctx.beginPath();\n ctx.moveTo(anchors[0].x, anchors[0].y);\n for (let i = 1; i < anchors.length; i++) {\n ctx.lineTo(anchors[i].x, anchors[i].y);\n }\n ctx.closePath();\n if (thickness > 0) {\n ctx.stroke();\n }\n ctx.fill();\n ctx.restore();\n}\n\nexport function drawText(\n canvas: HTMLCanvasElement,\n text: string,\n textSize: number,\n anchorPoint: IPoint,\n color = '#ffffff',\n bold = false,\n align = 'center',\n): void {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n ctx.fillStyle = color;\n ctx.textAlign = align as CanvasTextAlign;\n ctx.textBaseline = 'top';\n ctx.font = (bold ? 'bold ' : '') + textSize + 'px Arial';\n ctx.fillText(text, anchorPoint.x, anchorPoint.y);\n ctx.restore();\n}\n\nexport function drawCircleWithFill(\n canvas: HTMLCanvasElement,\n anchorPoint: IPoint,\n radius: number,\n color = '#ffffff',\n strokeWidth: number,\n strokeColor = '#000',\n): void {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n const startAngleRad = deg2rad(0);\n const endAngleRad = deg2rad(360);\n ctx.lineWidth = strokeWidth || 0;\n ctx.strokeStyle = strokeColor;\n ctx.fillStyle = color;\n ctx.beginPath();\n ctx.arc(\n anchorPoint.x,\n anchorPoint.y,\n radius,\n startAngleRad,\n endAngleRad,\n false,\n );\n ctx.stroke();\n ctx.fill();\n ctx.restore();\n}\n\nexport function drawCircle(\n canvas: HTMLCanvasElement,\n anchorPoint: IPoint,\n radius: number,\n startAngleDeg: number,\n endAngleDeg: number,\n thickness = 20,\n color = '#ffffff',\n): void {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n const startAngleRad = deg2rad(startAngleDeg);\n const endAngleRad = deg2rad(endAngleDeg);\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = thickness;\n ctx.beginPath();\n ctx.arc(\n anchorPoint.x,\n anchorPoint.y,\n radius,\n startAngleRad,\n endAngleRad,\n false,\n );\n ctx.stroke();\n ctx.restore();\n}\n\nexport function drawBooleanPolygon(\n canvas: HTMLCanvasElement,\n anchors: IPoint[],\n addPolygon = true,\n fillColor = '#fff',\n strokeColor = '#fff',\n thickness = 1,\n lineDash?: number[],\n) {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n ctx.fillStyle = fillColor;\n ctx.strokeStyle = strokeColor;\n ctx.lineWidth = thickness;\n ctx.lineCap = 'round';\n ctx.lineJoin = 'round';\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n ctx.beginPath();\n ctx.moveTo(anchors[0].x, anchors[0].y);\n for (let i = 1; i < anchors.length; i++) {\n ctx.lineTo(anchors[i].x, anchors[i].y);\n }\n ctx.closePath();\n ctx.clip();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n if (addPolygon) {\n if (thickness > 0) {\n ctx.stroke();\n }\n ctx.fill();\n }\n ctx.restore();\n}\n\nexport function drawBooleanBrush(\n canvas: HTMLCanvasElement,\n points: IPoint[],\n addBrush = true,\n color = '#111111',\n alpha = 1,\n thickness = 20,\n lineDash?: number[],\n): void {\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = thickness;\n ctx.lineCap = 'round';\n ctx.lineJoin = 'round';\n ctx.beginPath();\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n\n let p1 = points[0];\n let p2 = points[1];\n\n ctx.moveTo(p1.x, p1.y);\n\n for (let i = 1, len = points.length; i < len; i++) {\n let midPoint = midPointBtw(p1, p2);\n ctx.quadraticCurveTo(p1.x, p1.y, midPoint.x, midPoint.y);\n p1 = points[i];\n p2 = points[i + 1];\n }\n ctx.lineTo(p1.x, p1.y);\n\n if (addBrush) {\n if (thickness > 0) {\n // remove overlap area firstly to avoid color blending\n ctx.globalCompositeOperation = 'destination-out';\n ctx.strokeStyle = color;\n ctx.stroke();\n // draw new stroke path\n ctx.strokeStyle = hexToRgba(color, alpha);\n ctx.globalCompositeOperation = 'source-over';\n ctx.stroke();\n }\n } else {\n ctx.globalCompositeOperation = 'destination-out';\n ctx.stroke();\n }\n ctx.restore();\n}\n","// This icon file is generated automatically.\nvar ClearOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6a25.95 25.95 0 0025.6 30.4h723c1.5 0 3-.1 4.4-.4a25.88 25.88 0 0021.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z\" } }] }, \"name\": \"clear\", \"theme\": \"outlined\" };\nexport default ClearOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ClearOutlinedSvg from \"@ant-design/icons-svg/es/asn/ClearOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ClearOutlined = function ClearOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ClearOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n ClearOutlined.displayName = 'ClearOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(ClearOutlined);","import { ClearOutlined } from '@ant-design/icons';\nimport { Button, Select } from 'antd';\nimport { globalLocaleText } from 'dds-utils/locale';\n\nimport { Category } from '@/Annotator/type';\n\nimport './index.less';\n\ninterface IProps {\n categories: Category[];\n filterCategoryName: string | null;\n onSelectFilter: (name: string) => void;\n onClearFilter: () => void;\n}\n\nconst ImageFilter: React.FC = ({\n categories,\n filterCategoryName,\n onSelectFilter,\n onClearFilter,\n}) => {\n return (\n
\n
{globalLocaleText('quicklabel.imageFilter')}
\n event.stopPropagation()}\n onKeyUp={(event) => event.stopPropagation()}\n onInputKeyDown={(event) => {\n if (event.code !== 'Enter') {\n event.stopPropagation();\n }\n }}\n dropdownRender={(menu) => (\n <>\n {menu}\n {\n }\n onClick={onClearFilter}\n >\n {globalLocaleText('quicklabel.clearFilter')}\n \n }\n \n )}\n >\n {categories?.map((category) => (\n \n {category.name}\n \n ))}\n \n
\n );\n};\n\nexport default ImageFilter;\n","import VirtualList from 'rc-virtual-list';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { QsAnnotatorFile } from '../../type';\n\nimport './index.less';\n\ninterface IProps {\n images: QsAnnotatorFile[];\n selected: number;\n onImageSelected: (index: number) => void;\n}\n\nexport const ImageList: React.FC = ({\n images,\n selected,\n onImageSelected,\n}: IProps) => {\n const [containerHeight, setContainerHeight] = useState(0);\n const itemHeight = 120;\n\n const handleResize = useCallback(() => {\n const container = document.getElementById('image-options-container');\n if (container) {\n const height = container.offsetHeight || 0;\n setContainerHeight(height - 56);\n }\n }, []);\n\n useEffect(() => {\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [handleResize]);\n\n const handleImageSelect = (index: number) => {\n if (index < 0 || index >= images.length) return;\n onImageSelected(index);\n };\n\n return (\n
\n \n {(item, index) => {\n const selectedClassName =\n index === selected\n ? 'dds-quicklabel-options-list-image-selected'\n : '';\n return (\n
\n handleImageSelect(index)}\n />\n
\n );\n }}\n \n
\n );\n};\n","// This icon file is generated automatically.\nvar UploadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"upload\", \"theme\": \"outlined\" };\nexport default UploadOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UploadOutlinedSvg from \"@ant-design/icons-svg/es/asn/UploadOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UploadOutlined = function UploadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UploadOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n UploadOutlined.displayName = 'UploadOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(UploadOutlined);","import useLatest from '../useLatest';\nimport { getTargetElement } from '../utils/domTarget';\nimport useEffectWithTarget from '../utils/useEffectWithTarget';\nimport { useRef } from 'react';\nvar useDrop = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n var optionsRef = useLatest(options);\n // https://stackoverflow.com/a/26459269\n var dragEnterTarget = useRef();\n useEffectWithTarget(function () {\n var targetElement = getTargetElement(target);\n if (!(targetElement === null || targetElement === void 0 ? void 0 : targetElement.addEventListener)) {\n return;\n }\n var onData = function (dataTransfer, event) {\n var uri = dataTransfer.getData('text/uri-list');\n var dom = dataTransfer.getData('custom');\n if (dom && optionsRef.current.onDom) {\n var data = dom;\n try {\n data = JSON.parse(dom);\n } catch (e) {\n data = dom;\n }\n optionsRef.current.onDom(data, event);\n return;\n }\n if (uri && optionsRef.current.onUri) {\n optionsRef.current.onUri(uri, event);\n return;\n }\n if (dataTransfer.files && dataTransfer.files.length && optionsRef.current.onFiles) {\n optionsRef.current.onFiles(Array.from(dataTransfer.files), event);\n return;\n }\n if (dataTransfer.items && dataTransfer.items.length && optionsRef.current.onText) {\n dataTransfer.items[0].getAsString(function (text) {\n optionsRef.current.onText(text, event);\n });\n }\n };\n var onDragEnter = function (event) {\n var _a, _b;\n event.preventDefault();\n event.stopPropagation();\n dragEnterTarget.current = event.target;\n (_b = (_a = optionsRef.current).onDragEnter) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n };\n var onDragOver = function (event) {\n var _a, _b;\n event.preventDefault();\n (_b = (_a = optionsRef.current).onDragOver) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n };\n var onDragLeave = function (event) {\n var _a, _b;\n if (event.target === dragEnterTarget.current) {\n (_b = (_a = optionsRef.current).onDragLeave) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n }\n };\n var onDrop = function (event) {\n var _a, _b;\n event.preventDefault();\n onData(event.dataTransfer, event);\n (_b = (_a = optionsRef.current).onDrop) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n };\n var onPaste = function (event) {\n var _a, _b;\n onData(event.clipboardData, event);\n (_b = (_a = optionsRef.current).onPaste) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n };\n targetElement.addEventListener('dragenter', onDragEnter);\n targetElement.addEventListener('dragover', onDragOver);\n targetElement.addEventListener('dragleave', onDragLeave);\n targetElement.addEventListener('drop', onDrop);\n targetElement.addEventListener('paste', onPaste);\n return function () {\n targetElement.removeEventListener('dragenter', onDragEnter);\n targetElement.removeEventListener('dragover', onDragOver);\n targetElement.removeEventListener('dragleave', onDragLeave);\n targetElement.removeEventListener('drop', onDrop);\n targetElement.removeEventListener('paste', onPaste);\n };\n }, [], target);\n};\nexport default useDrop;","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgUpload = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 91 75\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M60.633.007C49.453-.22 37.923 6.255 34.76 20.864c-12.874-4.444-24.497 4.32-23.29 18.315C4.735 41.932 0 48.587 0 56.409 0 66.709 8.199 75 18.383 75h22.33c-.005-6.26-.018-18.818-.018-21.197l-5.237 1.919c-3.8 1.656-6.605-3.183-3.352-6.195l9.909-9.739c2.263-2.288 4.966-2.026 6.97 0l9.909 9.739c3.253 3.012.447 7.85-3.352 6.195l-5.237-1.92V75h22.312C82.801 75 91 66.708 91 56.41c0-7.58-4.45-14.06-10.855-16.96C92.558 14.977 76.972.336 60.633.006Z\", fill: \"#B9CEFF\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M60.633.004c-.623-.013-1.306.009-1.93.037-14.278 22.757 7.788 39.403 21.442 39.403C92.558 14.974 76.972.334 60.633.004Z\", fill: \"#739EFF\" }));\nexport { SvgUpload as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgOTEgNzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYwLjYzMy4wMDdDNDkuNDUzLS4yMiAzNy45MjMgNi4yNTUgMzQuNzYgMjAuODY0Yy0xMi44NzQtNC40NDQtMjQuNDk3IDQuMzItMjMuMjkgMTguMzE1QzQuNzM1IDQxLjkzMiAwIDQ4LjU4NyAwIDU2LjQwOSAwIDY2LjcwOSA4LjE5OSA3NSAxOC4zODMgNzVoMjIuMzNjLS4wMDUtNi4yNi0uMDE4LTE4LjgxOC0uMDE4LTIxLjE5N2wtNS4yMzcgMS45MTljLTMuOCAxLjY1Ni02LjYwNS0zLjE4My0zLjM1Mi02LjE5NWw5LjkwOS05LjczOWMyLjI2My0yLjI4OCA0Ljk2Ni0yLjAyNiA2Ljk3IDBsOS45MDkgOS43MzljMy4yNTMgMy4wMTIuNDQ3IDcuODUtMy4zNTIgNi4xOTVsLTUuMjM3LTEuOTJWNzVoMjIuMzEyQzgyLjgwMSA3NSA5MSA2Ni43MDggOTEgNTYuNDFjMC03LjU4LTQuNDUtMTQuMDYtMTAuODU1LTE2Ljk2QzkyLjU1OCAxNC45NzcgNzYuOTcyLjMzNiA2MC42MzMuMDA2WiIgZmlsbD0iI0I5Q0VGRiIvPjxwYXRoIGQ9Ik02MC42MzMuMDA0Yy0uNjIzLS4wMTMtMS4zMDYuMDA5LTEuOTMuMDM3LTE0LjI3OCAyMi43NTcgNy43ODggMzkuNDAzIDIxLjQ0MiAzOS40MDNDOTIuNTU4IDE0Ljk3NCA3Ni45NzIuMzM0IDYwLjYzMy4wMDRaIiBmaWxsPSIjNzM5RUZGIi8+PC9zdmc+\";\n","import { useMemo, useRef } from 'react';\nimport VirtualList from 'rc-virtual-list';\nimport { Button } from 'antd';\nimport { DeleteOutlined } from '@ant-design/icons';\nimport { chunk } from 'lodash';\nimport { useSize } from 'ahooks';\nimport { UploadFile } from '../..';\nimport classNames from 'classnames';\nimport './index.less';\n\ninterface IProps {\n files: UploadFile[];\n fileType: 'image' | 'video';\n onRemoveFile: (index: number) => void;\n}\n\nconst FilePreviewList: React.FC = ({\n files,\n fileType,\n onRemoveFile,\n}) => {\n const containerRef = useRef(null);\n const containerSize = useSize(containerRef);\n const colume = containerSize?.width && containerSize.width > 800 ? 8 : 5;\n\n /** Group files by colume count */\n const imageGroups = useMemo(() => {\n return chunk(files, colume).map((item, index) => ({\n index,\n rowImages: item,\n }));\n }, [files, colume]);\n\n /** Calculate ItemSize & ImageSize */\n const itemSpace = 8;\n const rowPadding = 18;\n const imageAspectRatio = 0.75;\n const imageWidthRatio = 0.95;\n const imageNameHeight = 30;\n\n const itemWidth = useMemo(() => {\n return containerSize?.width\n ? (containerSize?.width - rowPadding * 2 - (colume - 1) * itemSpace) /\n colume\n : 0;\n }, [containerSize?.width, colume, itemSpace]);\n\n const imageWidth = useMemo(() => {\n return itemWidth * imageWidthRatio;\n }, [itemWidth, imageWidthRatio]);\n\n const imageHeight = useMemo(() => {\n return imageWidth * imageAspectRatio;\n }, [imageWidth, imageAspectRatio]);\n\n const itemHeight = useMemo(() => {\n return imageHeight + imageNameHeight + 16;\n }, [imageHeight, imageNameHeight]);\n\n return (\n
\n \n {(row, rowIdx) => {\n return (\n \n {row.rowImages.map((item, colIdx) => (\n \n {fileType === 'video' ? (\n \n ) : (\n \n )}\n
\n }\n shape={'circle'}\n danger\n onClick={(event) => {\n event.stopPropagation();\n onRemoveFile(rowIdx * colume + colIdx);\n }}\n />\n
\n
{item.name}
\n
\n ))}\n \n );\n }}\n \n \n );\n};\n\nexport default FilePreviewList;\n","import { useCallback, useRef, useState } from 'react';\nimport { Button, Spin, message } from 'antd';\nimport { useDrop } from 'ahooks';\nimport { cloneDeep } from 'lodash';\nimport { ReactComponent as UploadIcon } from './assets/upload.svg';\nimport { useLocale } from 'dds-utils/locale';\nimport { scanDataTransfer } from 'dds-utils/file';\nimport FilePreviewList from './components/FilePreviewList';\nimport classNames from 'classnames';\nimport './index.less';\n\nexport interface UploadFile {\n id: string;\n name: string;\n url: string;\n status?: 'success' | 'error';\n originFileObj?: File;\n path?: string;\n uploadUrl?: string;\n contentType?: string;\n duration?: number;\n frameCount?: number;\n frameRate?: number;\n targetFrameRate?: number;\n}\n\ninterface IProps {\n fileList: UploadFile[];\n setFileList: React.Dispatch>;\n fileType: 'video' | 'image';\n acceptTypes?: string[];\n maxCount?: number;\n maxSize?: number;\n maxDuratuion?: number;\n limitRemoveFile?: (index: number) => boolean;\n}\n\nconst Upload: React.FC = ({\n fileList,\n setFileList,\n acceptTypes,\n maxCount,\n maxSize,\n maxDuratuion,\n limitRemoveFile,\n fileType,\n}: IProps) => {\n const { localeText } = useLocale();\n const [loading, setLoading] = useState(false);\n const [draging, setDraging] = useState(false);\n const fileCancleRef = useRef(false);\n const inputRef = useRef(null);\n const accept = acceptTypes ? acceptTypes.join(', ') : undefined;\n\n const addFiles = async (files: File[]) => {\n setLoading(true);\n const newFiles: UploadFile[] = [];\n for (let file of files) {\n let [frameCount, frameRate, duration] = [0, 0, 0];\n if (maxSize && file.size && file.size / 1024 / 1024 > maxSize) {\n continue;\n }\n if (maxCount && newFiles.length + fileList.length > maxCount - 1) {\n continue;\n }\n if (fileList.find((item) => item.name === file.name)) {\n continue;\n }\n newFiles.push({\n id: file.name,\n name: file.name,\n url: URL.createObjectURL(file as Blob),\n originFileObj: file,\n frameCount,\n frameRate,\n duration,\n });\n }\n setLoading(false);\n if (newFiles.length > 0) {\n setFileList([...newFiles, ...fileList]);\n message.success(\n localeText('dds-upload.tip.successLoad', {\n count: newFiles.length,\n }),\n );\n }\n };\n\n const onRemoveFile = useCallback(\n (index: number) => {\n if (limitRemoveFile && limitRemoveFile(index)) return;\n const newList = cloneDeep(fileList);\n newList.splice(index, 1);\n setFileList(newList);\n },\n [fileList],\n );\n\n const handleUploadChange = (e: React.ChangeEvent) => {\n fileCancleRef.current = false;\n\n const files: File[] = e.target.files ? [...e.target.files] : [];\n if (files.length > 0) {\n addFiles(files);\n }\n\n setDraging(false);\n e.target.value = '';\n };\n\n const onClickUpload = useCallback(() => {\n if (maxCount && fileList.length >= maxCount) {\n message.warning(\n localeText('dds-upload.tip.fileCountLimitMsg', {\n count: maxCount,\n }),\n );\n return;\n }\n setDraging(true);\n inputRef.current?.click();\n\n // mock click file cancel\n fileCancleRef.current = true;\n window.addEventListener(\n 'focus',\n () => {\n setTimeout(() => {\n if (fileCancleRef.current) {\n setDraging(false);\n }\n }, 100);\n },\n { once: true },\n );\n }, [fileList, maxCount]);\n\n useDrop(window.document.body, {\n onFiles: async (_files, e) => {\n if (maxCount && fileList.length >= maxCount) {\n message.warning(\n localeText('dds-upload.tip.fileCountLimitMsg', {\n count: maxCount,\n }),\n );\n return;\n }\n const files = await scanDataTransfer(e?.dataTransfer, acceptTypes);\n addFiles(files);\n },\n onDragEnter: () => {\n setDraging(true);\n },\n onDrop: () => {\n setDraging(false);\n },\n onDragLeave: () => {\n setDraging(false);\n },\n });\n\n return (\n
\n \n {fileList.length <= 0 ? (\n \n \n

{localeText('dds-upload.title')}

\n

\n {fileType === 'video'\n ? localeText('dds-upload.limit.type.video')\n : localeText('dds-upload.limit.type.image')}\n

\n
\n ) : (\n \n
\n
\n
\n {localeText('dds-upload.title')}\n
\n
\n {fileType === 'video'\n ? localeText('dds-upload.limit.type.video')\n : localeText('dds-upload.limit.type.image')}\n
\n
\n \n
\n
\n {maxCount && (\n
\n {fileList.length} / {maxCount}\n
\n )}\n \n
\n \n )}\n {loading && (\n \n )}\n \n );\n};\n\nexport default Upload;\n","import { UploadOutlined } from '@ant-design/icons';\nimport { Alert, Button, Modal, UploadFile as AntdUploadFile } from 'antd';\nimport { UploadChangeParam } from 'antd/es/upload';\nimport { UploadPreAnno } from 'dds-components';\nimport Upload, { UploadFile } from 'dds-components/Upload';\nimport { globalLocaleText } from 'dds-utils/locale';\n\nimport './index.less';\n\nconst MAX_COUNT = 1000;\nconst MAX_SIZE = 10;\n\ninterface IProps {\n open: boolean;\n isInit: boolean;\n fileList: UploadFile[];\n setFileList: React.Dispatch>;\n onClickOk: () => void;\n onClickCancel: () => void;\n limitRemoveFile?: (index: number) => boolean;\n limitClose?: boolean;\n okText?: string;\n uploadPreAnnot: AntdUploadFile[];\n onChangePreAnnotFile: (info: UploadChangeParam>) => void;\n onRemovePreAnnotFile: (file: AntdUploadFile) => void;\n}\n\nconst QuickstartModal: React.FC = ({\n open,\n isInit,\n fileList,\n setFileList,\n onClickOk,\n onClickCancel,\n limitRemoveFile,\n okText,\n limitClose,\n uploadPreAnnot,\n onChangePreAnnotFile,\n onRemovePreAnnotFile,\n}: IProps) => {\n return (\n e.stopPropagation()}\n onMouseUp={(e) => e.stopPropagation()}\n >\n \n \n
\n {globalLocaleText('quicklabel.formModal.importImages')}\n
\n
\n \n
\n \n {isInit && (\n \n }\n className=\"dds-quicklabel-upload-preannot-btn\"\n >\n {globalLocaleText('quicklabel.formModal.importPreAnnots')}\n \n \n )}\n \n \n );\n};\n\nexport default QuickstartModal;\n","import { SettingOutlined } from '@ant-design/icons';\nimport { history } from '@umijs/max';\nimport { useKeyPress } from 'ahooks';\nimport { Button } from 'antd';\nimport {\n AnnotateEditor,\n BaseObject,\n EditorMode,\n} from 'dds-components/Annotator';\nimport { globalLocaleText } from 'dds-utils/locale';\nimport React, { useEffect } from 'react';\n\nimport ImageFilter from './components/ImageFilter';\nimport { ImageList } from './components/ImageList';\nimport QuickstartModal from './components/QuickstartModal';\nimport { QuickLabelModel } from './hooks/useQuickLabelModel';\n\nimport './index.less';\n\nconst QuickLabel: React.FC = (props) => {\n const {\n images,\n filterImages,\n current,\n categories,\n qsModalVisible,\n uploadFiles,\n uploadPreAnnot,\n filterCategoryName,\n setImages,\n setCurrent,\n setCategories,\n setQsModalVisible,\n setUploadFiles,\n limitRemoveFile,\n onCancelUploadFiles,\n onConfirmUploadFiles,\n exportAnnotations,\n onChangePreAnnotFile,\n onRemovePreAnnotFile,\n onSelectFilterCategory,\n onClearFilterCategory,\n } = props;\n\n useEffect(() => {\n if (images.length <= 0) {\n setQsModalVisible(true);\n }\n }, []);\n\n useKeyPress(\n 'uparrow',\n () => {\n setCurrent(Math.max(0, current - 1));\n },\n { exactMatch: true },\n );\n\n useKeyPress(\n 'downarrow',\n () => {\n setCurrent(Math.min(current + 1, images.length - 1));\n },\n { exactMatch: true },\n );\n\n const onAutoSave = (annos: BaseObject[], naturalSize: ISize) => {\n if (!filterImages[current]) return;\n const originalIndex = filterImages[current].originalIndex;\n setImages((images) => {\n if (images[originalIndex]) {\n images[originalIndex].objects = annos;\n images[originalIndex].width = naturalSize.width;\n images[originalIndex].height = naturalSize.height;\n }\n });\n };\n\n return (\n
\n {\n event.stopPropagation();\n }}\n onMouseUp={(event) => {\n event.stopPropagation();\n }}\n >\n }\n onClick={() => {\n setQsModalVisible(true);\n }}\n >\n {globalLocaleText('quicklabel.setting')}\n \n {\n setCurrent(index);\n }}\n />\n
\n
\n ,\n ]}\n actionElements={[\n ,\n ]}\n onAutoSave={onAutoSave}\n onCancel={() => history.push('/')}\n />\n
\n \n \n );\n};\n\nexport default QuickLabel;\n","import { Spin } from 'antd';\nimport React from 'react';\ninterface IGlobalLoadingProps {\n children: React.ReactNode;\n active: boolean;\n tip?: string;\n}\n\nconst GlobalLoading: React.FC = ({\n children,\n active,\n tip,\n}) => {\n return (\n \n {children}\n
\n );\n};\n\nexport default GlobalLoading;\n","import { Button, Tooltip } from 'antd';\nimport { TooltipPlacement } from 'antd/es/tooltip';\nimport React, { useMemo } from 'react';\nimport './index.less';\n\nexport enum LocaleLang {\n en = 'en-US',\n zh = 'zh-CN',\n}\n\ninterface IProps {\n getLocale: () => LocaleLang;\n setLocale: (targetLocale: LocaleLang) => void;\n tooltipPlacement?: TooltipPlacement;\n theme?: 'light' | 'dark';\n className?: string;\n}\n\nconst LangSelector: React.FC = ({\n getLocale,\n setLocale,\n tooltipPlacement = 'right',\n theme = 'light',\n className,\n}) => {\n const curLocale: LocaleLang = getLocale();\n const changelocaleLang = () => {\n const targetLocale =\n curLocale === LocaleLang.zh ? LocaleLang.en : LocaleLang.zh;\n setLocale(targetLocale);\n };\n\n const [enClassName, zhClassName] = useMemo(() => {\n if (curLocale === LocaleLang.zh) {\n return [`change-lang change-lang-${theme}`, `cur-lang cur-lang-${theme}`];\n } else {\n return [`cur-lang cur-lang-${theme}`, `change-lang change-lang-${theme}`];\n }\n }, [theme, curLocale]);\n return (\n \n \n
\n \n En\n
\n \n \n );\n};\n\nexport default LangSelector;\n","import { Button, Modal, Result } from 'antd';\nimport React from 'react';\n\ninterface IProps {\n error: Error;\n componentStack: string;\n resetError: () => void;\n}\n\nconst RunningErrorTip: React.FC = ({\n error,\n componentStack,\n resetError,\n}) => {\n const showErrorDetail = () => {\n Modal.error({\n title: error.toString(),\n content: (\n
\n

{componentStack}

\n
\n ),\n onOk() {},\n maskClosable: true,\n width: '80vw',\n });\n };\n\n return (\n \n \n Click here to reset\n ,\n ,\n ]}\n />\n \n );\n};\n\nexport default RunningErrorTip;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgSettings = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ width: 24, height: 24, fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M16 4.4c0-.22.18-.4.4-.4h1.2c.22 0 .4.18.4.4V6h3.6c.22 0 .4.18.4.4v1.2a.4.4 0 0 1-.4.4H18v1.6a.4.4 0 0 1-.4.4h-1.2a.4.4 0 0 1-.4-.4V4.4ZM2.4 6a.4.4 0 0 0-.4.4v1.2c0 .22.18.4.4.4h11.2a.4.4 0 0 0 .4-.4V6.4a.4.4 0 0 0-.4-.4H2.4Zm8 10a.4.4 0 0 0-.4.4v1.2c0 .22.18.4.4.4h11.2a.4.4 0 0 0 .4-.4v-1.2a.4.4 0 0 0-.4-.4H10.4Zm-8 0a.4.4 0 0 0-.4.4v1.2c0 .22.18.4.4.4H6v1.6c0 .22.18.4.4.4h1.2a.4.4 0 0 0 .4-.4v-5.2a.4.4 0 0 0-.4-.4H6.4a.4.4 0 0 0-.4.4V16H2.4Z\", fill: \"#434343\" }));\nexport { SvgSettings as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNiA0LjRjMC0uMjIuMTgtLjQuNC0uNGgxLjJjLjIyIDAgLjQuMTguNC40VjZoMy42Yy4yMiAwIC40LjE4LjQuNHYxLjJhLjQuNCAwIDAgMS0uNC40SDE4djEuNmEuNC40IDAgMCAxLS40LjRoLTEuMmEuNC40IDAgMCAxLS40LS40VjQuNFpNMi40IDZhLjQuNCAwIDAgMC0uNC40djEuMmMwIC4yMi4xOC40LjQuNGgxMS4yYS40LjQgMCAwIDAgLjQtLjRWNi40YS40LjQgMCAwIDAtLjQtLjRIMi40Wm04IDEwYS40LjQgMCAwIDAtLjQuNHYxLjJjMCAuMjIuMTguNC40LjRoMTEuMmEuNC40IDAgMCAwIC40LS40di0xLjJhLjQuNCAwIDAgMC0uNC0uNEgxMC40Wm0tOCAwYS40LjQgMCAwIDAtLjQuNHYxLjJjMCAuMjIuMTguNC40LjRINnYxLjZjMCAuMjIuMTguNC40LjRoMS4yYS40LjQgMCAwIDAgLjQtLjR2LTUuMmEuNC40IDAgMCAwLS40LS40SDYuNGEuNC40IDAgMCAwLS40LjRWMTZIMi40WiIgZmlsbD0iIzQzNDM0MyIvPjwvc3ZnPg==\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgPlus = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ width: 16, height: 16, fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.536 1.572H7.464c-.095 0-.143.048-.143.143v5.607h-5.32c-.096 0-.144.048-.144.143v1.072c0 .095.048.142.143.142h5.321v5.608c0 .095.048.142.143.142h1.072c.095 0 .142-.047.142-.142V8.679H14c.095 0 .143-.047.143-.142V7.465c0-.095-.048-.143-.143-.143H8.678V1.715c0-.095-.047-.143-.142-.143Z\", fill: \"#595959\" }));\nexport { SvgPlus as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTguNTM2IDEuNTcySDcuNDY0Yy0uMDk1IDAtLjE0My4wNDgtLjE0My4xNDN2NS42MDdoLTUuMzJjLS4wOTYgMC0uMTQ0LjA0OC0uMTQ0LjE0M3YxLjA3MmMwIC4wOTUuMDQ4LjE0Mi4xNDMuMTQyaDUuMzIxdjUuNjA4YzAgLjA5NS4wNDguMTQyLjE0My4xNDJoMS4wNzJjLjA5NSAwIC4xNDItLjA0Ny4xNDItLjE0MlY4LjY3OUgxNGMuMDk1IDAgLjE0My0uMDQ3LjE0My0uMTQyVjcuNDY1YzAtLjA5NS0uMDQ4LS4xNDMtLjE0My0uMTQzSDguNjc4VjEuNzE1YzAtLjA5NS0uMDQ3LS4xNDMtLjE0Mi0uMTQzWiIgZmlsbD0iIzU5NTk1OSIvPjwvc3ZnPg==\";\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgMinus = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ width: 16, height: 16, fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.429 7.322H1.572a.143.143 0 0 0-.143.143v1.072c0 .078.064.142.143.142h12.857a.143.143 0 0 0 .143-.142V7.465a.143.143 0 0 0-.143-.143Z\", fill: \"#595959\" }));\nexport { SvgMinus as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0LjQyOSA3LjMyMkgxLjU3MmEuMTQzLjE0MyAwIDAgMC0uMTQzLjE0M3YxLjA3MmMwIC4wNzguMDY0LjE0Mi4xNDMuMTQyaDEyLjg1N2EuMTQzLjE0MyAwIDAgMCAuMTQzLS4xNDJWNy40NjVhLjE0My4xNDMgMCAwIDAtLjE0My0uMTQzWiIgZmlsbD0iIzU5NTk1OSIvPjwvc3ZnPg==\";\n","import React from 'react';\nimport { Dropdown, Slider } from 'antd';\nimport { ReactComponent as SettingsIcon } from './assets/settings.svg';\nimport { ReactComponent as PlusIcon } from './assets/plus.svg';\nimport { ReactComponent as MinusIcon } from './assets/minus.svg';\nimport { useLocale } from 'dds-utils/locale';\nimport './index.less';\n\nexport interface IProps {\n cloumnCount: number;\n maxCloumnCount?: number;\n onColumnCountChange: (countState: number | boolean) => void;\n getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\n}\n\nconst ColumnSettings: React.FC = (props) => {\n const { localeText } = useLocale();\n const {\n cloumnCount,\n maxCloumnCount = 8,\n onColumnCountChange,\n getPopupContainer,\n } = props;\n\n return (\n (\n
\n
{localeText('ColumnSettings.title')}
\n
\n onColumnCountChange(value)}\n value={cloumnCount}\n className=\"slider\"\n />\n
\n onColumnCountChange(false)} />\n
{cloumnCount}
\n onColumnCountChange(true)} />\n
\n
\n
\n )}\n >\n
\n \n
\n \n );\n};\n\nexport default ColumnSettings;\n","import React from 'react';\nimport { Result } from 'antd';\nimport { globalLocaleText } from 'dds-utils/locale';\n\nconst MobileAlert: React.FC = () => (\n \n \n \n);\n\nexport default MobileAlert;\n","import React, { useState } from 'react';\nimport { Pagination, InputNumber } from 'antd';\nimport { useLocale } from 'dds-utils/locale';\nimport { isNaN } from 'lodash';\nimport './index.less';\n\nexport interface IProps {\n current: number;\n size: number;\n total: number;\n onPageChange: (page: number) => void;\n onPageSizeChange: (current: number, size: number) => void;\n}\n\nconst DynamicPagination: React.FC = (props) => {\n const { current, size, total, onPageChange, onPageSizeChange } = props;\n const [customPageSize, setCustomPageSize] = useState(size);\n const { localeText } = useLocale();\n\n return (\n
\n onPageChange(page)}\n />\n
\n
\n {localeText('DynamicPagination.label')}\n
\n {\n setCustomPageSize(Number(e));\n }}\n onBlur={(e) => {\n if (isNaN(Number(e.target.value)) || Number(e.target.value) <= 0) {\n onPageSizeChange(current, 1);\n } else {\n onPageSizeChange(current, Number(e.target.value));\n }\n }}\n onPressEnter={(e) => {\n (e.target as any).blur(e);\n }}\n />\n
\n
\n );\n};\n\nexport default DynamicPagination;\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport * as React from \"react\";\nconst SvgUploadFile = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({ viewBox: \"0 0 56 56\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props), /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#upload_file_svg__a)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m46.55 12.917-8.132-8.131A16.227 16.227 0 0 0 26.868.002H16.333C9.9 0 4.667 5.234 4.667 11.667v32.666C4.667 50.766 9.9 56 16.333 56h23.334c6.433 0 11.666-5.234 11.666-11.667V24.465c0-4.363-1.698-8.46-4.783-11.548Zm-3.3 3.3c.743.742 1.37 1.565 1.879 2.45H35a2.337 2.337 0 0 1-2.333-2.334V6.204c.884.509 1.71 1.137 2.45 1.879l8.131 8.131.003.003Zm3.417 28.116c0 3.86-3.141 7-7 7H16.333c-3.859 0-7-3.14-7-7V11.667c0-3.86 3.141-7 7-7h10.535c.38 0 .759.018 1.132.053v11.613c0 3.86 3.14 7 7 7h11.613c.035.374.054.752.054 1.132v19.868ZM36.65 33.79a2.33 2.33 0 0 1 0 3.3 2.327 2.327 0 0 1-1.65.683 2.327 2.327 0 0 1-1.65-.684l-3.017-3.017v10.262a2.334 2.334 0 0 1-4.666 0V34.071l-3.017 3.017a2.33 2.33 0 0 1-3.3 0 2.33 2.33 0 0 1 0-3.299l3.766-3.766c2.693-2.693 7.075-2.693 9.77 0l3.766 3.766h-.002Z\", fill: \"#739EFF\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"upload_file_svg__a\" }, /* @__PURE__ */ React.createElement(\"path\", { fill: \"#fff\", d: \"M0 0h56v56H0z\" }))));\nexport { SvgUploadFile as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTYgNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJtNDYuNTUgMTIuOTE3LTguMTMyLTguMTMxQTE2LjIyNyAxNi4yMjcgMCAwIDAgMjYuODY4LjAwMkgxNi4zMzNDOS45IDAgNC42NjcgNS4yMzQgNC42NjcgMTEuNjY3djMyLjY2NkM0LjY2NyA1MC43NjYgOS45IDU2IDE2LjMzMyA1NmgyMy4zMzRjNi40MzMgMCAxMS42NjYtNS4yMzQgMTEuNjY2LTExLjY2N1YyNC40NjVjMC00LjM2My0xLjY5OC04LjQ2LTQuNzgzLTExLjU0OFptLTMuMyAzLjNjLjc0My43NDIgMS4zNyAxLjU2NSAxLjg3OSAyLjQ1SDM1YTIuMzM3IDIuMzM3IDAgMCAxLTIuMzMzLTIuMzM0VjYuMjA0Yy44ODQuNTA5IDEuNzEgMS4xMzcgMi40NSAxLjg3OWw4LjEzMSA4LjEzMS4wMDMuMDAzWm0zLjQxNyAyOC4xMTZjMCAzLjg2LTMuMTQxIDctNyA3SDE2LjMzM2MtMy44NTkgMC03LTMuMTQtNy03VjExLjY2N2MwLTMuODYgMy4xNDEtNyA3LTdoMTAuNTM1Yy4zOCAwIC43NTkuMDE4IDEuMTMyLjA1M3YxMS42MTNjMCAzLjg2IDMuMTQgNyA3IDdoMTEuNjEzYy4wMzUuMzc0LjA1NC43NTIuMDU0IDEuMTMydjE5Ljg2OFpNMzYuNjUgMzMuNzlhMi4zMyAyLjMzIDAgMCAxIDAgMy4zIDIuMzI3IDIuMzI3IDAgMCAxLTEuNjUuNjgzIDIuMzI3IDIuMzI3IDAgMCAxLTEuNjUtLjY4NGwtMy4wMTctMy4wMTd2MTAuMjYyYTIuMzM0IDIuMzM0IDAgMCAxLTQuNjY2IDBWMzQuMDcxbC0zLjAxNyAzLjAxN2EyLjMzIDIuMzMgMCAwIDEtMy4zIDAgMi4zMyAyLjMzIDAgMCAxIDAtMy4yOTlsMy43NjYtMy43NjZjMi42OTMtMi42OTMgNy4wNzUtMi42OTMgOS43NyAwbDMuNzY2IDMuNzY2aC0uMDAyWiIgZmlsbD0iIzczOUVGRiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoNTZ2NTZIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=\";\n","import Icon from '@ant-design/icons';\nimport { Card, Upload, UploadFile } from 'antd';\nimport { ReactNode } from 'react';\nimport { ReactComponent as UploadFileIcon } from './assets/upload_file.svg';\nimport { UploadChangeParam } from 'antd/es/upload';\nimport { useLocale } from 'dds-utils/locale';\nimport './index.less';\n\nconst DEFAULT_PRE_ANNO_MAX_SIZE = 20;\n\ninterface IProps {\n children?: ReactNode;\n uploadFiles: UploadFile[];\n onChangeFile: (info: UploadChangeParam>) => void;\n onRemoveFile: (file: UploadFile) => void;\n}\n\nconst UploadPreAnno: React.FC = ({\n uploadFiles,\n onChangeFile,\n onRemoveFile,\n children,\n}) => {\n const { localeText } = useLocale();\n\n return (\n false}\n fileList={uploadFiles}\n onChange={onChangeFile}\n onRemove={onRemoveFile}\n accept={'.json'}\n showUploadList={true}\n >\n {children ? (\n children\n ) : (\n \n }\n title={localeText('dds-upload-pre-anno')}\n description={localeText('dds-upload-pre-anno.tip', {\n maxSize: DEFAULT_PRE_ANNO_MAX_SIZE,\n })}\n />\n \n )}\n \n );\n};\n\nexport default UploadPreAnno;\n","import { useMemoizedFn, useUpdate } from 'ahooks';\nimport { parse, stringify } from 'query-string';\nimport { useMemo, useRef } from 'react';\nimport * as tmp from 'react-router';\n// ignore waring `\"export 'useNavigate' (imported as 'rc') was not found in 'react-router'`\nconst rc = tmp;\nconst baseParseConfig = {\n parseNumbers: false,\n parseBooleans: false\n};\nconst baseStringifyConfig = {\n skipNull: false,\n skipEmptyString: false\n};\nconst useUrlState = (initialState, options) => {\n var _a, _b;\n const {\n navigateMode = 'push',\n parseOptions,\n stringifyOptions\n } = options || {};\n const mergedParseOptions = Object.assign(Object.assign({}, baseParseConfig), parseOptions);\n const mergedStringifyOptions = Object.assign(Object.assign({}, baseStringifyConfig), stringifyOptions);\n const location = rc.useLocation();\n // react-router v5\n const history = (_a = rc.useHistory) === null || _a === void 0 ? void 0 : _a.call(rc);\n // react-router v6\n const navigate = (_b = rc.useNavigate) === null || _b === void 0 ? void 0 : _b.call(rc);\n const update = useUpdate();\n const initialStateRef = useRef(typeof initialState === 'function' ? initialState() : initialState || {});\n const queryFromUrl = useMemo(() => {\n return parse(location.search, mergedParseOptions);\n }, [location.search]);\n const targetQuery = useMemo(() => Object.assign(Object.assign({}, initialStateRef.current), queryFromUrl), [queryFromUrl]);\n const setState = s => {\n const newQuery = typeof s === 'function' ? s(targetQuery) : s;\n // 1. 如果 setState 后,search 没变化,就需要 update 来触发一次更新。比如 demo1 直接点击 clear,就需要 update 来触发更新。\n // 2. update 和 history 的更新会合并,不会造成多次更新\n update();\n if (history) {\n history[navigateMode]({\n hash: location.hash,\n search: stringify(Object.assign(Object.assign({}, queryFromUrl), newQuery), mergedStringifyOptions) || '?'\n }, location.state);\n }\n if (navigate) {\n navigate({\n hash: location.hash,\n search: stringify(Object.assign(Object.assign({}, queryFromUrl), newQuery), mergedStringifyOptions) || '?'\n }, {\n replace: navigateMode === 'replace',\n state: location.state\n });\n }\n };\n return [targetQuery, useMemoizedFn(setState)];\n};\nexport default useUrlState;","import { useEffect } from 'react';\nimport useUrlState from '@ahooksjs/use-url-state';\n\n/**\n * Page lifecycle hooks\n * - Route-related operations need to be implemented through the page\n * - Direct invocation of related hooks is not supported within the model.\n */\nexport default function usePageModelLifeCycle(object: {\n /** Bind with the page query, and update the URL parameters correspondingly when modified. */\n pageState?: T;\n /** Initialize page data based on URL when entering the page. */\n onInitPageState?: (urlPageState: T, query: Record) => void;\n /** Entering page */\n onPageDidMount?: (query: Record) => void;\n /** Leaving page */\n onPageWillUnmount?: () => void;\n}) {\n const { pageState, onInitPageState, onPageDidMount, onPageWillUnmount } =\n object;\n\n // Real url query.\n // @ts-ignore\n const [query, updateQuery] = useUrlState>(\n {},\n { navigateMode: 'replace' },\n );\n\n useEffect(() => {\n // Trigger initialization of page state.\n if (onInitPageState) {\n let urlPageState = {};\n try {\n urlPageState = query.pageState ? JSON.parse(query.pageState) : {};\n } catch (error) {\n console.error('get urlPageState error: ', error);\n }\n onInitPageState(urlPageState as T, query);\n }\n // Trigger entering page lifecycle.\n if (onPageDidMount) {\n onPageDidMount(query);\n }\n return () => {\n // Trigger leaving page lifecycle.\n if (onPageWillUnmount) onPageWillUnmount();\n };\n }, []);\n\n // Bind pageState to update URL in real time.\n useEffect(() => {\n updateQuery({\n ...query,\n pageState: JSON.stringify(pageState),\n });\n }, [pageState]);\n\n return;\n}\n","import { useState, useEffect } from 'react';\n\nexport default function useWindowResize() {\n const [width, setWidth] = useState(window.innerWidth);\n const [height, setHeight] = useState(window.innerHeight);\n\n const listener = () => {\n setWidth(window.innerWidth);\n setHeight(window.innerHeight);\n };\n\n useEffect(() => {\n window.addEventListener('resize', listener);\n return () => {\n window.removeEventListener('resize', listener);\n };\n }, []);\n\n return {\n width,\n height,\n };\n}\n","/**\n * Round the decimal to n digits (take the first few digits)\n * @param value\n * @param n\n * @returns\n */\nexport const floorFloatNum = (value: number, n: number = 2) => {\n return Math.floor(value * Math.pow(10, n)) / Math.pow(10, n);\n};\n\n/**\n * Round the decimal to n digits (rounding off)\n * @param value\n * @param n\n * @returns\n */\nexport const fixedFloatNum = (value: number, n: number = 2) => {\n return Number(value.toFixed(n));\n};\n","import { floorFloatNum } from './digit';\n\nexport function genFileNameByTimestamp(\n timestamp: number,\n name?: string,\n ext?: string,\n) {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = floorFloatNum(date.getMonth() + 1);\n const day = floorFloatNum(date.getDate());\n const hours = floorFloatNum(date.getHours());\n const minutes = floorFloatNum(date.getMinutes());\n const seconds = floorFloatNum(date.getSeconds());\n const milliseconds = floorFloatNum(date.getMilliseconds(), 3);\n\n let fileName = `${year}_${month}_${day}_${hours}_${minutes}_${seconds}_${milliseconds}`;\n if (name) {\n fileName = `${name}_${fileName}`;\n }\n if (ext) {\n fileName = `${fileName}.${ext}`;\n }\n return fileName;\n}\n\nexport function saveObejctToJsonFile(data: object, fileName: string) {\n const jsonString = JSON.stringify(data);\n const blob = new Blob([jsonString], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n link.href = url;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n}\n\nexport const loadImage = (src: string) => {\n return new Promise((resolve, reject) => {\n const imgNode = new Image();\n imgNode.src = src;\n\n imgNode.onload = () => {\n resolve(imgNode);\n };\n\n imgNode.onerror = () => {\n reject(imgNode);\n };\n });\n};\n\nexport async function scanFiles(\n entry: any,\n filesList: any[],\n acceptTypes?: string[],\n) {\n return new Promise((resolve, reject) => {\n if (entry.isDirectory) {\n const directoryReader = entry.createReader();\n directoryReader.readEntries(\n async (entries: any[]) => {\n for (let index = 0; index < entries.length; index++) {\n await scanFiles(entries[index], filesList, acceptTypes);\n if (index === entries.length - 1) {\n resolve(1);\n }\n }\n },\n (e: any) => {\n reject(e);\n },\n );\n } else {\n entry.file(\n async (file: any) => {\n const path = entry.fullPath.substring(1);\n /**修改webkitRelativePath 是核心操作,原因是拖拽会的事件体中webkitRelativePath是空的,而且webkitRelativePath 是只读属性,普通赋值是不行的。所以目前只能使用这种方法将entry.fullPath 赋值给webkitRelativePath**/\n const newFile: File = Object.defineProperty(\n file,\n 'webkitRelativePath',\n {\n value: path,\n },\n );\n if (!acceptTypes || acceptTypes.includes(newFile.type)) {\n filesList.push(newFile);\n }\n resolve(1);\n return;\n },\n (e: any) => {\n reject(e);\n },\n );\n }\n });\n}\n\nexport async function scanDataTransfer(\n dataTransfer?: DataTransfer,\n acceptTypes?: string[],\n) {\n if (!dataTransfer) return [];\n const filesList: File[] = [];\n\n // files filter\n for (const item of dataTransfer.files) {\n if (item && (!acceptTypes || acceptTypes.includes(item.type))) {\n filesList.push(item);\n }\n }\n\n // sub directory\n if (dataTransfer.items.length > 0) {\n for (const item of dataTransfer.items) {\n const itemEntry = item.webkitGetAsEntry();\n if (itemEntry?.isDirectory) {\n await scanFiles(itemEntry, filesList, acceptTypes);\n }\n }\n }\n return filesList;\n}\n\nexport async function getImageDimensions(url: string): Promise {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.src = url;\n img.onload = () => {\n const width = img.width;\n const height = img.height;\n resolve({ width, height });\n };\n img.onerror = () => {\n reject(new Error('Load Image Error'));\n };\n });\n}","import { FormattedMessage, formatMessage, useIntl } from '@umijs/max';\n\n/**\n * Use For: single function / global model / layout / app.tsx\n * The corresponding multilingual only takes effect after refreshing the page.\n * @param id\n * @param templateParams\n * @returns\n */\n\nexport const globalLocaleText = (\n id: string,\n templateParams: Record = {},\n) => {\n return formatMessage({ id }, templateParams);\n};\n\n/**\n * Use For: Render function\n * id\n * values\n */\nexport const LocaleText = FormattedMessage;\n\n/**\n * Use For: Fuction Components\n */\nexport const useLocale = () => {\n const intl = useIntl();\n const localeText = (id: string, templateParams: Record = {}) => {\n return intl.formatMessage({ id }, templateParams);\n };\n return {\n localeText,\n };\n};\n","// @ts-ignore typings to rediect src/.umi\nimport { history } from '@umijs/max';\n\nexport const getUrlQueryVal = (name: string) => {\n let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');\n let r = window.location.search.substr(1).match(reg);\n if (r !== null) {\n return decodeURIComponent(r[2]);\n }\n return null;\n};\n\nexport const getUrlPathnameLastKey = () => {\n const keys = window.location.pathname.split('/');\n return keys[keys.length - 1];\n};\n\nexport const backPath = (backPath: string) => {\n if (document.referrer.includes(backPath)) {\n window.history.back();\n } else {\n history.push(backPath);\n }\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${encode(object.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"element\"];\nimport React from 'react';\nimport { matchRoutes, useLocation } from 'react-router-dom';\nimport { useRouteData } from \"./routeContext\";\nexport var AppContext = /*#__PURE__*/React.createContext({});\nexport function useAppData() {\n return React.useContext(AppContext);\n}\nexport function useSelectedRoutes() {\n var location = useLocation();\n\n var _useAppData = useAppData(),\n clientRoutes = _useAppData.clientRoutes; // use `useLocation` get location without `basename`, not need `basename` param\n\n\n var routes = matchRoutes(clientRoutes, location.pathname);\n return routes || [];\n}\nexport function useRouteProps() {\n var _currentRoute$;\n\n var currentRoute = useSelectedRoutes().slice(-1);\n\n var _ref = ((_currentRoute$ = currentRoute[0]) === null || _currentRoute$ === void 0 ? void 0 : _currentRoute$.route) || {},\n _ = _ref.element,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return props;\n}\nexport function useServerLoaderData() {\n var route = useRouteData();\n var appData = useAppData();\n return {\n data: appData.serverLoaderData[route.route.id]\n };\n}\nexport function useClientLoaderData() {\n var route = useRouteData();\n var appData = useAppData();\n return {\n data: appData.clientLoaderData[route.route.id]\n };\n}","import useLatest from '../useLatest';\nimport { getTargetElement } from '../utils/domTarget';\nimport useEffectWithTarget from '../utils/useEffectWithTarget';\nfunction useEventListener(eventName, handler, options) {\n if (options === void 0) {\n options = {};\n }\n var handlerRef = useLatest(handler);\n useEffectWithTarget(function () {\n var targetElement = getTargetElement(options.target, window);\n if (!(targetElement === null || targetElement === void 0 ? void 0 : targetElement.addEventListener)) {\n return;\n }\n var eventListener = function (event) {\n return handlerRef.current(event);\n };\n targetElement.addEventListener(eventName, eventListener, {\n capture: options.capture,\n once: options.once,\n passive: options.passive\n });\n return function () {\n targetElement.removeEventListener(eventName, eventListener, {\n capture: options.capture\n });\n };\n }, [eventName, options.capture, options.once, options.passive], options.target);\n}\nexport default useEventListener;","import isEqual from 'lodash/isEqual';\nexport var depsEqual = function (aDeps, bDeps) {\n if (aDeps === void 0) {\n aDeps = [];\n }\n if (bDeps === void 0) {\n bDeps = [];\n }\n return isEqual(aDeps, bDeps);\n};","import { useRef } from 'react';\nimport useEffectWithTarget from './useEffectWithTarget';\nimport { depsEqual } from './depsEqual';\nvar useDeepCompareEffectWithTarget = function (effect, deps, target) {\n var ref = useRef();\n var signalRef = useRef(0);\n if (!depsEqual(deps, ref.current)) {\n ref.current = deps;\n signalRef.current += 1;\n }\n useEffectWithTarget(effect, [signalRef.current], target);\n};\nexport default useDeepCompareEffectWithTarget;","var isAppleDevice = /(mac|iphone|ipod|ipad)/i.test(typeof navigator !== 'undefined' ? navigator === null || navigator === void 0 ? void 0 : navigator.platform : '');\nexport default isAppleDevice;","import { __values } from \"tslib\";\nimport useLatest from '../useLatest';\nimport { isFunction, isNumber, isString } from '../utils';\nimport { getTargetElement } from '../utils/domTarget';\nimport useDeepCompareEffectWithTarget from '../utils/useDeepCompareWithTarget';\nimport isAppleDevice from '../utils/isAppleDevice';\n// 键盘事件 keyCode 别名\nvar aliasKeyCodeMap = {\n '0': 48,\n '1': 49,\n '2': 50,\n '3': 51,\n '4': 52,\n '5': 53,\n '6': 54,\n '7': 55,\n '8': 56,\n '9': 57,\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n ctrl: 17,\n alt: 18,\n pausebreak: 19,\n capslock: 20,\n esc: 27,\n space: 32,\n pageup: 33,\n pagedown: 34,\n end: 35,\n home: 36,\n leftarrow: 37,\n uparrow: 38,\n rightarrow: 39,\n downarrow: 40,\n insert: 45,\n delete: 46,\n a: 65,\n b: 66,\n c: 67,\n d: 68,\n e: 69,\n f: 70,\n g: 71,\n h: 72,\n i: 73,\n j: 74,\n k: 75,\n l: 76,\n m: 77,\n n: 78,\n o: 79,\n p: 80,\n q: 81,\n r: 82,\n s: 83,\n t: 84,\n u: 85,\n v: 86,\n w: 87,\n x: 88,\n y: 89,\n z: 90,\n leftwindowkey: 91,\n rightwindowkey: 92,\n meta: isAppleDevice ? [91, 93] : [91, 92],\n selectkey: 93,\n numpad0: 96,\n numpad1: 97,\n numpad2: 98,\n numpad3: 99,\n numpad4: 100,\n numpad5: 101,\n numpad6: 102,\n numpad7: 103,\n numpad8: 104,\n numpad9: 105,\n multiply: 106,\n add: 107,\n subtract: 109,\n decimalpoint: 110,\n divide: 111,\n f1: 112,\n f2: 113,\n f3: 114,\n f4: 115,\n f5: 116,\n f6: 117,\n f7: 118,\n f8: 119,\n f9: 120,\n f10: 121,\n f11: 122,\n f12: 123,\n numlock: 144,\n scrolllock: 145,\n semicolon: 186,\n equalsign: 187,\n comma: 188,\n dash: 189,\n period: 190,\n forwardslash: 191,\n graveaccent: 192,\n openbracket: 219,\n backslash: 220,\n closebracket: 221,\n singlequote: 222\n};\n// 修饰键\nvar modifierKey = {\n ctrl: function (event) {\n return event.ctrlKey;\n },\n shift: function (event) {\n return event.shiftKey;\n },\n alt: function (event) {\n return event.altKey;\n },\n meta: function (event) {\n if (event.type === 'keyup') {\n return aliasKeyCodeMap.meta.includes(event.keyCode);\n }\n return event.metaKey;\n }\n};\n// 根据 event 计算激活键数量\nfunction countKeyByEvent(event) {\n var countOfModifier = Object.keys(modifierKey).reduce(function (total, key) {\n if (modifierKey[key](event)) {\n return total + 1;\n }\n return total;\n }, 0);\n // 16 17 18 91 92 是修饰键的 keyCode,如果 keyCode 是修饰键,那么激活数量就是修饰键的数量,如果不是,那么就需要 +1\n return [16, 17, 18, 91, 92].includes(event.keyCode) ? countOfModifier : countOfModifier + 1;\n}\n/**\n * 判断按键是否激活\n * @param [event: KeyboardEvent]键盘事件\n * @param [keyFilter: any] 当前键\n * @returns Boolean\n */\nfunction genFilterKey(event, keyFilter, exactMatch) {\n var e_1, _a;\n // 浏览器自动补全 input 的时候,会触发 keyDown、keyUp 事件,但此时 event.key 等为空\n if (!event.key) {\n return false;\n }\n // 数字类型直接匹配事件的 keyCode\n if (isNumber(keyFilter)) {\n return event.keyCode === keyFilter;\n }\n // 字符串依次判断是否有组合键\n var genArr = keyFilter.split('.');\n var genLen = 0;\n try {\n for (var genArr_1 = __values(genArr), genArr_1_1 = genArr_1.next(); !genArr_1_1.done; genArr_1_1 = genArr_1.next()) {\n var key = genArr_1_1.value;\n // 组合键\n var genModifier = modifierKey[key];\n // keyCode 别名\n var aliasKeyCode = aliasKeyCodeMap[key.toLowerCase()];\n if (genModifier && genModifier(event) || aliasKeyCode && aliasKeyCode === event.keyCode) {\n genLen++;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (genArr_1_1 && !genArr_1_1.done && (_a = genArr_1.return)) _a.call(genArr_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n /**\n * 需要判断触发的键位和监听的键位完全一致,判断方法就是触发的键位里有且等于监听的键位\n * genLen === genArr.length 能判断出来触发的键位里有监听的键位\n * countKeyByEvent(event) === genArr.length 判断出来触发的键位数量里有且等于监听的键位数量\n * 主要用来防止按组合键其子集也会触发的情况,例如监听 ctrl+a 会触发监听 ctrl 和 a 两个键的事件。\n */\n if (exactMatch) {\n return genLen === genArr.length && countKeyByEvent(event) === genArr.length;\n }\n return genLen === genArr.length;\n}\n/**\n * 键盘输入预处理方法\n * @param [keyFilter: any] 当前键\n * @returns () => Boolean\n */\nfunction genKeyFormatter(keyFilter, exactMatch) {\n if (isFunction(keyFilter)) {\n return keyFilter;\n }\n if (isString(keyFilter) || isNumber(keyFilter)) {\n return function (event) {\n return genFilterKey(event, keyFilter, exactMatch);\n };\n }\n if (Array.isArray(keyFilter)) {\n return function (event) {\n return keyFilter.some(function (item) {\n return genFilterKey(event, item, exactMatch);\n });\n };\n }\n return function () {\n return Boolean(keyFilter);\n };\n}\nvar defaultEvents = ['keydown'];\nfunction useKeyPress(keyFilter, eventHandler, option) {\n var _a = option || {},\n _b = _a.events,\n events = _b === void 0 ? defaultEvents : _b,\n target = _a.target,\n _c = _a.exactMatch,\n exactMatch = _c === void 0 ? false : _c,\n _d = _a.useCapture,\n useCapture = _d === void 0 ? false : _d;\n var eventHandlerRef = useLatest(eventHandler);\n var keyFilterRef = useLatest(keyFilter);\n useDeepCompareEffectWithTarget(function () {\n var e_2, _a;\n var _b;\n var el = getTargetElement(target, window);\n if (!el) {\n return;\n }\n var callbackHandler = function (event) {\n var _a;\n var genGuard = genKeyFormatter(keyFilterRef.current, exactMatch);\n if (genGuard(event)) {\n return (_a = eventHandlerRef.current) === null || _a === void 0 ? void 0 : _a.call(eventHandlerRef, event);\n }\n };\n try {\n for (var events_1 = __values(events), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {\n var eventName = events_1_1.value;\n (_b = el === null || el === void 0 ? void 0 : el.addEventListener) === null || _b === void 0 ? void 0 : _b.call(el, eventName, callbackHandler, useCapture);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (events_1_1 && !events_1_1.done && (_a = events_1.return)) _a.call(events_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n return function () {\n var e_3, _a;\n var _b;\n try {\n for (var events_2 = __values(events), events_2_1 = events_2.next(); !events_2_1.done; events_2_1 = events_2.next()) {\n var eventName = events_2_1.value;\n (_b = el === null || el === void 0 ? void 0 : el.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(el, eventName, callbackHandler, useCapture);\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (events_2_1 && !events_2_1.done && (_a = events_2.return)) _a.call(events_2);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n };\n }, [events], target);\n}\nexport default useKeyPress;","import { useRef } from 'react';\nfunction useLatest(value) {\n var ref = useRef(value);\n ref.current = value;\n return ref;\n}\nexport default useLatest;","import { useMemo, useRef } from 'react';\nimport { isFunction } from '../utils';\nimport isDev from '../utils/isDev';\nfunction useMemoizedFn(fn) {\n if (isDev) {\n if (!isFunction(fn)) {\n console.error(\"useMemoizedFn expected parameter is a function, got \".concat(typeof fn));\n }\n }\n var fnRef = useRef(fn);\n // why not write `fnRef.current = fn`?\n // https://github.com/alibaba/hooks/issues/728\n fnRef.current = useMemo(function () {\n return fn;\n }, [fn]);\n var memoizedFn = useRef();\n if (!memoizedFn.current) {\n memoizedFn.current = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fnRef.current.apply(this, args);\n };\n }\n return memoizedFn.current;\n}\nexport default useMemoizedFn;","import { __read } from \"tslib\";\nimport { useCallback, useRef, useState } from 'react';\nimport useUnmount from '../useUnmount';\nfunction useRafState(initialState) {\n var ref = useRef(0);\n var _a = __read(useState(initialState), 2),\n state = _a[0],\n setState = _a[1];\n var setRafState = useCallback(function (value) {\n cancelAnimationFrame(ref.current);\n ref.current = requestAnimationFrame(function () {\n setState(value);\n });\n }, []);\n useUnmount(function () {\n cancelAnimationFrame(ref.current);\n });\n return [state, setRafState];\n}\nexport default useRafState;","import { useRef } from 'react';\nexport var createUpdateEffect = function (hook) {\n return function (effect, deps) {\n var isMounted = useRef(false);\n // for react-refresh\n hook(function () {\n return function () {\n isMounted.current = false;\n };\n }, []);\n hook(function () {\n if (!isMounted.current) {\n isMounted.current = true;\n } else {\n return effect();\n }\n }, deps);\n };\n};\nexport default createUpdateEffect;","import { useEffect } from 'react';\nimport { createUpdateEffect } from '../createUpdateEffect';\nexport default createUpdateEffect(useEffect);","import { __read, __spreadArray } from \"tslib\";\nimport { useRef } from 'react';\nimport useUpdateEffect from '../../../useUpdateEffect';\n// support refreshDeps & ready\nvar useAutoRunPlugin = function (fetchInstance, _a) {\n var manual = _a.manual,\n _b = _a.ready,\n ready = _b === void 0 ? true : _b,\n _c = _a.defaultParams,\n defaultParams = _c === void 0 ? [] : _c,\n _d = _a.refreshDeps,\n refreshDeps = _d === void 0 ? [] : _d,\n refreshDepsAction = _a.refreshDepsAction;\n var hasAutoRun = useRef(false);\n hasAutoRun.current = false;\n useUpdateEffect(function () {\n if (!manual && ready) {\n hasAutoRun.current = true;\n fetchInstance.run.apply(fetchInstance, __spreadArray([], __read(defaultParams), false));\n }\n }, [ready]);\n useUpdateEffect(function () {\n if (hasAutoRun.current) {\n return;\n }\n if (!manual) {\n hasAutoRun.current = true;\n if (refreshDepsAction) {\n refreshDepsAction();\n } else {\n fetchInstance.refresh();\n }\n }\n }, __spreadArray([], __read(refreshDeps), false));\n return {\n onBefore: function () {\n if (!ready) {\n return {\n stopNow: true\n };\n }\n }\n };\n};\nuseAutoRunPlugin.onInit = function (_a) {\n var _b = _a.ready,\n ready = _b === void 0 ? true : _b,\n manual = _a.manual;\n return {\n loading: !manual && ready\n };\n};\nexport default useAutoRunPlugin;","import { useRef } from 'react';\nimport depsAreSame from '../utils/depsAreSame';\nexport default function useCreation(factory, deps) {\n var current = useRef({\n deps: deps,\n obj: undefined,\n initialized: false\n }).current;\n if (current.initialized === false || !depsAreSame(current.deps, deps)) {\n current.deps = deps;\n current.obj = factory();\n current.initialized = true;\n }\n return current.obj;\n}","import { __assign } from \"tslib\";\nvar cache = new Map();\nvar setCache = function (key, cacheTime, cachedData) {\n var currentCache = cache.get(key);\n if (currentCache === null || currentCache === void 0 ? void 0 : currentCache.timer) {\n clearTimeout(currentCache.timer);\n }\n var timer = undefined;\n if (cacheTime > -1) {\n // if cache out, clear it\n timer = setTimeout(function () {\n cache.delete(key);\n }, cacheTime);\n }\n cache.set(key, __assign(__assign({}, cachedData), {\n timer: timer\n }));\n};\nvar getCache = function (key) {\n return cache.get(key);\n};\nvar clearCache = function (key) {\n if (key) {\n var cacheKeys = Array.isArray(key) ? key : [key];\n cacheKeys.forEach(function (cacheKey) {\n return cache.delete(cacheKey);\n });\n } else {\n cache.clear();\n }\n};\nexport { getCache, setCache, clearCache };","var cachePromise = new Map();\nvar getCachePromise = function (cacheKey) {\n return cachePromise.get(cacheKey);\n};\nvar setCachePromise = function (cacheKey, promise) {\n // Should cache the same promise, cannot be promise.finally\n // Because the promise.finally will change the reference of the promise\n cachePromise.set(cacheKey, promise);\n // no use promise.finally for compatibility\n promise.then(function (res) {\n cachePromise.delete(cacheKey);\n return res;\n }).catch(function () {\n cachePromise.delete(cacheKey);\n });\n};\nexport { getCachePromise, setCachePromise };","var listeners = {};\nvar trigger = function (key, data) {\n if (listeners[key]) {\n listeners[key].forEach(function (item) {\n return item(data);\n });\n }\n};\nvar subscribe = function (key, listener) {\n if (!listeners[key]) {\n listeners[key] = [];\n }\n listeners[key].push(listener);\n return function unsubscribe() {\n var index = listeners[key].indexOf(listener);\n listeners[key].splice(index, 1);\n };\n};\nexport { trigger, subscribe };","import { __read, __spreadArray } from \"tslib\";\nimport { useRef } from 'react';\nimport useCreation from '../../../useCreation';\nimport useUnmount from '../../../useUnmount';\nimport * as cache from '../utils/cache';\nimport * as cachePromise from '../utils/cachePromise';\nimport * as cacheSubscribe from '../utils/cacheSubscribe';\nvar useCachePlugin = function (fetchInstance, _a) {\n var cacheKey = _a.cacheKey,\n _b = _a.cacheTime,\n cacheTime = _b === void 0 ? 5 * 60 * 1000 : _b,\n _c = _a.staleTime,\n staleTime = _c === void 0 ? 0 : _c,\n customSetCache = _a.setCache,\n customGetCache = _a.getCache;\n var unSubscribeRef = useRef();\n var currentPromiseRef = useRef();\n var _setCache = function (key, cachedData) {\n if (customSetCache) {\n customSetCache(cachedData);\n } else {\n cache.setCache(key, cacheTime, cachedData);\n }\n cacheSubscribe.trigger(key, cachedData.data);\n };\n var _getCache = function (key, params) {\n if (params === void 0) {\n params = [];\n }\n if (customGetCache) {\n return customGetCache(params);\n }\n return cache.getCache(key);\n };\n useCreation(function () {\n if (!cacheKey) {\n return;\n }\n // get data from cache when init\n var cacheData = _getCache(cacheKey);\n if (cacheData && Object.hasOwnProperty.call(cacheData, 'data')) {\n fetchInstance.state.data = cacheData.data;\n fetchInstance.state.params = cacheData.params;\n if (staleTime === -1 || new Date().getTime() - cacheData.time <= staleTime) {\n fetchInstance.state.loading = false;\n }\n }\n // subscribe same cachekey update, trigger update\n unSubscribeRef.current = cacheSubscribe.subscribe(cacheKey, function (data) {\n fetchInstance.setState({\n data: data\n });\n });\n }, []);\n useUnmount(function () {\n var _a;\n (_a = unSubscribeRef.current) === null || _a === void 0 ? void 0 : _a.call(unSubscribeRef);\n });\n if (!cacheKey) {\n return {};\n }\n return {\n onBefore: function (params) {\n var cacheData = _getCache(cacheKey, params);\n if (!cacheData || !Object.hasOwnProperty.call(cacheData, 'data')) {\n return {};\n }\n // If the data is fresh, stop request\n if (staleTime === -1 || new Date().getTime() - cacheData.time <= staleTime) {\n return {\n loading: false,\n data: cacheData === null || cacheData === void 0 ? void 0 : cacheData.data,\n error: undefined,\n returnNow: true\n };\n } else {\n // If the data is stale, return data, and request continue\n return {\n data: cacheData === null || cacheData === void 0 ? void 0 : cacheData.data,\n error: undefined\n };\n }\n },\n onRequest: function (service, args) {\n var servicePromise = cachePromise.getCachePromise(cacheKey);\n // If has servicePromise, and is not trigger by self, then use it\n if (servicePromise && servicePromise !== currentPromiseRef.current) {\n return {\n servicePromise: servicePromise\n };\n }\n servicePromise = service.apply(void 0, __spreadArray([], __read(args), false));\n currentPromiseRef.current = servicePromise;\n cachePromise.setCachePromise(cacheKey, servicePromise);\n return {\n servicePromise: servicePromise\n };\n },\n onSuccess: function (data, params) {\n var _a;\n if (cacheKey) {\n // cancel subscribe, avoid trgger self\n (_a = unSubscribeRef.current) === null || _a === void 0 ? void 0 : _a.call(unSubscribeRef);\n _setCache(cacheKey, {\n data: data,\n params: params,\n time: new Date().getTime()\n });\n // resubscribe\n unSubscribeRef.current = cacheSubscribe.subscribe(cacheKey, function (d) {\n fetchInstance.setState({\n data: d\n });\n });\n }\n },\n onMutate: function (data) {\n var _a;\n if (cacheKey) {\n // cancel subscribe, avoid trigger self\n (_a = unSubscribeRef.current) === null || _a === void 0 ? void 0 : _a.call(unSubscribeRef);\n _setCache(cacheKey, {\n data: data,\n params: fetchInstance.state.params,\n time: new Date().getTime()\n });\n // resubscribe\n unSubscribeRef.current = cacheSubscribe.subscribe(cacheKey, function (d) {\n fetchInstance.setState({\n data: d\n });\n });\n }\n }\n };\n};\nexport default useCachePlugin;","import { __read, __spreadArray } from \"tslib\";\nimport debounce from 'lodash/debounce';\nimport { useEffect, useMemo, useRef } from 'react';\nvar useDebouncePlugin = function (fetchInstance, _a) {\n var debounceWait = _a.debounceWait,\n debounceLeading = _a.debounceLeading,\n debounceTrailing = _a.debounceTrailing,\n debounceMaxWait = _a.debounceMaxWait;\n var debouncedRef = useRef();\n var options = useMemo(function () {\n var ret = {};\n if (debounceLeading !== undefined) {\n ret.leading = debounceLeading;\n }\n if (debounceTrailing !== undefined) {\n ret.trailing = debounceTrailing;\n }\n if (debounceMaxWait !== undefined) {\n ret.maxWait = debounceMaxWait;\n }\n return ret;\n }, [debounceLeading, debounceTrailing, debounceMaxWait]);\n useEffect(function () {\n if (debounceWait) {\n var _originRunAsync_1 = fetchInstance.runAsync.bind(fetchInstance);\n debouncedRef.current = debounce(function (callback) {\n callback();\n }, debounceWait, options);\n // debounce runAsync should be promise\n // https://github.com/lodash/lodash/issues/4400#issuecomment-834800398\n fetchInstance.runAsync = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new Promise(function (resolve, reject) {\n var _a;\n (_a = debouncedRef.current) === null || _a === void 0 ? void 0 : _a.call(debouncedRef, function () {\n _originRunAsync_1.apply(void 0, __spreadArray([], __read(args), false)).then(resolve).catch(reject);\n });\n });\n };\n return function () {\n var _a;\n (_a = debouncedRef.current) === null || _a === void 0 ? void 0 : _a.cancel();\n fetchInstance.runAsync = _originRunAsync_1;\n };\n }\n }, [debounceWait, options]);\n if (!debounceWait) {\n return {};\n }\n return {\n onCancel: function () {\n var _a;\n (_a = debouncedRef.current) === null || _a === void 0 ? void 0 : _a.cancel();\n }\n };\n};\nexport default useDebouncePlugin;","import { useRef } from 'react';\nvar useLoadingDelayPlugin = function (fetchInstance, _a) {\n var loadingDelay = _a.loadingDelay,\n ready = _a.ready;\n var timerRef = useRef();\n if (!loadingDelay) {\n return {};\n }\n var cancelTimeout = function () {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n return {\n onBefore: function () {\n cancelTimeout();\n // Two cases:\n // 1. ready === undefined\n // 2. ready === true\n if (ready !== false) {\n timerRef.current = setTimeout(function () {\n fetchInstance.setState({\n loading: true\n });\n }, loadingDelay);\n }\n return {\n loading: false\n };\n },\n onFinally: function () {\n cancelTimeout();\n },\n onCancel: function () {\n cancelTimeout();\n }\n };\n};\nexport default useLoadingDelayPlugin;","import isBrowser from '../../../utils/isBrowser';\nexport default function isDocumentVisible() {\n if (isBrowser) {\n return document.visibilityState !== 'hidden';\n }\n return true;\n}","import isBrowser from '../../../utils/isBrowser';\nimport isDocumentVisible from './isDocumentVisible';\nvar listeners = [];\nfunction subscribe(listener) {\n listeners.push(listener);\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n}\nif (isBrowser) {\n var revalidate = function () {\n if (!isDocumentVisible()) return;\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n };\n window.addEventListener('visibilitychange', revalidate, false);\n}\nexport default subscribe;","import { useRef } from 'react';\nimport useUpdateEffect from '../../../useUpdateEffect';\nimport isDocumentVisible from '../utils/isDocumentVisible';\nimport subscribeReVisible from '../utils/subscribeReVisible';\nvar usePollingPlugin = function (fetchInstance, _a) {\n var pollingInterval = _a.pollingInterval,\n _b = _a.pollingWhenHidden,\n pollingWhenHidden = _b === void 0 ? true : _b,\n _c = _a.pollingErrorRetryCount,\n pollingErrorRetryCount = _c === void 0 ? -1 : _c;\n var timerRef = useRef();\n var unsubscribeRef = useRef();\n var countRef = useRef(0);\n var stopPolling = function () {\n var _a;\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n (_a = unsubscribeRef.current) === null || _a === void 0 ? void 0 : _a.call(unsubscribeRef);\n };\n useUpdateEffect(function () {\n if (!pollingInterval) {\n stopPolling();\n }\n }, [pollingInterval]);\n if (!pollingInterval) {\n return {};\n }\n return {\n onBefore: function () {\n stopPolling();\n },\n onError: function () {\n countRef.current += 1;\n },\n onSuccess: function () {\n countRef.current = 0;\n },\n onFinally: function () {\n if (pollingErrorRetryCount === -1 ||\n // When an error occurs, the request is not repeated after pollingErrorRetryCount retries\n pollingErrorRetryCount !== -1 && countRef.current <= pollingErrorRetryCount) {\n timerRef.current = setTimeout(function () {\n // if pollingWhenHidden = false && document is hidden, then stop polling and subscribe revisible\n if (!pollingWhenHidden && !isDocumentVisible()) {\n unsubscribeRef.current = subscribeReVisible(function () {\n fetchInstance.refresh();\n });\n } else {\n fetchInstance.refresh();\n }\n }, pollingInterval);\n } else {\n countRef.current = 0;\n }\n },\n onCancel: function () {\n stopPolling();\n }\n };\n};\nexport default usePollingPlugin;","import { __read, __spreadArray } from \"tslib\";\nexport default function limit(fn, timespan) {\n var pending = false;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (pending) return;\n pending = true;\n fn.apply(void 0, __spreadArray([], __read(args), false));\n setTimeout(function () {\n pending = false;\n }, timespan);\n };\n}","import isBrowser from '../../../utils/isBrowser';\nexport default function isOnline() {\n if (isBrowser && typeof navigator.onLine !== 'undefined') {\n return navigator.onLine;\n }\n return true;\n}","// from swr\nimport isBrowser from '../../../utils/isBrowser';\nimport isDocumentVisible from './isDocumentVisible';\nimport isOnline from './isOnline';\nvar listeners = [];\nfunction subscribe(listener) {\n listeners.push(listener);\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n}\nif (isBrowser) {\n var revalidate = function () {\n if (!isDocumentVisible() || !isOnline()) return;\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n };\n window.addEventListener('visibilitychange', revalidate, false);\n window.addEventListener('focus', revalidate, false);\n}\nexport default subscribe;","import { useEffect, useRef } from 'react';\nimport useUnmount from '../../../useUnmount';\nimport limit from '../utils/limit';\nimport subscribeFocus from '../utils/subscribeFocus';\nvar useRefreshOnWindowFocusPlugin = function (fetchInstance, _a) {\n var refreshOnWindowFocus = _a.refreshOnWindowFocus,\n _b = _a.focusTimespan,\n focusTimespan = _b === void 0 ? 5000 : _b;\n var unsubscribeRef = useRef();\n var stopSubscribe = function () {\n var _a;\n (_a = unsubscribeRef.current) === null || _a === void 0 ? void 0 : _a.call(unsubscribeRef);\n };\n useEffect(function () {\n if (refreshOnWindowFocus) {\n var limitRefresh_1 = limit(fetchInstance.refresh.bind(fetchInstance), focusTimespan);\n unsubscribeRef.current = subscribeFocus(function () {\n limitRefresh_1();\n });\n }\n return function () {\n stopSubscribe();\n };\n }, [refreshOnWindowFocus, focusTimespan]);\n useUnmount(function () {\n stopSubscribe();\n });\n return {};\n};\nexport default useRefreshOnWindowFocusPlugin;","import { useRef } from 'react';\nvar useRetryPlugin = function (fetchInstance, _a) {\n var retryInterval = _a.retryInterval,\n retryCount = _a.retryCount;\n var timerRef = useRef();\n var countRef = useRef(0);\n var triggerByRetry = useRef(false);\n if (!retryCount) {\n return {};\n }\n return {\n onBefore: function () {\n if (!triggerByRetry.current) {\n countRef.current = 0;\n }\n triggerByRetry.current = false;\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n },\n onSuccess: function () {\n countRef.current = 0;\n },\n onError: function () {\n countRef.current += 1;\n if (retryCount === -1 || countRef.current <= retryCount) {\n // Exponential backoff\n var timeout = retryInterval !== null && retryInterval !== void 0 ? retryInterval : Math.min(1000 * Math.pow(2, countRef.current), 30000);\n timerRef.current = setTimeout(function () {\n triggerByRetry.current = true;\n fetchInstance.refresh();\n }, timeout);\n } else {\n countRef.current = 0;\n }\n },\n onCancel: function () {\n countRef.current = 0;\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n }\n };\n};\nexport default useRetryPlugin;","import { __read, __spreadArray } from \"tslib\";\nimport throttle from 'lodash/throttle';\nimport { useEffect, useRef } from 'react';\nvar useThrottlePlugin = function (fetchInstance, _a) {\n var throttleWait = _a.throttleWait,\n throttleLeading = _a.throttleLeading,\n throttleTrailing = _a.throttleTrailing;\n var throttledRef = useRef();\n var options = {};\n if (throttleLeading !== undefined) {\n options.leading = throttleLeading;\n }\n if (throttleTrailing !== undefined) {\n options.trailing = throttleTrailing;\n }\n useEffect(function () {\n if (throttleWait) {\n var _originRunAsync_1 = fetchInstance.runAsync.bind(fetchInstance);\n throttledRef.current = throttle(function (callback) {\n callback();\n }, throttleWait, options);\n // throttle runAsync should be promise\n // https://github.com/lodash/lodash/issues/4400#issuecomment-834800398\n fetchInstance.runAsync = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new Promise(function (resolve, reject) {\n var _a;\n (_a = throttledRef.current) === null || _a === void 0 ? void 0 : _a.call(throttledRef, function () {\n _originRunAsync_1.apply(void 0, __spreadArray([], __read(args), false)).then(resolve).catch(reject);\n });\n });\n };\n return function () {\n var _a;\n fetchInstance.runAsync = _originRunAsync_1;\n (_a = throttledRef.current) === null || _a === void 0 ? void 0 : _a.cancel();\n };\n }\n }, [throttleWait, throttleLeading, throttleTrailing]);\n if (!throttleWait) {\n return {};\n }\n return {\n onCancel: function () {\n var _a;\n (_a = throttledRef.current) === null || _a === void 0 ? void 0 : _a.cancel();\n }\n };\n};\nexport default useThrottlePlugin;","import { useEffect } from 'react';\nimport { isFunction } from '../utils';\nimport isDev from '../utils/isDev';\nvar useMount = function (fn) {\n if (isDev) {\n if (!isFunction(fn)) {\n console.error(\"useMount: parameter `fn` expected to be a function, but got \\\"\".concat(typeof fn, \"\\\".\"));\n }\n }\n useEffect(function () {\n fn === null || fn === void 0 ? void 0 : fn();\n }, []);\n};\nexport default useMount;","import { __assign, __awaiter, __generator, __read, __rest, __spreadArray } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-parameter-properties */\nimport { isFunction } from '../../utils';\nvar Fetch = /** @class */function () {\n function Fetch(serviceRef, options, subscribe, initState) {\n if (initState === void 0) {\n initState = {};\n }\n this.serviceRef = serviceRef;\n this.options = options;\n this.subscribe = subscribe;\n this.initState = initState;\n this.count = 0;\n this.state = {\n loading: false,\n params: undefined,\n data: undefined,\n error: undefined\n };\n this.state = __assign(__assign(__assign({}, this.state), {\n loading: !options.manual\n }), initState);\n }\n Fetch.prototype.setState = function (s) {\n if (s === void 0) {\n s = {};\n }\n this.state = __assign(__assign({}, this.state), s);\n this.subscribe();\n };\n Fetch.prototype.runPluginHandler = function (event) {\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n // @ts-ignore\n var r = this.pluginImpls.map(function (i) {\n var _a;\n return (_a = i[event]) === null || _a === void 0 ? void 0 : _a.call.apply(_a, __spreadArray([i], __read(rest), false));\n }).filter(Boolean);\n return Object.assign.apply(Object, __spreadArray([{}], __read(r), false));\n };\n Fetch.prototype.runAsync = function () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var currentCount, _l, _m, stopNow, _o, returnNow, state, servicePromise, res, error_1;\n var _p;\n return __generator(this, function (_q) {\n switch (_q.label) {\n case 0:\n this.count += 1;\n currentCount = this.count;\n _l = this.runPluginHandler('onBefore', params), _m = _l.stopNow, stopNow = _m === void 0 ? false : _m, _o = _l.returnNow, returnNow = _o === void 0 ? false : _o, state = __rest(_l, [\"stopNow\", \"returnNow\"]);\n // stop request\n if (stopNow) {\n return [2 /*return*/, new Promise(function () {})];\n }\n this.setState(__assign({\n loading: true,\n params: params\n }, state));\n // return now\n if (returnNow) {\n return [2 /*return*/, Promise.resolve(state.data)];\n }\n (_b = (_a = this.options).onBefore) === null || _b === void 0 ? void 0 : _b.call(_a, params);\n _q.label = 1;\n case 1:\n _q.trys.push([1, 3,, 4]);\n servicePromise = this.runPluginHandler('onRequest', this.serviceRef.current, params).servicePromise;\n if (!servicePromise) {\n servicePromise = (_p = this.serviceRef).current.apply(_p, __spreadArray([], __read(params), false));\n }\n return [4 /*yield*/, servicePromise];\n case 2:\n res = _q.sent();\n if (currentCount !== this.count) {\n // prevent run.then when request is canceled\n return [2 /*return*/, new Promise(function () {})];\n }\n // const formattedResult = this.options.formatResultRef.current ? this.options.formatResultRef.current(res) : res;\n this.setState({\n data: res,\n error: undefined,\n loading: false\n });\n (_d = (_c = this.options).onSuccess) === null || _d === void 0 ? void 0 : _d.call(_c, res, params);\n this.runPluginHandler('onSuccess', res, params);\n (_f = (_e = this.options).onFinally) === null || _f === void 0 ? void 0 : _f.call(_e, params, res, undefined);\n if (currentCount === this.count) {\n this.runPluginHandler('onFinally', params, res, undefined);\n }\n return [2 /*return*/, res];\n case 3:\n error_1 = _q.sent();\n if (currentCount !== this.count) {\n // prevent run.then when request is canceled\n return [2 /*return*/, new Promise(function () {})];\n }\n this.setState({\n error: error_1,\n loading: false\n });\n (_h = (_g = this.options).onError) === null || _h === void 0 ? void 0 : _h.call(_g, error_1, params);\n this.runPluginHandler('onError', error_1, params);\n (_k = (_j = this.options).onFinally) === null || _k === void 0 ? void 0 : _k.call(_j, params, undefined, error_1);\n if (currentCount === this.count) {\n this.runPluginHandler('onFinally', params, undefined, error_1);\n }\n throw error_1;\n case 4:\n return [2 /*return*/];\n }\n });\n });\n };\n\n Fetch.prototype.run = function () {\n var _this = this;\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n this.runAsync.apply(this, __spreadArray([], __read(params), false)).catch(function (error) {\n if (!_this.options.onError) {\n console.error(error);\n }\n });\n };\n Fetch.prototype.cancel = function () {\n this.count += 1;\n this.setState({\n loading: false\n });\n this.runPluginHandler('onCancel');\n };\n Fetch.prototype.refresh = function () {\n // @ts-ignore\n this.run.apply(this, __spreadArray([], __read(this.state.params || []), false));\n };\n Fetch.prototype.refreshAsync = function () {\n // @ts-ignore\n return this.runAsync.apply(this, __spreadArray([], __read(this.state.params || []), false));\n };\n Fetch.prototype.mutate = function (data) {\n var targetData = isFunction(data) ? data(this.state.data) : data;\n this.runPluginHandler('onMutate', targetData);\n this.setState({\n data: targetData\n });\n };\n return Fetch;\n}();\nexport default Fetch;","import { __assign, __read, __rest, __spreadArray } from \"tslib\";\nimport useCreation from '../../useCreation';\nimport useLatest from '../../useLatest';\nimport useMemoizedFn from '../../useMemoizedFn';\nimport useMount from '../../useMount';\nimport useUnmount from '../../useUnmount';\nimport useUpdate from '../../useUpdate';\nimport isDev from '../../utils/isDev';\nimport Fetch from './Fetch';\nfunction useRequestImplement(service, options, plugins) {\n if (options === void 0) {\n options = {};\n }\n if (plugins === void 0) {\n plugins = [];\n }\n var _a = options.manual,\n manual = _a === void 0 ? false : _a,\n rest = __rest(options, [\"manual\"]);\n if (isDev) {\n if (options.defaultParams && !Array.isArray(options.defaultParams)) {\n console.warn(\"expected defaultParams is array, got \".concat(typeof options.defaultParams));\n }\n }\n var fetchOptions = __assign({\n manual: manual\n }, rest);\n var serviceRef = useLatest(service);\n var update = useUpdate();\n var fetchInstance = useCreation(function () {\n var initState = plugins.map(function (p) {\n var _a;\n return (_a = p === null || p === void 0 ? void 0 : p.onInit) === null || _a === void 0 ? void 0 : _a.call(p, fetchOptions);\n }).filter(Boolean);\n return new Fetch(serviceRef, fetchOptions, update, Object.assign.apply(Object, __spreadArray([{}], __read(initState), false)));\n }, []);\n fetchInstance.options = fetchOptions;\n // run all plugins hooks\n fetchInstance.pluginImpls = plugins.map(function (p) {\n return p(fetchInstance, fetchOptions);\n });\n useMount(function () {\n if (!manual) {\n // useCachePlugin can set fetchInstance.state.params from cache when init\n var params = fetchInstance.state.params || options.defaultParams || [];\n // @ts-ignore\n fetchInstance.run.apply(fetchInstance, __spreadArray([], __read(params), false));\n }\n });\n useUnmount(function () {\n fetchInstance.cancel();\n });\n return {\n loading: fetchInstance.state.loading,\n data: fetchInstance.state.data,\n error: fetchInstance.state.error,\n params: fetchInstance.state.params || [],\n cancel: useMemoizedFn(fetchInstance.cancel.bind(fetchInstance)),\n refresh: useMemoizedFn(fetchInstance.refresh.bind(fetchInstance)),\n refreshAsync: useMemoizedFn(fetchInstance.refreshAsync.bind(fetchInstance)),\n run: useMemoizedFn(fetchInstance.run.bind(fetchInstance)),\n runAsync: useMemoizedFn(fetchInstance.runAsync.bind(fetchInstance)),\n mutate: useMemoizedFn(fetchInstance.mutate.bind(fetchInstance))\n };\n}\nexport default useRequestImplement;","import { __read, __spreadArray } from \"tslib\";\nimport useAutoRunPlugin from './plugins/useAutoRunPlugin';\nimport useCachePlugin from './plugins/useCachePlugin';\nimport useDebouncePlugin from './plugins/useDebouncePlugin';\nimport useLoadingDelayPlugin from './plugins/useLoadingDelayPlugin';\nimport usePollingPlugin from './plugins/usePollingPlugin';\nimport useRefreshOnWindowFocusPlugin from './plugins/useRefreshOnWindowFocusPlugin';\nimport useRetryPlugin from './plugins/useRetryPlugin';\nimport useThrottlePlugin from './plugins/useThrottlePlugin';\nimport useRequestImplement from './useRequestImplement';\n// function useRequest(\n// service: Service,\n// options: OptionsWithFormat,\n// plugins?: Plugin[],\n// ): Result\n// function useRequest(\n// service: Service,\n// options?: OptionsWithoutFormat,\n// plugins?: Plugin[],\n// ): Result\nfunction useRequest(service, options, plugins) {\n return useRequestImplement(service, options, __spreadArray(__spreadArray([], __read(plugins || []), false), [useDebouncePlugin, useLoadingDelayPlugin, usePollingPlugin, useRefreshOnWindowFocusPlugin, useThrottlePlugin, useAutoRunPlugin, useCachePlugin, useRetryPlugin], false));\n}\nexport default useRequest;","import useRequest from './src/useRequest';\nimport { clearCache } from './src/utils/cache';\nexport { clearCache };\nexport default useRequest;","import { useLayoutEffect } from 'react';\nimport createEffectWithTarget from './createEffectWithTarget';\nvar useEffectWithTarget = createEffectWithTarget(useLayoutEffect);\nexport default useEffectWithTarget;","import isBrowser from './isBrowser';\nimport useEffectWithTarget from './useEffectWithTarget';\nimport useLayoutEffectWithTarget from './useLayoutEffectWithTarget';\nvar useIsomorphicLayoutEffectWithTarget = isBrowser ? useLayoutEffectWithTarget : useEffectWithTarget;\nexport default useIsomorphicLayoutEffectWithTarget;","import { __read } from \"tslib\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport useRafState from '../useRafState';\nimport { getTargetElement } from '../utils/domTarget';\nimport useIsomorphicLayoutEffectWithTarget from '../utils/useIsomorphicLayoutEffectWithTarget';\nfunction useSize(target) {\n var _a = __read(useRafState(function () {\n var el = getTargetElement(target);\n return el ? {\n width: el.clientWidth,\n height: el.clientHeight\n } : undefined;\n }), 2),\n state = _a[0],\n setState = _a[1];\n useIsomorphicLayoutEffectWithTarget(function () {\n var el = getTargetElement(target);\n if (!el) {\n return;\n }\n var resizeObserver = new ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n var _a = entry.target,\n clientWidth = _a.clientWidth,\n clientHeight = _a.clientHeight;\n setState({\n width: clientWidth,\n height: clientHeight\n });\n });\n });\n resizeObserver.observe(el);\n return function () {\n resizeObserver.disconnect();\n };\n }, [], target);\n return state;\n}\nexport default useSize;","import { useEffect } from 'react';\nimport useLatest from '../useLatest';\nimport { isFunction } from '../utils';\nimport isDev from '../utils/isDev';\nvar useUnmount = function (fn) {\n if (isDev) {\n if (!isFunction(fn)) {\n console.error(\"useUnmount expected parameter is a function, got \".concat(typeof fn));\n }\n }\n var fnRef = useLatest(fn);\n useEffect(function () {\n return function () {\n fnRef.current();\n };\n }, []);\n};\nexport default useUnmount;","import { __read } from \"tslib\";\nimport { useCallback, useState } from 'react';\nvar useUpdate = function () {\n var _a = __read(useState({}), 2),\n setState = _a[1];\n return useCallback(function () {\n return setState({});\n }, []);\n};\nexport default useUpdate;","import { useRef } from 'react';\nimport useUnmount from '../useUnmount';\nimport depsAreSame from './depsAreSame';\nimport { getTargetElement } from './domTarget';\nvar createEffectWithTarget = function (useEffectType) {\n /**\n *\n * @param effect\n * @param deps\n * @param target target should compare ref.current vs ref.current, dom vs dom, ()=>dom vs ()=>dom\n */\n var useEffectWithTarget = function (effect, deps, target) {\n var hasInitRef = useRef(false);\n var lastElementRef = useRef([]);\n var lastDepsRef = useRef([]);\n var unLoadRef = useRef();\n useEffectType(function () {\n var _a;\n var targets = Array.isArray(target) ? target : [target];\n var els = targets.map(function (item) {\n return getTargetElement(item);\n });\n // init run\n if (!hasInitRef.current) {\n hasInitRef.current = true;\n lastElementRef.current = els;\n lastDepsRef.current = deps;\n unLoadRef.current = effect();\n return;\n }\n if (els.length !== lastElementRef.current.length || !depsAreSame(els, lastElementRef.current) || !depsAreSame(deps, lastDepsRef.current)) {\n (_a = unLoadRef.current) === null || _a === void 0 ? void 0 : _a.call(unLoadRef);\n lastElementRef.current = els;\n lastDepsRef.current = deps;\n unLoadRef.current = effect();\n }\n });\n useUnmount(function () {\n var _a;\n (_a = unLoadRef.current) === null || _a === void 0 ? void 0 : _a.call(unLoadRef);\n // for react-refresh\n hasInitRef.current = false;\n });\n };\n return useEffectWithTarget;\n};\nexport default createEffectWithTarget;","export default function depsAreSame(oldDeps, deps) {\n if (oldDeps === deps) return true;\n for (var i = 0; i < oldDeps.length; i++) {\n if (!Object.is(oldDeps[i], deps[i])) return false;\n }\n return true;\n}","import { isFunction } from './index';\nimport isBrowser from './isBrowser';\nexport function getTargetElement(target, defaultElement) {\n if (!isBrowser) {\n return undefined;\n }\n if (!target) {\n return defaultElement;\n }\n var targetElement;\n if (isFunction(target)) {\n targetElement = target();\n } else if ('current' in target) {\n targetElement = target.current;\n } else {\n targetElement = target;\n }\n return targetElement;\n}","export var isObject = function (value) {\n return value !== null && typeof value === 'object';\n};\nexport var isFunction = function (value) {\n return typeof value === 'function';\n};\nexport var isString = function (value) {\n return typeof value === 'string';\n};\nexport var isBoolean = function (value) {\n return typeof value === 'boolean';\n};\nexport var isNumber = function (value) {\n return typeof value === 'number';\n};\nexport var isUndef = function (value) {\n return typeof value === 'undefined';\n};","var isBrowser = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport default isBrowser;","var isDev = process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test';\nexport default isDev;","import { useEffect } from 'react';\nimport createEffectWithTarget from './createEffectWithTarget';\nvar useEffectWithTarget = createEffectWithTarget(useEffect);\nexport default useEffectWithTarget;","import 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}\nconst ActionButton = props => {\n const {\n type,\n children,\n prefixCls,\n buttonProps,\n close,\n autoFocus,\n emitEvent,\n isSilent,\n quitOnNullishReturnValue,\n actionFn\n } = props;\n const clickedRef = React.useRef(false);\n const buttonRef = React.useRef(null);\n const [loading, setLoading] = useState(false);\n const onInternalClose = function () {\n close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n };\n React.useEffect(() => {\n let timeoutId = null;\n if (autoFocus) {\n timeoutId = setTimeout(() => {\n var _a;\n (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n });\n }\n return () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, []);\n const 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 }, e => {\n // See: https://github.com/ant-design/ant-design/issues/6183\n setLoading(false, true);\n clickedRef.current = false;\n // Do not throw if is `await` mode\n if (isSilent === null || isSilent === void 0 ? void 0 : isSilent()) {\n return;\n }\n return Promise.reject(e);\n });\n };\n const onClick = e => {\n if (clickedRef.current) {\n return;\n }\n clickedRef.current = true;\n if (!actionFn) {\n onInternalClose();\n return;\n }\n let returnValueOfOnOk;\n if (emitEvent) {\n returnValueOfOnOk = actionFn(e);\n if (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 return /*#__PURE__*/React.createElement(Button, Object.assign({}, convertLegacyProps(type), {\n onClick: onClick,\n loading: loading,\n prefixCls: prefixCls\n }, buttonProps, {\n ref: buttonRef\n }), children);\n};\nexport default ActionButton;","import useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport ConfigProvider, { ConfigContext } from '../config-provider';\nexport function withPureRenderTheme(Component) {\n return function PureRenderThemeComponent(props) {\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n theme: {\n token: {\n motion: false,\n zIndexPopupBase: 0\n }\n }\n }, /*#__PURE__*/React.createElement(Component, Object.assign({}, props)));\n };\n}\n/* istanbul ignore next */\nexport default function genPurePanel(Component, defaultPrefixCls, getDropdownCls, postProps) {\n function PurePanel(props) {\n const {\n prefixCls: customizePrefixCls,\n style\n } = props;\n const holderRef = React.useRef(null);\n const [popupHeight, setPopupHeight] = React.useState(0);\n const [popupWidth, setPopupWidth] = React.useState(0);\n const [open, setOpen] = useMergedState(false, {\n value: props.open\n });\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls(defaultPrefixCls || 'select', customizePrefixCls);\n React.useEffect(() => {\n // We do not care about ssr\n setOpen(true);\n if (typeof ResizeObserver !== 'undefined') {\n const resizeObserver = new ResizeObserver(entries => {\n const element = entries[0].target;\n setPopupHeight(element.offsetHeight + 8);\n setPopupWidth(element.offsetWidth);\n });\n const interval = setInterval(() => {\n var _a;\n const dropdownCls = getDropdownCls ? `.${getDropdownCls(prefixCls)}` : `.${prefixCls}-dropdown`;\n const popup = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(dropdownCls);\n if (popup) {\n clearInterval(interval);\n resizeObserver.observe(popup);\n }\n }, 10);\n return () => {\n clearInterval(interval);\n resizeObserver.disconnect();\n };\n }\n }, []);\n let mergedProps = Object.assign(Object.assign({}, props), {\n style: Object.assign(Object.assign({}, style), {\n margin: 0\n }),\n open,\n visible: open,\n getPopupContainer: () => holderRef.current\n });\n if (postProps) {\n mergedProps = postProps(mergedProps);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: holderRef,\n style: {\n paddingBottom: popupHeight,\n position: 'relative',\n minWidth: popupWidth\n }\n }, /*#__PURE__*/React.createElement(Component, Object.assign({}, mergedProps)));\n }\n return withPureRenderTheme(PurePanel);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { PresetColors } from '../theme/interface';\nconst inverseColors = PresetColors.map(color => `${color}-inverse`);\nexport const PresetStatusColorTypes = ['success', 'processing', 'error', 'default', 'warning'];\n/**\n * determine if the color keyword belongs to the `Ant Design` {@link PresetColors}.\n * @param color color to be judged\n * @param includeInverse whether to include reversed colors\n */\nexport function isPresetColor(color) {\n let includeInverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (includeInverse) {\n return [].concat(_toConsumableArray(inverseColors), _toConsumableArray(PresetColors)).includes(color);\n }\n return PresetColors.includes(color);\n}\nexport function isPresetStatusColor(color) {\n return PresetStatusColorTypes.includes(color);\n}","function extendsObject() {\n const result = Object.assign({}, arguments.length <= 0 ? undefined : arguments[0]);\n for (let i = 1; i < arguments.length; i++) {\n const obj = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (obj) {\n Object.keys(obj).forEach(key => {\n const val = obj[key];\n if (val !== undefined) {\n result[key] = val;\n }\n });\n }\n }\n return result;\n}\nexport default extendsObject;","export const getRenderPropValue = propValue => {\n if (!propValue) {\n return null;\n }\n if (typeof propValue === 'function') {\n return propValue();\n }\n return propValue;\n};","import CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport React from 'react';\nfunction useInnerClosable(closable, closeIcon, defaultClosable) {\n if (typeof closable === 'boolean') {\n return closable;\n }\n if (closeIcon === undefined) {\n return !!defaultClosable;\n }\n return closeIcon !== false && closeIcon !== null;\n}\nexport default function useClosable(closable, closeIcon, customCloseIconRender) {\n let defaultCloseIcon = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : /*#__PURE__*/React.createElement(CloseOutlined, null);\n let defaultClosable = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n const mergedClosable = useInnerClosable(closable, closeIcon, defaultClosable);\n if (!mergedClosable) {\n return [false, null];\n }\n const mergedCloseIcon = typeof closeIcon === 'boolean' || closeIcon === undefined || closeIcon === null ? defaultCloseIcon : closeIcon;\n return [true, customCloseIconRender ? customCloseIconRender(mergedCloseIcon) : mergedCloseIcon];\n}","import * as React from 'react';\nimport { detectFlexGapSupported } from '../styleChecker';\nexport default (() => {\n const [flexible, setFlexible] = React.useState(false);\n React.useEffect(() => {\n setFlexible(detectFlexGapSupported());\n }, []);\n return flexible;\n});","import * as React from 'react';\nexport default function useForceUpdate() {\n const [, forceUpdate] = React.useReducer(x => x + 1, 0);\n return forceUpdate;\n}","// ================== Collapse Motion ==================\nconst getCollapsedHeight = () => ({\n height: 0,\n opacity: 0\n});\nconst getRealHeight = node => {\n const {\n scrollHeight\n } = node;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\nconst getCurrentHeight = node => ({\n height: node ? node.offsetHeight : 0\n});\nconst skipOpacityTransition = (_, event) => (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\nconst initCollapseMotion = function () {\n let rootCls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'ant';\n return {\n motionName: `${rootCls}-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 };\n};\nconst SelectPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];\nconst getTransitionName = (rootPrefixCls, motion, transitionName) => {\n if (transitionName !== undefined) {\n return transitionName;\n }\n return `${rootPrefixCls}-${motion}`;\n};\nexport { getTransitionName };\nexport default initCollapseMotion;","import { getArrowOffset } from '../style/placementArrow';\nexport function getOverflowOptions(placement, arrowOffset, arrowWidth, autoAdjustOverflow) {\n if (autoAdjustOverflow === false) {\n return {\n adjustX: false,\n adjustY: false\n };\n }\n const overflow = autoAdjustOverflow && typeof autoAdjustOverflow === 'object' ? autoAdjustOverflow : {};\n const baseOverflow = {};\n switch (placement) {\n case 'top':\n case 'bottom':\n baseOverflow.shiftX = arrowOffset.dropdownArrowOffset * 2 + arrowWidth;\n break;\n case 'left':\n case 'right':\n baseOverflow.shiftY = arrowOffset.dropdownArrowOffsetVertical * 2 + arrowWidth;\n break;\n }\n const mergedOverflow = Object.assign(Object.assign({}, baseOverflow), overflow);\n // Support auto shift\n if (!mergedOverflow.shiftX) {\n mergedOverflow.adjustX = true;\n }\n if (!mergedOverflow.shiftY) {\n mergedOverflow.adjustY = true;\n }\n return mergedOverflow;\n}\nconst PlacementAlignMap = {\n left: {\n points: ['cr', 'cl']\n },\n right: {\n points: ['cl', 'cr']\n },\n top: {\n points: ['bc', 'tc']\n },\n bottom: {\n points: ['tc', 'bc']\n },\n topLeft: {\n points: ['bl', 'tl']\n },\n leftTop: {\n points: ['tr', 'tl']\n },\n topRight: {\n points: ['br', 'tr']\n },\n rightTop: {\n points: ['tl', 'tr']\n },\n bottomRight: {\n points: ['tr', 'br']\n },\n rightBottom: {\n points: ['bl', 'br']\n },\n bottomLeft: {\n points: ['tl', 'bl']\n },\n leftBottom: {\n points: ['br', 'bl']\n }\n};\nconst ArrowCenterPlacementAlignMap = {\n topLeft: {\n points: ['bl', 'tc']\n },\n leftTop: {\n points: ['tr', 'cl']\n },\n topRight: {\n points: ['br', 'tc']\n },\n rightTop: {\n points: ['tl', 'cr']\n },\n bottomRight: {\n points: ['tr', 'bc']\n },\n rightBottom: {\n points: ['bl', 'cr']\n },\n bottomLeft: {\n points: ['tl', 'bc']\n },\n leftBottom: {\n points: ['br', 'cl']\n }\n};\nconst DisableAutoArrowList = new Set(['topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom']);\nexport default function getPlacements(config) {\n const {\n arrowWidth,\n autoAdjustOverflow,\n arrowPointAtCenter,\n offset,\n borderRadius,\n visibleFirst\n } = config;\n const halfArrowWidth = arrowWidth / 2;\n const placementMap = {};\n Object.keys(PlacementAlignMap).forEach(key => {\n const template = arrowPointAtCenter && ArrowCenterPlacementAlignMap[key] || PlacementAlignMap[key];\n const placementInfo = Object.assign(Object.assign({}, template), {\n offset: [0, 0]\n });\n placementMap[key] = placementInfo;\n // Disable autoArrow since design is fixed position\n if (DisableAutoArrowList.has(key)) {\n placementInfo.autoArrow = false;\n }\n // Static offset\n switch (key) {\n case 'top':\n case 'topLeft':\n case 'topRight':\n placementInfo.offset[1] = -halfArrowWidth - offset;\n break;\n case 'bottom':\n case 'bottomLeft':\n case 'bottomRight':\n placementInfo.offset[1] = halfArrowWidth + offset;\n break;\n case 'left':\n case 'leftTop':\n case 'leftBottom':\n placementInfo.offset[0] = -halfArrowWidth - offset;\n break;\n case 'right':\n case 'rightTop':\n case 'rightBottom':\n placementInfo.offset[0] = halfArrowWidth + offset;\n break;\n }\n // Dynamic offset\n const arrowOffset = getArrowOffset({\n contentRadius: borderRadius,\n limitVerticalRadius: true\n });\n if (arrowPointAtCenter) {\n switch (key) {\n case 'topLeft':\n case 'bottomLeft':\n placementInfo.offset[0] = -arrowOffset.dropdownArrowOffset - halfArrowWidth;\n break;\n case 'topRight':\n case 'bottomRight':\n placementInfo.offset[0] = arrowOffset.dropdownArrowOffset + halfArrowWidth;\n break;\n case 'leftTop':\n case 'rightTop':\n placementInfo.offset[1] = -arrowOffset.dropdownArrowOffset - halfArrowWidth;\n break;\n case 'leftBottom':\n case 'rightBottom':\n placementInfo.offset[1] = arrowOffset.dropdownArrowOffset + halfArrowWidth;\n break;\n }\n }\n // Overflow\n placementInfo.overflow = getOverflowOptions(key, arrowOffset, arrowWidth, autoAdjustOverflow);\n // VisibleFirst\n if (visibleFirst) {\n placementInfo.htmlRegion = 'visibleFirst';\n }\n });\n return placementMap;\n}","import * as React from 'react';\nexport const {\n isValidElement\n} = React;\nexport function isFragment(child) {\n return child && isValidElement(child) && child.type === React.Fragment;\n}\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element)) {\n return replacement;\n }\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","import React from 'react';\nimport { useToken } from '../theme/internal';\nexport const responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nconst getResponsiveMap = token => ({\n xs: `(max-width: ${token.screenXSMax}px)`,\n sm: `(min-width: ${token.screenSM}px)`,\n md: `(min-width: ${token.screenMD}px)`,\n lg: `(min-width: ${token.screenLG}px)`,\n xl: `(min-width: ${token.screenXL}px)`,\n xxl: `(min-width: ${token.screenXXL}px)`\n});\n/**\n * Ensures that the breakpoints token are valid, in good order\n * For each breakpoint : screenMin <= screen <= screenMax and screenMax <= nextScreenMin\n */\nconst validateBreakpoints = token => {\n const indexableToken = token;\n const revBreakpoints = [].concat(responsiveArray).reverse();\n revBreakpoints.forEach((breakpoint, i) => {\n const breakpointUpper = breakpoint.toUpperCase();\n const screenMin = `screen${breakpointUpper}Min`;\n const screen = `screen${breakpointUpper}`;\n if (!(indexableToken[screenMin] <= indexableToken[screen])) {\n throw new Error(`${screenMin}<=${screen} fails : !(${indexableToken[screenMin]}<=${indexableToken[screen]})`);\n }\n if (i < revBreakpoints.length - 1) {\n const screenMax = `screen${breakpointUpper}Max`;\n if (!(indexableToken[screen] <= indexableToken[screenMax])) {\n throw new Error(`${screen}<=${screenMax} fails : !(${indexableToken[screen]}<=${indexableToken[screenMax]})`);\n }\n const nextBreakpointUpperMin = revBreakpoints[i + 1].toUpperCase();\n const nextScreenMin = `screen${nextBreakpointUpperMin}Min`;\n if (!(indexableToken[screenMax] <= indexableToken[nextScreenMin])) {\n throw new Error(`${screenMax}<=${nextScreenMin} fails : !(${indexableToken[screenMax]}<=${indexableToken[nextScreenMin]})`);\n }\n }\n });\n return token;\n};\nexport default function useResponsiveObserver() {\n const [, token] = useToken();\n const responsiveMap = getResponsiveMap(validateBreakpoints(token));\n // To avoid repeat create instance, we add `useMemo` here.\n return React.useMemo(() => {\n const subscribers = new Map();\n let subUid = -1;\n let screens = {};\n return {\n matchHandlers: {},\n dispatch(pointMap) {\n screens = pointMap;\n subscribers.forEach(func => func(screens));\n return subscribers.size >= 1;\n },\n subscribe(func) {\n if (!subscribers.size) this.register();\n subUid += 1;\n subscribers.set(subUid, func);\n func(screens);\n return subUid;\n },\n unsubscribe(paramToken) {\n subscribers.delete(paramToken);\n if (!subscribers.size) this.unregister();\n },\n unregister() {\n Object.keys(responsiveMap).forEach(screen => {\n const matchMediaQuery = responsiveMap[screen];\n const handler = this.matchHandlers[matchMediaQuery];\n handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n });\n subscribers.clear();\n },\n register() {\n Object.keys(responsiveMap).forEach(screen => {\n const matchMediaQuery = responsiveMap[screen];\n const listener = _ref => {\n let {\n matches\n } = _ref;\n this.dispatch(Object.assign(Object.assign({}, screens), {\n [screen]: matches\n }));\n };\n const mql = window.matchMedia(matchMediaQuery);\n mql.addListener(listener);\n this.matchHandlers[matchMediaQuery] = {\n mql,\n listener\n };\n listener(mql);\n });\n },\n responsiveMap\n };\n }, [token]);\n}","import classNames from 'classnames';\nconst InputStatuses = ['warning', 'error', ''];\nexport function getStatusClassNames(prefixCls, status, hasFeedback) {\n return classNames({\n [`${prefixCls}-status-success`]: status === 'success',\n [`${prefixCls}-status-warning`]: status === 'warning',\n [`${prefixCls}-status-error`]: status === 'error',\n [`${prefixCls}-status-validating`]: status === 'validating',\n [`${prefixCls}-has-feedback`]: hasFeedback\n });\n}\nexport const getMergedStatus = (contextStatus, customStatus) => customStatus || contextStatus;","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nexport const canUseDocElement = () => canUseDom() && window.document.documentElement;\nexport { isStyleSupport };\nlet flexGapSupported;\nexport const 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 const 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 // some browser may not repaint when remove nodes, so we need create a new layer to detect.\n const container = document.createElement('div');\n container.style.position = 'absolute';\n container.style.zIndex = '-9999';\n container.appendChild(flex);\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(container);\n flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n document.body.removeChild(container);\n return flexGapSupported;\n};","import { genComponentStyleHook } from '../../theme/internal';\nconst genWaveStyle = token => {\n const {\n componentCls,\n colorPrimary\n } = token;\n return {\n [componentCls]: {\n position: 'absolute',\n background: 'transparent',\n pointerEvents: 'none',\n boxSizing: 'border-box',\n color: `var(--wave-color, ${colorPrimary})`,\n boxShadow: `0 0 0 0 currentcolor`,\n opacity: 0.2,\n // =================== Motion ===================\n '&.wave-motion-appear': {\n transition: [`box-shadow 0.4s ${token.motionEaseOutCirc}`, `opacity 2s ${token.motionEaseOutCirc}`].join(','),\n '&-active': {\n boxShadow: `0 0 0 6px currentcolor`,\n opacity: 0\n },\n '&.wave-quick': {\n transition: [`box-shadow 0.3s ${token.motionEaseInOut}`, `opacity 0.35s ${token.motionEaseInOut}`].join(',')\n }\n }\n }\n };\n};\nexport default genComponentStyleHook('Wave', token => [genWaveStyle(token)]);","export function isNotGrey(color) {\n // eslint-disable-next-line no-useless-escape\n const match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\d.]*)?\\)/);\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n return true;\n}\nexport function isValidWaveColor(color) {\n return color && color !== '#fff' && color !== '#ffffff' && color !== 'rgb(255, 255, 255)' && color !== 'rgba(255, 255, 255, 1)' && isNotGrey(color) && !/rgba\\((?:\\d*, ){3}0\\)/.test(color) &&\n // any transparent rgba color\n color !== 'transparent';\n}\nexport function getTargetWaveColor(node) {\n const {\n borderTopColor,\n borderColor,\n backgroundColor\n } = getComputedStyle(node);\n if (isValidWaveColor(borderTopColor)) {\n return borderTopColor;\n }\n if (isValidWaveColor(borderColor)) {\n return borderColor;\n }\n if (isValidWaveColor(backgroundColor)) {\n return backgroundColor;\n }\n return null;\n}","import classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { getTargetWaveColor } from './util';\nimport { TARGET_CLS } from './interface';\nfunction validateNum(value) {\n return Number.isNaN(value) ? 0 : value;\n}\nconst WaveEffect = props => {\n const {\n className,\n target,\n component\n } = props;\n const divRef = React.useRef(null);\n const [color, setWaveColor] = React.useState(null);\n const [borderRadius, setBorderRadius] = React.useState([]);\n const [left, setLeft] = React.useState(0);\n const [top, setTop] = React.useState(0);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const [enabled, setEnabled] = React.useState(false);\n const waveStyle = {\n left,\n top,\n width,\n height,\n borderRadius: borderRadius.map(radius => `${radius}px`).join(' ')\n };\n if (color) {\n waveStyle['--wave-color'] = color;\n }\n function syncPos() {\n const nodeStyle = getComputedStyle(target);\n // Get wave color from target\n setWaveColor(getTargetWaveColor(target));\n const isStatic = nodeStyle.position === 'static';\n // Rect\n const {\n borderLeftWidth,\n borderTopWidth\n } = nodeStyle;\n setLeft(isStatic ? target.offsetLeft : validateNum(-parseFloat(borderLeftWidth)));\n setTop(isStatic ? target.offsetTop : validateNum(-parseFloat(borderTopWidth)));\n setWidth(target.offsetWidth);\n setHeight(target.offsetHeight);\n // Get border radius\n const {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius\n } = nodeStyle;\n setBorderRadius([borderTopLeftRadius, borderTopRightRadius, borderBottomRightRadius, borderBottomLeftRadius].map(radius => validateNum(parseFloat(radius))));\n }\n React.useEffect(() => {\n if (target) {\n // We need delay to check position here\n // since UI may change after click\n const id = raf(() => {\n syncPos();\n setEnabled(true);\n });\n // Add resize observer to follow size\n let resizeObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(syncPos);\n resizeObserver.observe(target);\n }\n return () => {\n raf.cancel(id);\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();\n };\n }\n }, []);\n if (!enabled) {\n return null;\n }\n const isSmallComponent = (component === 'Checkbox' || component === 'Radio') && (target === null || target === void 0 ? void 0 : target.classList.contains(TARGET_CLS));\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: true,\n motionAppear: true,\n motionName: \"wave-motion\",\n motionDeadline: 5000,\n onAppearEnd: (_, event) => {\n var _a;\n if (event.deadline || event.propertyName === 'opacity') {\n const holder = (_a = divRef.current) === null || _a === void 0 ? void 0 : _a.parentElement;\n unmount(holder).then(() => {\n holder === null || holder === void 0 ? void 0 : holder.remove();\n });\n }\n return false;\n }\n }, _ref => {\n let {\n className: motionClassName\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: divRef,\n className: classNames(className, {\n 'wave-quick': isSmallComponent\n }, motionClassName),\n style: waveStyle\n });\n });\n};\nconst showWaveEffect = (target, info) => {\n var _a;\n const {\n component\n } = info;\n // Skip for unchecked checkbox\n if (component === 'Checkbox' && !((_a = target.querySelector('input')) === null || _a === void 0 ? void 0 : _a.checked)) {\n return;\n }\n // Create holder\n const holder = document.createElement('div');\n holder.style.position = 'absolute';\n holder.style.left = '0px';\n holder.style.top = '0px';\n target === null || target === void 0 ? void 0 : target.insertBefore(holder, target === null || target === void 0 ? void 0 : target.firstChild);\n render( /*#__PURE__*/React.createElement(WaveEffect, Object.assign({}, info, {\n target: target\n })), holder);\n};\nexport default showWaveEffect;","import * as React from 'react';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport raf from \"rc-util/es/raf\";\nimport showWaveEffect from './WaveEffect';\nimport { ConfigContext } from '../../config-provider';\nimport useToken from '../../theme/useToken';\nimport { TARGET_CLS } from './interface';\nexport default function useWave(nodeRef, className, component) {\n const {\n wave\n } = React.useContext(ConfigContext);\n const [, token, hashId] = useToken();\n const showWave = useEvent(event => {\n const node = nodeRef.current;\n if ((wave === null || wave === void 0 ? void 0 : wave.disabled) || !node) {\n return;\n }\n const targetNode = node.querySelector(`.${TARGET_CLS}`) || node;\n const {\n showEffect\n } = wave || {};\n // Customize wave effect\n (showEffect || showWaveEffect)(targetNode, {\n className,\n token,\n component,\n event,\n hashId\n });\n });\n const rafId = React.useRef();\n // Merge trigger event into one for each frame\n const showDebounceWave = event => {\n raf.cancel(rafId.current);\n rafId.current = raf(() => {\n showWave(event);\n });\n };\n return showDebounceWave;\n}","import classNames from 'classnames';\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport React, { useContext, useRef } from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport { cloneElement } from '../reactNode';\nimport useStyle from './style';\nimport useWave from './useWave';\nconst Wave = props => {\n const {\n children,\n disabled,\n component\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const containerRef = useRef(null);\n // ============================== Style ===============================\n const prefixCls = getPrefixCls('wave');\n const [, hashId] = useStyle(prefixCls);\n // =============================== Wave ===============================\n const showWave = useWave(containerRef, classNames(prefixCls, hashId), component);\n // ============================== Effect ==============================\n React.useEffect(() => {\n const node = containerRef.current;\n if (!node || node.nodeType !== 1 || disabled) {\n return;\n }\n // Click handler\n const onClick = e => {\n // Fix radio button click twice\n if (!isVisible(e.target) ||\n // No need wave\n !node.getAttribute || node.getAttribute('disabled') || node.disabled || node.className.includes('disabled') || node.className.includes('-leave')) {\n return;\n }\n showWave(e);\n };\n // Bind events\n node.addEventListener('click', onClick, true);\n return () => {\n node.removeEventListener('click', onClick, true);\n };\n }, [disabled]);\n // ============================== Render ==============================\n if (! /*#__PURE__*/React.isValidElement(children)) {\n return children !== null && children !== void 0 ? children : null;\n }\n const ref = supportRef(children) ? composeRef(children.ref, containerRef) : containerRef;\n return cloneElement(children, {\n ref\n });\n};\nif (process.env.NODE_ENV !== 'production') {\n Wave.displayName = 'Wave';\n}\nexport default Wave;","export const TARGET_CLS = 'ant-wave-target';","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genAlertTypeStyle = (bgColor, borderColor, iconColor, token, alertCls) => ({\n backgroundColor: bgColor,\n border: `${token.lineWidth}px ${token.lineType} ${borderColor}`,\n [`${alertCls}-icon`]: {\n color: iconColor\n }\n});\nexport const genBaseStyle = token => {\n const {\n componentCls,\n motionDurationSlow: duration,\n marginXS,\n marginSM,\n fontSize,\n fontSizeLG,\n lineHeight,\n borderRadiusLG: borderRadius,\n motionEaseInOutCirc,\n alertIconSizeLG,\n colorText,\n paddingContentVerticalSM,\n alertPaddingHorizontal,\n paddingMD,\n paddingContentHorizontalLG,\n colorTextHeading\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n padding: `${paddingContentVerticalSM}px ${alertPaddingHorizontal}px`,\n wordWrap: 'break-word',\n borderRadius,\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-content`]: {\n flex: 1,\n minWidth: 0\n },\n [`${componentCls}-icon`]: {\n marginInlineEnd: marginXS,\n lineHeight: 0\n },\n [`&-description`]: {\n display: 'none',\n fontSize,\n lineHeight\n },\n '&-message': {\n color: colorText\n },\n [`&${componentCls}-motion-leave`]: {\n overflow: 'hidden',\n opacity: 1,\n transition: `max-height ${duration} ${motionEaseInOutCirc}, opacity ${duration} ${motionEaseInOutCirc},\n padding-top ${duration} ${motionEaseInOutCirc}, padding-bottom ${duration} ${motionEaseInOutCirc},\n margin-bottom ${duration} ${motionEaseInOutCirc}`\n },\n [`&${componentCls}-motion-leave-active`]: {\n maxHeight: 0,\n marginBottom: '0 !important',\n paddingTop: 0,\n paddingBottom: 0,\n opacity: 0\n }\n }),\n [`${componentCls}-with-description`]: {\n alignItems: 'flex-start',\n paddingInline: paddingContentHorizontalLG,\n paddingBlock: paddingMD,\n [`${componentCls}-icon`]: {\n marginInlineEnd: marginSM,\n fontSize: alertIconSizeLG,\n lineHeight: 0\n },\n [`${componentCls}-message`]: {\n display: 'block',\n marginBottom: marginXS,\n color: colorTextHeading,\n fontSize: fontSizeLG\n },\n [`${componentCls}-description`]: {\n display: 'block'\n }\n },\n [`${componentCls}-banner`]: {\n marginBottom: 0,\n border: '0 !important',\n borderRadius: 0\n }\n };\n};\nexport const genTypeStyle = token => {\n const {\n componentCls,\n colorSuccess,\n colorSuccessBorder,\n colorSuccessBg,\n colorWarning,\n colorWarningBorder,\n colorWarningBg,\n colorError,\n colorErrorBorder,\n colorErrorBg,\n colorInfo,\n colorInfoBorder,\n colorInfoBg\n } = token;\n return {\n [componentCls]: {\n '&-success': genAlertTypeStyle(colorSuccessBg, colorSuccessBorder, colorSuccess, token, componentCls),\n '&-info': genAlertTypeStyle(colorInfoBg, colorInfoBorder, colorInfo, token, componentCls),\n '&-warning': genAlertTypeStyle(colorWarningBg, colorWarningBorder, colorWarning, token, componentCls),\n '&-error': Object.assign(Object.assign({}, genAlertTypeStyle(colorErrorBg, colorErrorBorder, colorError, token, componentCls)), {\n [`${componentCls}-description > pre`]: {\n margin: 0,\n padding: 0\n }\n })\n }\n };\n};\nexport const genActionStyle = token => {\n const {\n componentCls,\n iconCls,\n motionDurationMid,\n marginXS,\n fontSizeIcon,\n colorIcon,\n colorIconHover\n } = token;\n return {\n [componentCls]: {\n [`&-action`]: {\n marginInlineStart: marginXS\n },\n [`${componentCls}-close-icon`]: {\n marginInlineStart: marginXS,\n padding: 0,\n overflow: 'hidden',\n fontSize: fontSizeIcon,\n lineHeight: `${fontSizeIcon}px`,\n backgroundColor: 'transparent',\n border: 'none',\n outline: 'none',\n cursor: 'pointer',\n [`${iconCls}-close`]: {\n color: colorIcon,\n transition: `color ${motionDurationMid}`,\n '&:hover': {\n color: colorIconHover\n }\n }\n },\n '&-close-text': {\n color: colorIcon,\n transition: `color ${motionDurationMid}`,\n '&:hover': {\n color: colorIconHover\n }\n }\n }\n };\n};\nexport const genAlertStyle = token => [genBaseStyle(token), genTypeStyle(token), genActionStyle(token)];\nexport default genComponentStyleHook('Alert', token => {\n const {\n fontSizeHeading3\n } = token;\n const alertToken = mergeToken(token, {\n alertIconSizeLG: fontSizeHeading3,\n alertPaddingHorizontal: 12 // Fixed value here.\n });\n\n return [genAlertStyle(alertToken)];\n});","var __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 CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport { replaceElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\n// CSSINJS\nimport useStyle from './style';\nconst iconMapFilled = {\n success: CheckCircleFilled,\n info: InfoCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled\n};\nconst IconNode = props => {\n const {\n icon,\n prefixCls,\n type\n } = props;\n const iconType = iconMapFilled[type] || null;\n if (icon) {\n return replaceElement(icon, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-icon`\n }, icon), () => ({\n className: classNames(`${prefixCls}-icon`, {\n [icon.props.className]: icon.props.className\n })\n }));\n }\n return /*#__PURE__*/React.createElement(iconType, {\n className: `${prefixCls}-icon`\n });\n};\nconst CloseIcon = props => {\n const {\n isClosable,\n prefixCls,\n closeIcon,\n handleClose\n } = props;\n const mergedCloseIcon = closeIcon === true || closeIcon === undefined ? /*#__PURE__*/React.createElement(CloseOutlined, null) : closeIcon;\n return isClosable ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: handleClose,\n className: `${prefixCls}-close-icon`,\n tabIndex: 0\n }, mergedCloseIcon) : null;\n};\nconst Alert = props => {\n const {\n description,\n prefixCls: customizePrefixCls,\n message,\n banner,\n className,\n rootClassName,\n style,\n onMouseEnter,\n onMouseLeave,\n onClick,\n afterClose,\n showIcon,\n closable,\n closeText,\n closeIcon,\n action\n } = props,\n otherProps = __rest(props, [\"description\", \"prefixCls\", \"message\", \"banner\", \"className\", \"rootClassName\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"afterClose\", \"showIcon\", \"closable\", \"closeText\", \"closeIcon\", \"action\"]);\n const [closed, setClosed] = React.useState(false);\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!closeText, 'Alert', '`closeText` is deprecated. Please use `closeIcon` instead.') : void 0;\n }\n const ref = React.useRef(null);\n const {\n getPrefixCls,\n direction,\n alert\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('alert', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const handleClose = e => {\n var _a;\n setClosed(true);\n (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props, e);\n };\n const type = React.useMemo(() => {\n if (props.type !== undefined) {\n return props.type;\n }\n // banner mode defaults to 'warning'\n return banner ? 'warning' : 'info';\n }, [props.type, banner]);\n // closeable when closeText or closeIcon is assigned\n const isClosable = React.useMemo(() => {\n if (closeText) {\n return true;\n }\n if (typeof closable === 'boolean') {\n return closable;\n }\n // should be true when closeIcon is 0 or ''\n return closeIcon !== false && closeIcon !== null && closeIcon !== undefined;\n }, [closeText, closeIcon, closable]);\n // banner mode defaults to Icon\n const isShowIcon = banner && showIcon === undefined ? true : showIcon;\n const alertCls = classNames(prefixCls, `${prefixCls}-${type}`, {\n [`${prefixCls}-with-description`]: !!description,\n [`${prefixCls}-no-icon`]: !isShowIcon,\n [`${prefixCls}-banner`]: !!banner,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, alert === null || alert === void 0 ? void 0 : alert.className, className, rootClassName, hashId);\n const restProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n return wrapSSR( /*#__PURE__*/React.createElement(CSSMotion, {\n visible: !closed,\n motionName: `${prefixCls}-motion`,\n motionAppear: false,\n motionEnter: false,\n onLeaveStart: node => ({\n maxHeight: node.offsetHeight\n }),\n onLeaveEnd: afterClose\n }, _ref => {\n let {\n className: motionClassName,\n style: motionStyle\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: ref,\n \"data-show\": !closed,\n className: classNames(alertCls, motionClassName),\n style: Object.assign(Object.assign(Object.assign({}, alert === null || alert === void 0 ? void 0 : alert.style), style), motionStyle),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n role: \"alert\"\n }, restProps), isShowIcon ? /*#__PURE__*/React.createElement(IconNode, {\n description: description,\n icon: props.icon,\n prefixCls: prefixCls,\n type: type\n }) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-content`\n }, message ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-message`\n }, message) : null, description ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, description) : null), action ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-action`\n }, action) : null, /*#__PURE__*/React.createElement(CloseIcon, {\n isClosable: isClosable,\n prefixCls: prefixCls,\n closeIcon: closeText || closeIcon,\n handleClose: handleClose\n }));\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n Alert.displayName = 'Alert';\n}\nexport default Alert;","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 * as React from 'react';\nimport Alert from './Alert';\nlet ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n _inherits(ErrorBoundary, _React$Component);\n var _super = _createSuper(ErrorBoundary);\n function ErrorBoundary() {\n var _this;\n _classCallCheck(this, ErrorBoundary);\n _this = _super.apply(this, arguments);\n _this.state = {\n error: undefined,\n info: {\n componentStack: ''\n }\n };\n return _this;\n }\n _createClass(ErrorBoundary, [{\n key: \"componentDidCatch\",\n value: function componentDidCatch(error, info) {\n this.setState({\n error,\n info\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n const {\n message,\n description,\n children\n } = this.props;\n const {\n error,\n info\n } = this.state;\n const componentStack = info && info.componentStack ? info.componentStack : null;\n const errorMessage = typeof message === 'undefined' ? (error || '').toString() : message;\n const errorDescription = typeof description === 'undefined' ? componentStack : description;\n if (error) {\n return /*#__PURE__*/React.createElement(Alert, {\n type: \"error\",\n message: errorMessage,\n description: /*#__PURE__*/React.createElement(\"pre\", {\n style: {\n fontSize: '0.9em',\n overflowX: 'auto'\n }\n }, errorDescription)\n });\n }\n return children;\n }\n }]);\n return ErrorBoundary;\n}(React.Component);\nexport default ErrorBoundary;","'use client';\n\nimport InternalAlert from './Alert';\nimport ErrorBoundary from './ErrorBoundary';\nconst Alert = InternalAlert;\nAlert.ErrorBoundary = ErrorBoundary;\nexport default Alert;","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nconst IconWrapper = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n className,\n style,\n children,\n prefixCls\n } = props;\n const iconWrapperCls = classNames(`${prefixCls}-icon`, className);\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: ref,\n className: iconWrapperCls,\n style: style\n }, children);\n});\nexport default IconWrapper;","import LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport React, { forwardRef } from 'react';\nimport IconWrapper from './IconWrapper';\nconst InnerLoadingIcon = /*#__PURE__*/forwardRef((_ref, ref) => {\n let {\n prefixCls,\n className,\n style,\n iconClassName\n } = _ref;\n const mergedIconCls = classNames(`${prefixCls}-loading-icon`, className);\n return /*#__PURE__*/React.createElement(IconWrapper, {\n prefixCls: prefixCls,\n className: mergedIconCls,\n style: style,\n ref: ref\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: iconClassName\n }));\n});\nconst getCollapsedWidth = () => ({\n width: 0,\n opacity: 0,\n transform: 'scale(0)'\n});\nconst getRealWidth = node => ({\n width: node.scrollWidth,\n opacity: 1,\n transform: 'scale(1)'\n});\nconst LoadingIcon = props => {\n const {\n prefixCls,\n loading,\n existIcon,\n className,\n style\n } = props;\n const visible = !!loading;\n if (existIcon) {\n return /*#__PURE__*/React.createElement(InnerLoadingIcon, {\n prefixCls: prefixCls,\n className: className,\n style: style\n });\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n // We do not really use this motionName\n motionName: `${prefixCls}-loading-icon-motion`,\n removeOnLeave: true,\n onAppearStart: getCollapsedWidth,\n onAppearActive: getRealWidth,\n onEnterStart: getCollapsedWidth,\n onEnterActive: getRealWidth,\n onLeaveStart: getRealWidth,\n onLeaveActive: getCollapsedWidth\n }, (_ref2, ref) => {\n let {\n className: motionCls,\n style: motionStyle\n } = _ref2;\n return /*#__PURE__*/React.createElement(InnerLoadingIcon, {\n prefixCls: prefixCls,\n className: className,\n style: Object.assign(Object.assign({}, style), motionStyle),\n ref: ref,\n iconClassName: motionCls\n });\n });\n};\nexport default LoadingIcon;","var __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 warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { useToken } from '../theme/internal';\nexport const GroupSizeContext = /*#__PURE__*/React.createContext(undefined);\nconst ButtonGroup = props => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n size,\n className\n } = props,\n others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n const prefixCls = getPrefixCls('btn-group', customizePrefixCls);\n const [,, hashId] = useToken();\n let sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n case 'middle':\n case undefined:\n break;\n default:\n process.env.NODE_ENV !== \"production\" ? warning(!size, 'Button.Group', 'Invalid prop `size`.') : void 0;\n }\n const classes = classNames(prefixCls, {\n [`${prefixCls}-${sizeCls}`]: sizeCls,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n return /*#__PURE__*/React.createElement(GroupSizeContext.Provider, {\n value: size\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classes\n })));\n};\nexport default ButtonGroup;","import React from 'react';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nconst rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nexport const isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nexport function isString(str) {\n return typeof str === 'string';\n}\nexport function isUnBorderedButtonType(type) {\n return type === 'text' || type === 'link';\n}\nfunction splitCNCharsBySpace(child, needInserted) {\n if (child === null || child === undefined) {\n return;\n }\n const SPACE = needInserted ? ' ' : '';\n if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n return cloneElement(child, {\n children: child.props.children.split('').join(SPACE)\n });\n }\n if (isString(child)) {\n return isTwoCNChar(child) ? /*#__PURE__*/React.createElement(\"span\", null, child.split('').join(SPACE)) : /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n if (isFragment(child)) {\n return /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n return child;\n}\nexport function spaceChildren(children, needInserted) {\n let isPrevChildPure = false;\n const childList = [];\n React.Children.forEach(children, child => {\n const type = typeof child;\n const isCurrentChildPure = type === 'string' || type === 'number';\n if (isPrevChildPure && isCurrentChildPure) {\n const lastIndex = childList.length - 1;\n const lastChild = childList[lastIndex];\n childList[lastIndex] = `${lastChild}${child}`;\n } else {\n childList.push(child);\n }\n isPrevChildPure = isCurrentChildPure;\n });\n return React.Children.map(childList, child => splitCNCharsBySpace(child, needInserted));\n}\nconst ButtonTypes = ['default', 'primary', 'dashed', 'link', 'text'];\nconst ButtonShapes = ['default', 'circle', 'round'];\nconst ButtonHTMLTypes = ['submit', 'button', 'reset'];","function compactItemVerticalBorder(token, parentCls) {\n return {\n // border collapse\n [`&-item:not(${parentCls}-last-item)`]: {\n marginBottom: -token.lineWidth\n },\n '&-item': {\n '&:hover,&:focus,&:active': {\n zIndex: 2\n },\n '&[disabled]': {\n zIndex: 0\n }\n }\n };\n}\nfunction compactItemBorderVerticalRadius(prefixCls, parentCls) {\n return {\n [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item)`]: {\n borderRadius: 0\n },\n [`&-item${parentCls}-first-item:not(${parentCls}-last-item)`]: {\n [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n borderEndEndRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`&-item${parentCls}-last-item:not(${parentCls}-first-item)`]: {\n [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n borderStartStartRadius: 0,\n borderStartEndRadius: 0\n }\n }\n };\n}\nexport function genCompactItemVerticalStyle(token) {\n const compactCls = `${token.componentCls}-compact-vertical`;\n return {\n [compactCls]: Object.assign(Object.assign({}, compactItemVerticalBorder(token, compactCls)), compactItemBorderVerticalRadius(token.componentCls, compactCls))\n };\n}","const genButtonBorderStyle = (buttonTypeCls, borderColor) => ({\n // Border\n [`> span, > ${buttonTypeCls}`]: {\n '&:not(:last-child)': {\n [`&, & > ${buttonTypeCls}`]: {\n '&:not(:disabled)': {\n borderInlineEndColor: borderColor\n }\n }\n },\n '&:not(:first-child)': {\n [`&, & > ${buttonTypeCls}`]: {\n '&:not(:disabled)': {\n borderInlineStartColor: borderColor\n }\n }\n }\n }\n});\nconst genGroupStyle = token => {\n const {\n componentCls,\n fontSize,\n lineWidth,\n colorPrimaryHover,\n colorErrorHover\n } = token;\n return {\n [`${componentCls}-group`]: [{\n position: 'relative',\n display: 'inline-flex',\n // Border\n [`> span, > ${componentCls}`]: {\n '&:not(:last-child)': {\n [`&, & > ${componentCls}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n '&:not(:first-child)': {\n marginInlineStart: -lineWidth,\n [`&, & > ${componentCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n },\n [componentCls]: {\n position: 'relative',\n zIndex: 1,\n [`&:hover,\n &:focus,\n &:active`]: {\n zIndex: 2\n },\n '&[disabled]': {\n zIndex: 0\n }\n },\n [`${componentCls}-icon-only`]: {\n fontSize\n }\n },\n // Border Color\n genButtonBorderStyle(`${componentCls}-primary`, colorPrimaryHover), genButtonBorderStyle(`${componentCls}-danger`, colorErrorHover)]\n };\n};\nexport default genGroupStyle;","import { genFocusStyle } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genCompactItemVerticalStyle } from '../../style/compact-item-vertical';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genGroupStyle from './group';\n// ============================== Shared ==============================\nconst genSharedButtonStyle = token => {\n const {\n componentCls,\n iconCls,\n buttonFontWeight\n } = token;\n return {\n [componentCls]: {\n outline: 'none',\n position: 'relative',\n display: 'inline-block',\n fontWeight: buttonFontWeight,\n whiteSpace: 'nowrap',\n textAlign: 'center',\n backgroundImage: 'none',\n backgroundColor: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n userSelect: 'none',\n touchAction: 'manipulation',\n lineHeight: token.lineHeight,\n color: token.colorText,\n '&:disabled > *': {\n pointerEvents: 'none'\n },\n '> span': {\n display: 'inline-block'\n },\n [`${componentCls}-icon`]: {\n lineHeight: 0\n },\n // Leave a space between icon and text.\n [`> ${iconCls} + span, > span + ${iconCls}`]: {\n marginInlineStart: token.marginXS\n },\n [`&:not(${componentCls}-icon-only) > ${componentCls}-icon`]: {\n [`&${componentCls}-loading-icon, &:not(:last-child)`]: {\n marginInlineEnd: token.marginXS\n }\n },\n '> a': {\n color: 'currentColor'\n },\n '&:not(:disabled)': Object.assign({}, genFocusStyle(token)),\n // make `btn-icon-only` not too narrow\n [`&-icon-only${componentCls}-compact-item`]: {\n flex: 'none'\n },\n // Special styles for Primary Button\n [`&-compact-item${componentCls}-primary`]: {\n [`&:not([disabled]) + ${componentCls}-compact-item${componentCls}-primary:not([disabled])`]: {\n position: 'relative',\n '&:before': {\n position: 'absolute',\n top: -token.lineWidth,\n insetInlineStart: -token.lineWidth,\n display: 'inline-block',\n width: token.lineWidth,\n height: `calc(100% + ${token.lineWidth * 2}px)`,\n backgroundColor: token.colorPrimaryHover,\n content: '\"\"'\n }\n }\n },\n // Special styles for Primary Button\n '&-compact-vertical-item': {\n [`&${componentCls}-primary`]: {\n [`&:not([disabled]) + ${componentCls}-compact-vertical-item${componentCls}-primary:not([disabled])`]: {\n position: 'relative',\n '&:before': {\n position: 'absolute',\n top: -token.lineWidth,\n insetInlineStart: -token.lineWidth,\n display: 'inline-block',\n width: `calc(100% + ${token.lineWidth * 2}px)`,\n height: token.lineWidth,\n backgroundColor: token.colorPrimaryHover,\n content: '\"\"'\n }\n }\n }\n }\n }\n };\n};\nconst genHoverActiveButtonStyle = (btnCls, hoverStyle, activeStyle) => ({\n [`&:not(:disabled):not(${btnCls}-disabled)`]: {\n '&:hover': hoverStyle,\n '&:active': activeStyle\n }\n});\n// ============================== Shape ===============================\nconst genCircleButtonStyle = token => ({\n minWidth: token.controlHeight,\n paddingInlineStart: 0,\n paddingInlineEnd: 0,\n borderRadius: '50%'\n});\nconst genRoundButtonStyle = token => ({\n borderRadius: token.controlHeight,\n paddingInlineStart: token.controlHeight / 2,\n paddingInlineEnd: token.controlHeight / 2\n});\n// =============================== Type ===============================\nconst genDisabledStyle = token => ({\n cursor: 'not-allowed',\n borderColor: token.colorBorder,\n color: token.colorTextDisabled,\n backgroundColor: token.colorBgContainerDisabled,\n boxShadow: 'none'\n});\nconst genGhostButtonStyle = (btnCls, textColor, borderColor, textColorDisabled, borderColorDisabled, hoverStyle, activeStyle) => ({\n [`&${btnCls}-background-ghost`]: Object.assign(Object.assign({\n color: textColor || undefined,\n backgroundColor: 'transparent',\n borderColor: borderColor || undefined,\n boxShadow: 'none'\n }, genHoverActiveButtonStyle(btnCls, Object.assign({\n backgroundColor: 'transparent'\n }, hoverStyle), Object.assign({\n backgroundColor: 'transparent'\n }, activeStyle))), {\n '&:disabled': {\n cursor: 'not-allowed',\n color: textColorDisabled || undefined,\n borderColor: borderColorDisabled || undefined\n }\n })\n});\nconst genSolidDisabledButtonStyle = token => ({\n [`&:disabled, &${token.componentCls}-disabled`]: Object.assign({}, genDisabledStyle(token))\n});\nconst genSolidButtonStyle = token => Object.assign({}, genSolidDisabledButtonStyle(token));\nconst genPureDisabledButtonStyle = token => ({\n [`&:disabled, &${token.componentCls}-disabled`]: {\n cursor: 'not-allowed',\n color: token.colorTextDisabled\n }\n});\n// Type: Default\nconst genDefaultButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genSolidButtonStyle(token)), {\n backgroundColor: token.colorBgContainer,\n borderColor: token.colorBorder,\n boxShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlTmpOutline}`\n}), genHoverActiveButtonStyle(token.componentCls, {\n color: token.colorPrimaryHover,\n borderColor: token.colorPrimaryHover\n}, {\n color: token.colorPrimaryActive,\n borderColor: token.colorPrimaryActive\n})), genGhostButtonStyle(token.componentCls, token.colorBgContainer, token.colorBgContainer, token.colorTextDisabled, token.colorBorder)), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign(Object.assign({\n color: token.colorError,\n borderColor: token.colorError\n }, genHoverActiveButtonStyle(token.componentCls, {\n color: token.colorErrorHover,\n borderColor: token.colorErrorBorderHover\n }, {\n color: token.colorErrorActive,\n borderColor: token.colorErrorActive\n })), genGhostButtonStyle(token.componentCls, token.colorError, token.colorError, token.colorTextDisabled, token.colorBorder)), genSolidDisabledButtonStyle(token))\n});\n// Type: Primary\nconst genPrimaryButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genSolidButtonStyle(token)), {\n color: token.colorTextLightSolid,\n backgroundColor: token.colorPrimary,\n boxShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlOutline}`\n}), genHoverActiveButtonStyle(token.componentCls, {\n color: token.colorTextLightSolid,\n backgroundColor: token.colorPrimaryHover\n}, {\n color: token.colorTextLightSolid,\n backgroundColor: token.colorPrimaryActive\n})), genGhostButtonStyle(token.componentCls, token.colorPrimary, token.colorPrimary, token.colorTextDisabled, token.colorBorder, {\n color: token.colorPrimaryHover,\n borderColor: token.colorPrimaryHover\n}, {\n color: token.colorPrimaryActive,\n borderColor: token.colorPrimaryActive\n})), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign(Object.assign({\n backgroundColor: token.colorError,\n boxShadow: `0 ${token.controlOutlineWidth}px 0 ${token.colorErrorOutline}`\n }, genHoverActiveButtonStyle(token.componentCls, {\n backgroundColor: token.colorErrorHover\n }, {\n backgroundColor: token.colorErrorActive\n })), genGhostButtonStyle(token.componentCls, token.colorError, token.colorError, token.colorTextDisabled, token.colorBorder, {\n color: token.colorErrorHover,\n borderColor: token.colorErrorHover\n }, {\n color: token.colorErrorActive,\n borderColor: token.colorErrorActive\n })), genSolidDisabledButtonStyle(token))\n});\n// Type: Dashed\nconst genDashedButtonStyle = token => Object.assign(Object.assign({}, genDefaultButtonStyle(token)), {\n borderStyle: 'dashed'\n});\n// Type: Link\nconst genLinkButtonStyle = token => Object.assign(Object.assign(Object.assign({\n color: token.colorLink\n}, genHoverActiveButtonStyle(token.componentCls, {\n color: token.colorLinkHover\n}, {\n color: token.colorLinkActive\n})), genPureDisabledButtonStyle(token)), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign({\n color: token.colorError\n }, genHoverActiveButtonStyle(token.componentCls, {\n color: token.colorErrorHover\n }, {\n color: token.colorErrorActive\n })), genPureDisabledButtonStyle(token))\n});\n// Type: Text\nconst genTextButtonStyle = token => Object.assign(Object.assign(Object.assign({}, genHoverActiveButtonStyle(token.componentCls, {\n color: token.colorText,\n backgroundColor: token.colorBgTextHover\n}, {\n color: token.colorText,\n backgroundColor: token.colorBgTextActive\n})), genPureDisabledButtonStyle(token)), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign({\n color: token.colorError\n }, genPureDisabledButtonStyle(token)), genHoverActiveButtonStyle(token.componentCls, {\n color: token.colorErrorHover,\n backgroundColor: token.colorErrorBg\n }, {\n color: token.colorErrorHover,\n backgroundColor: token.colorErrorBg\n }))\n});\nconst genTypeButtonStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-default`]: genDefaultButtonStyle(token),\n [`${componentCls}-primary`]: genPrimaryButtonStyle(token),\n [`${componentCls}-dashed`]: genDashedButtonStyle(token),\n [`${componentCls}-link`]: genLinkButtonStyle(token),\n [`${componentCls}-text`]: genTextButtonStyle(token),\n [`${componentCls}-ghost`]: genGhostButtonStyle(token.componentCls, token.colorBgContainer, token.colorBgContainer, token.colorTextDisabled, token.colorBorder)\n };\n};\n// =============================== Size ===============================\nconst genSizeButtonStyle = function (token) {\n let sizePrefixCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const {\n componentCls,\n controlHeight,\n fontSize,\n lineHeight,\n lineWidth,\n borderRadius,\n buttonPaddingHorizontal,\n iconCls\n } = token;\n const paddingVertical = Math.max(0, (controlHeight - fontSize * lineHeight) / 2 - lineWidth);\n const paddingHorizontal = buttonPaddingHorizontal - lineWidth;\n const iconOnlyCls = `${componentCls}-icon-only`;\n return [\n // Size\n {\n [`${componentCls}${sizePrefixCls}`]: {\n fontSize,\n height: controlHeight,\n padding: `${paddingVertical}px ${paddingHorizontal}px`,\n borderRadius,\n [`&${iconOnlyCls}`]: {\n width: controlHeight,\n paddingInlineStart: 0,\n paddingInlineEnd: 0,\n [`&${componentCls}-round`]: {\n width: 'auto'\n },\n [iconCls]: {\n fontSize: token.buttonIconOnlyFontSize\n }\n },\n // Loading\n [`&${componentCls}-loading`]: {\n opacity: token.opacityLoading,\n cursor: 'default'\n },\n [`${componentCls}-loading-icon`]: {\n transition: `width ${token.motionDurationSlow} ${token.motionEaseInOut}, opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`\n }\n }\n },\n // Shape - patch prefixCls again to override solid border radius style\n {\n [`${componentCls}${componentCls}-circle${sizePrefixCls}`]: genCircleButtonStyle(token)\n }, {\n [`${componentCls}${componentCls}-round${sizePrefixCls}`]: genRoundButtonStyle(token)\n }];\n};\nconst genSizeBaseButtonStyle = token => genSizeButtonStyle(token);\nconst genSizeSmallButtonStyle = token => {\n const smallToken = mergeToken(token, {\n controlHeight: token.controlHeightSM,\n padding: token.paddingXS,\n buttonPaddingHorizontal: 8,\n borderRadius: token.borderRadiusSM,\n buttonIconOnlyFontSize: token.fontSizeLG - 2\n });\n return genSizeButtonStyle(smallToken, `${token.componentCls}-sm`);\n};\nconst genSizeLargeButtonStyle = token => {\n const largeToken = mergeToken(token, {\n controlHeight: token.controlHeightLG,\n fontSize: token.fontSizeLG,\n borderRadius: token.borderRadiusLG,\n buttonIconOnlyFontSize: token.fontSizeLG + 2\n });\n return genSizeButtonStyle(largeToken, `${token.componentCls}-lg`);\n};\nconst genBlockButtonStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n [`&${componentCls}-block`]: {\n width: '100%'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Button', token => {\n const {\n controlTmpOutline,\n paddingContentHorizontal\n } = token;\n const buttonToken = mergeToken(token, {\n colorOutlineDefault: controlTmpOutline,\n buttonPaddingHorizontal: paddingContentHorizontal,\n buttonIconOnlyFontSize: token.fontSizeLG,\n buttonFontWeight: 400\n });\n return [\n // Shared\n genSharedButtonStyle(buttonToken),\n // Size\n genSizeSmallButtonStyle(buttonToken), genSizeBaseButtonStyle(buttonToken), genSizeLargeButtonStyle(buttonToken),\n // Block\n genBlockButtonStyle(buttonToken),\n // Group (type, ghost, danger, loading)\n genTypeButtonStyle(buttonToken),\n // Button Group\n genGroupStyle(buttonToken),\n // Space Compact\n genCompactItemStyle(token), genCompactItemVerticalStyle(token)];\n});","var __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};\n/* eslint-disable react/button-has-type */\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport React, { Children, createRef, forwardRef, useContext, useEffect, useMemo, useState } from 'react';\nimport warning from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { useCompactItemContext } from '../space/Compact';\nimport IconWrapper from './IconWrapper';\nimport LoadingIcon from './LoadingIcon';\nimport Group, { GroupSizeContext } from './button-group';\nimport { isTwoCNChar, isUnBorderedButtonType, spaceChildren } from './buttonHelpers';\nimport useStyle from './style';\nexport function convertLegacyProps(type) {\n if (type === 'danger') {\n return {\n danger: true\n };\n }\n return {\n type\n };\n}\nfunction getLoadingConfig(loading) {\n if (typeof loading === 'object' && loading) {\n const delay = loading === null || loading === void 0 ? void 0 : loading.delay;\n const isDelay = !Number.isNaN(delay) && typeof delay === 'number';\n return {\n loading: false,\n delay: isDelay ? delay : 0\n };\n }\n return {\n loading: !!loading,\n delay: 0\n };\n}\nconst InternalButton = (props, ref) => {\n var _a, _b;\n const {\n loading = false,\n prefixCls: customizePrefixCls,\n type = 'default',\n danger,\n shape = 'default',\n size: customizeSize,\n styles,\n disabled: customDisabled,\n className,\n rootClassName,\n children,\n icon,\n ghost = false,\n block = false,\n // React does not recognize the `htmlType` prop on a DOM element. Here we pick it out of `rest`.\n htmlType = 'button',\n classNames: customClassNames,\n style: customStyle = {}\n } = props,\n rest = __rest(props, [\"loading\", \"prefixCls\", \"type\", \"danger\", \"shape\", \"size\", \"styles\", \"disabled\", \"className\", \"rootClassName\", \"children\", \"icon\", \"ghost\", \"block\", \"htmlType\", \"classNames\", \"style\"]);\n const {\n getPrefixCls,\n autoInsertSpaceInButton,\n direction,\n button\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('btn', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const disabled = useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const groupSize = useContext(GroupSizeContext);\n const loadingOrDelay = useMemo(() => getLoadingConfig(loading), [loading]);\n const [innerLoading, setLoading] = useState(loadingOrDelay.loading);\n const [hasTwoCNChar, setHasTwoCNChar] = useState(false);\n const internalRef = /*#__PURE__*/createRef();\n const buttonRef = composeRef(ref, internalRef);\n const needInserted = Children.count(children) === 1 && !icon && !isUnBorderedButtonType(type);\n useEffect(() => {\n let delayTimer = null;\n if (loadingOrDelay.delay > 0) {\n delayTimer = setTimeout(() => {\n delayTimer = null;\n setLoading(true);\n }, loadingOrDelay.delay);\n } else {\n setLoading(loadingOrDelay.loading);\n }\n function cleanupTimer() {\n if (delayTimer) {\n clearTimeout(delayTimer);\n delayTimer = null;\n }\n }\n return cleanupTimer;\n }, [loadingOrDelay]);\n useEffect(() => {\n // FIXME: for HOC usage like \n if (!buttonRef || !buttonRef.current || autoInsertSpaceInButton === false) {\n return;\n }\n const buttonText = buttonRef.current.textContent;\n if (needInserted && isTwoCNChar(buttonText)) {\n if (!hasTwoCNChar) {\n setHasTwoCNChar(true);\n }\n } else if (hasTwoCNChar) {\n setHasTwoCNChar(false);\n }\n }, [buttonRef]);\n const handleClick = e => {\n const {\n onClick\n } = props;\n // FIXME: https://github.com/ant-design/ant-design/issues/30207\n if (innerLoading || mergedDisabled) {\n e.preventDefault();\n return;\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Button', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(ghost && isUnBorderedButtonType(type)), 'Button', \"`link` or `text` button can't be a `ghost` button.\") : void 0;\n const autoInsertSpace = autoInsertSpaceInButton !== false;\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const sizeClassNameMap = {\n large: 'lg',\n small: 'sm',\n middle: undefined\n };\n const sizeFullName = useSize(ctxSize => {\n var _a, _b;\n return (_b = (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : groupSize) !== null && _b !== void 0 ? _b : ctxSize;\n });\n const sizeCls = sizeFullName ? sizeClassNameMap[sizeFullName] || '' : '';\n const iconType = innerLoading ? 'loading' : icon;\n const linkButtonRestProps = omit(rest, ['navigate']);\n const classes = classNames(prefixCls, hashId, {\n [`${prefixCls}-${shape}`]: shape !== 'default' && shape,\n [`${prefixCls}-${type}`]: type,\n [`${prefixCls}-${sizeCls}`]: sizeCls,\n [`${prefixCls}-icon-only`]: !children && children !== 0 && !!iconType,\n [`${prefixCls}-background-ghost`]: ghost && !isUnBorderedButtonType(type),\n [`${prefixCls}-loading`]: innerLoading,\n [`${prefixCls}-two-chinese-chars`]: hasTwoCNChar && autoInsertSpace && !innerLoading,\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-dangerous`]: !!danger,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, compactItemClassnames, className, rootClassName, button === null || button === void 0 ? void 0 : button.className);\n const fullStyle = Object.assign(Object.assign({}, button === null || button === void 0 ? void 0 : button.style), customStyle);\n const iconClasses = classNames(customClassNames === null || customClassNames === void 0 ? void 0 : customClassNames.icon, (_a = button === null || button === void 0 ? void 0 : button.classNames) === null || _a === void 0 ? void 0 : _a.icon);\n const iconStyle = Object.assign(Object.assign({}, (styles === null || styles === void 0 ? void 0 : styles.icon) || {}), ((_b = button === null || button === void 0 ? void 0 : button.styles) === null || _b === void 0 ? void 0 : _b.icon) || {});\n const iconNode = icon && !innerLoading ? /*#__PURE__*/React.createElement(IconWrapper, {\n prefixCls: prefixCls,\n className: iconClasses,\n style: iconStyle\n }, icon) : /*#__PURE__*/React.createElement(LoadingIcon, {\n existIcon: !!icon,\n prefixCls: prefixCls,\n loading: !!innerLoading\n });\n const kids = children || children === 0 ? spaceChildren(children, needInserted && autoInsertSpace) : null;\n if (linkButtonRestProps.href !== undefined) {\n return wrapSSR( /*#__PURE__*/React.createElement(\"a\", Object.assign({}, linkButtonRestProps, {\n className: classNames(classes, {\n [`${prefixCls}-disabled`]: mergedDisabled\n }),\n style: fullStyle,\n onClick: handleClick,\n ref: buttonRef\n }), iconNode, kids));\n }\n let buttonNode = /*#__PURE__*/React.createElement(\"button\", Object.assign({}, rest, {\n type: htmlType,\n className: classes,\n style: fullStyle,\n onClick: handleClick,\n disabled: mergedDisabled,\n ref: buttonRef\n }), iconNode, kids);\n if (!isUnBorderedButtonType(type)) {\n buttonNode = /*#__PURE__*/React.createElement(Wave, {\n component: \"Button\",\n disabled: !!innerLoading\n }, buttonNode);\n }\n return wrapSSR(buttonNode);\n};\nconst Button = /*#__PURE__*/forwardRef(InternalButton);\nif (process.env.NODE_ENV !== 'production') {\n Button.displayName = 'Button';\n}\nButton.Group = Group;\nButton.__ANT_BUTTON = true;\nexport default Button;","'use client';\n\nimport Button from './button';\nexport * from './buttonHelpers';\nexport default Button;","import enUS from '../../date-picker/locale/en_US';\nexport default enUS;","var __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';\nconst Grid = _a => {\n var {\n prefixCls,\n className,\n hoverable = true\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"className\", \"hoverable\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefix = getPrefixCls('card', prefixCls);\n const classString = classNames(`${prefix}-grid`, className, {\n [`${prefix}-grid-hoverable`]: hoverable\n });\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, props, {\n className: classString\n }));\n};\nexport default Grid;","import { clearFix, resetComponent, textEllipsis } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\n// ============================== Head ==============================\nconst genCardHeadStyle = token => {\n const {\n antCls,\n componentCls,\n headerHeight,\n cardPaddingBase,\n tabsMarginBottom\n } = token;\n return Object.assign(Object.assign({\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n minHeight: headerHeight,\n marginBottom: -1,\n padding: `0 ${cardPaddingBase}px`,\n color: token.colorTextHeading,\n fontWeight: token.fontWeightStrong,\n fontSize: token.headerFontSize,\n background: token.headerBg,\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorBorderSecondary}`,\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`\n }, clearFix()), {\n '&-wrapper': {\n width: '100%',\n display: 'flex',\n alignItems: 'center'\n },\n '&-title': Object.assign(Object.assign({\n display: 'inline-block',\n flex: 1\n }, textEllipsis), {\n [`\n > ${componentCls}-typography,\n > ${componentCls}-typography-edit-content\n `]: {\n insetInlineStart: 0,\n marginTop: 0,\n marginBottom: 0\n }\n }),\n [`${antCls}-tabs-top`]: {\n clear: 'both',\n marginBottom: tabsMarginBottom,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n '&-bar': {\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorBorderSecondary}`\n }\n }\n });\n};\n// ============================== Grid ==============================\nconst genCardGridStyle = token => {\n const {\n cardPaddingBase,\n colorBorderSecondary,\n cardShadow,\n lineWidth\n } = token;\n return {\n width: '33.33%',\n padding: cardPaddingBase,\n border: 0,\n borderRadius: 0,\n boxShadow: `\n ${lineWidth}px 0 0 0 ${colorBorderSecondary},\n 0 ${lineWidth}px 0 0 ${colorBorderSecondary},\n ${lineWidth}px ${lineWidth}px 0 0 ${colorBorderSecondary},\n ${lineWidth}px 0 0 0 ${colorBorderSecondary} inset,\n 0 ${lineWidth}px 0 0 ${colorBorderSecondary} inset;\n `,\n transition: `all ${token.motionDurationMid}`,\n '&-hoverable:hover': {\n position: 'relative',\n zIndex: 1,\n boxShadow: cardShadow\n }\n };\n};\n// ============================== Actions ==============================\nconst genCardActionsStyle = token => {\n const {\n componentCls,\n iconCls,\n actionsLiMargin,\n cardActionsIconSize,\n colorBorderSecondary,\n actionsBg\n } = token;\n return Object.assign(Object.assign({\n margin: 0,\n padding: 0,\n listStyle: 'none',\n background: actionsBg,\n borderTop: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n display: 'flex',\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px `\n }, clearFix()), {\n '& > li': {\n margin: actionsLiMargin,\n color: token.colorTextDescription,\n textAlign: 'center',\n '> span': {\n position: 'relative',\n display: 'block',\n minWidth: token.cardActionsIconSize * 2,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n '&:hover': {\n color: token.colorPrimary,\n transition: `color ${token.motionDurationMid}`\n },\n [`a:not(${componentCls}-btn), > ${iconCls}`]: {\n display: 'inline-block',\n width: '100%',\n color: token.colorTextDescription,\n lineHeight: `${token.fontSize * token.lineHeight}px`,\n transition: `color ${token.motionDurationMid}`,\n '&:hover': {\n color: token.colorPrimary\n }\n },\n [`> ${iconCls}`]: {\n fontSize: cardActionsIconSize,\n lineHeight: `${cardActionsIconSize * token.lineHeight}px`\n }\n },\n '&:not(:last-child)': {\n borderInlineEnd: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`\n }\n }\n });\n};\n// ============================== Meta ==============================\nconst genCardMetaStyle = token => Object.assign(Object.assign({\n margin: `-${token.marginXXS}px 0`,\n display: 'flex'\n}, clearFix()), {\n '&-avatar': {\n paddingInlineEnd: token.padding\n },\n '&-detail': {\n overflow: 'hidden',\n flex: 1,\n '> div:not(:last-child)': {\n marginBottom: token.marginXS\n }\n },\n '&-title': Object.assign({\n color: token.colorTextHeading,\n fontWeight: token.fontWeightStrong,\n fontSize: token.fontSizeLG\n }, textEllipsis),\n '&-description': {\n color: token.colorTextDescription\n }\n});\n// ============================== Inner ==============================\nconst genCardTypeInnerStyle = token => {\n const {\n componentCls,\n cardPaddingBase,\n colorFillAlter\n } = token;\n return {\n [`${componentCls}-head`]: {\n padding: `0 ${cardPaddingBase}px`,\n background: colorFillAlter,\n '&-title': {\n fontSize: token.fontSize\n }\n },\n [`${componentCls}-body`]: {\n padding: `${token.padding}px ${cardPaddingBase}px`\n }\n };\n};\n// ============================== Loading ==============================\nconst genCardLoadingStyle = token => {\n const {\n componentCls\n } = token;\n return {\n overflow: 'hidden',\n [`${componentCls}-body`]: {\n userSelect: 'none'\n }\n };\n};\n// ============================== Basic ==============================\nconst genCardStyle = token => {\n const {\n antCls,\n componentCls,\n cardShadow,\n cardHeadPadding,\n colorBorderSecondary,\n boxShadowTertiary,\n cardPaddingBase,\n extraColor\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n background: token.colorBgContainer,\n borderRadius: token.borderRadiusLG,\n [`&:not(${componentCls}-bordered)`]: {\n boxShadow: boxShadowTertiary\n },\n [`${componentCls}-head`]: genCardHeadStyle(token),\n [`${componentCls}-extra`]: {\n // https://stackoverflow.com/a/22429853/3040605\n marginInlineStart: 'auto',\n color: extraColor,\n fontWeight: 'normal',\n fontSize: token.fontSize\n },\n [`${componentCls}-body`]: Object.assign({\n padding: cardPaddingBase,\n borderRadius: ` 0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`\n }, clearFix()),\n [`${componentCls}-grid`]: genCardGridStyle(token),\n [`${componentCls}-cover`]: {\n '> *': {\n display: 'block',\n width: '100%'\n },\n [`img, img + ${antCls}-image-mask`]: {\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`\n }\n },\n [`${componentCls}-actions`]: genCardActionsStyle(token),\n [`${componentCls}-meta`]: genCardMetaStyle(token)\n }),\n [`${componentCls}-bordered`]: {\n border: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n [`${componentCls}-cover`]: {\n marginTop: -1,\n marginInlineStart: -1,\n marginInlineEnd: -1\n }\n },\n [`${componentCls}-hoverable`]: {\n cursor: 'pointer',\n transition: `box-shadow ${token.motionDurationMid}, border-color ${token.motionDurationMid}`,\n '&:hover': {\n borderColor: 'transparent',\n boxShadow: cardShadow\n }\n },\n [`${componentCls}-contain-grid`]: {\n [`${componentCls}-body`]: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n [`&:not(${componentCls}-loading) ${componentCls}-body`]: {\n marginBlockStart: -token.lineWidth,\n marginInlineStart: -token.lineWidth,\n padding: 0\n }\n },\n [`${componentCls}-contain-tabs`]: {\n [`> ${componentCls}-head`]: {\n [`${componentCls}-head-title, ${componentCls}-extra`]: {\n paddingTop: cardHeadPadding\n }\n }\n },\n [`${componentCls}-type-inner`]: genCardTypeInnerStyle(token),\n [`${componentCls}-loading`]: genCardLoadingStyle(token),\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\n// ============================== Size ==============================\nconst genCardSizeStyle = token => {\n const {\n componentCls,\n cardPaddingSM,\n headerHeightSM,\n headerFontSizeSM\n } = token;\n return {\n [`${componentCls}-small`]: {\n [`> ${componentCls}-head`]: {\n minHeight: headerHeightSM,\n padding: `0 ${cardPaddingSM}px`,\n fontSize: headerFontSizeSM,\n [`> ${componentCls}-head-wrapper`]: {\n [`> ${componentCls}-extra`]: {\n fontSize: token.fontSize\n }\n }\n },\n [`> ${componentCls}-body`]: {\n padding: cardPaddingSM\n }\n },\n [`${componentCls}-small${componentCls}-contain-tabs`]: {\n [`> ${componentCls}-head`]: {\n [`${componentCls}-head-title, ${componentCls}-extra`]: {\n minHeight: headerHeightSM,\n paddingTop: 0,\n display: 'flex',\n alignItems: 'center'\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Card', token => {\n const cardToken = mergeToken(token, {\n cardShadow: token.boxShadowCard,\n cardHeadPadding: token.padding,\n cardPaddingBase: token.paddingLG,\n cardActionsIconSize: token.fontSize,\n cardPaddingSM: 12 // Fixed padding.\n });\n\n return [\n // Style\n genCardStyle(cardToken),\n // Size\n genCardSizeStyle(cardToken)];\n}, token => ({\n headerBg: 'transparent',\n headerFontSize: token.fontSizeLG,\n headerFontSizeSM: token.fontSize,\n headerHeight: token.fontSizeLG * token.lineHeightLG + token.padding * 2,\n headerHeightSM: token.fontSize * token.lineHeight + token.paddingXS * 2,\n actionsBg: token.colorBgContainer,\n actionsLiMargin: `${token.paddingSM}px 0`,\n tabsMarginBottom: -token.padding - token.lineWidth,\n extraColor: token.colorText\n}));","var __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 omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport Skeleton from '../skeleton';\nimport Tabs from '../tabs';\nimport Grid from './Grid';\nimport useStyle from './style';\nfunction getAction(actions) {\n return actions.map((action, index) =>\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n style: {\n width: `${100 / actions.length}%`\n },\n key: `action-${index}`\n }, /*#__PURE__*/React.createElement(\"span\", null, action)));\n}\nconst Card = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n extra,\n headStyle = {},\n bodyStyle = {},\n title,\n loading,\n bordered = true,\n size: customizeSize,\n type,\n cover,\n actions,\n tabList,\n children,\n activeTabKey,\n defaultActiveTabKey,\n tabBarExtraContent,\n hoverable,\n tabProps = {}\n } = props,\n others = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"style\", \"extra\", \"headStyle\", \"bodyStyle\", \"title\", \"loading\", \"bordered\", \"size\", \"type\", \"cover\", \"actions\", \"tabList\", \"children\", \"activeTabKey\", \"defaultActiveTabKey\", \"tabBarExtraContent\", \"hoverable\", \"tabProps\"]);\n const {\n getPrefixCls,\n direction,\n card\n } = React.useContext(ConfigContext);\n const onTabChange = key => {\n var _a;\n (_a = props.onTabChange) === null || _a === void 0 ? void 0 : _a.call(props, key);\n };\n const isContainGrid = React.useMemo(() => {\n let containGrid = false;\n React.Children.forEach(children, element => {\n if (element && element.type && element.type === Grid) {\n containGrid = true;\n }\n });\n return containGrid;\n }, [children]);\n const prefixCls = getPrefixCls('card', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const loadingBlock = /*#__PURE__*/React.createElement(Skeleton, {\n loading: true,\n active: true,\n paragraph: {\n rows: 4\n },\n title: false\n }, children);\n const hasActiveTabKey = activeTabKey !== undefined;\n const extraProps = Object.assign(Object.assign({}, tabProps), {\n [hasActiveTabKey ? 'activeKey' : 'defaultActiveKey']: hasActiveTabKey ? activeTabKey : defaultActiveTabKey,\n tabBarExtraContent\n });\n let head;\n const mergedSize = useSize(customizeSize);\n const tabSize = !mergedSize || mergedSize === 'default' ? 'large' : mergedSize;\n const tabs = tabList ? /*#__PURE__*/React.createElement(Tabs, Object.assign({\n size: tabSize\n }, extraProps, {\n className: `${prefixCls}-head-tabs`,\n onChange: onTabChange,\n items: tabList.map(_a => {\n var {\n tab\n } = _a,\n item = __rest(_a, [\"tab\"]);\n return Object.assign({\n label: tab\n }, item);\n })\n })) : null;\n if (title || extra || tabs) {\n head = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-head`,\n style: headStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-head-wrapper`\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-head-title`\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-extra`\n }, extra)), tabs);\n }\n const coverDom = cover ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-cover`\n }, cover) : null;\n const body = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body`,\n style: bodyStyle\n }, loading ? loadingBlock : children);\n const actionDom = actions && actions.length ? /*#__PURE__*/React.createElement(\"ul\", {\n className: `${prefixCls}-actions`\n }, getAction(actions)) : null;\n const divProps = omit(others, ['onTabChange']);\n const classString = classNames(prefixCls, card === null || card === void 0 ? void 0 : card.className, {\n [`${prefixCls}-loading`]: loading,\n [`${prefixCls}-bordered`]: bordered,\n [`${prefixCls}-hoverable`]: hoverable,\n [`${prefixCls}-contain-grid`]: isContainGrid,\n [`${prefixCls}-contain-tabs`]: tabList && tabList.length,\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-type-${type}`]: !!type,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n const mergedStyle = Object.assign(Object.assign({}, card === null || card === void 0 ? void 0 : card.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: ref\n }, divProps, {\n className: classString,\n style: mergedStyle\n }), head, coverDom, body, actionDom));\n});\nexport default Card;","var __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';\nconst Meta = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n avatar,\n title,\n description\n } = props,\n others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('card', customizePrefixCls);\n const classString = classNames(`${prefixCls}-meta`, className);\n const avatarDom = avatar ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-avatar`\n }, avatar) : null;\n const titleDom = title ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-title`\n }, title) : null;\n const descriptionDom = description ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-description`\n }, description) : null;\n const MetaDetail = titleDom || descriptionDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-detail`\n }, titleDom, descriptionDom) : null;\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classString\n }), avatarDom, MetaDetail);\n};\nexport default Meta;","'use client';\n\nimport InternalCard from './Card';\nimport Grid from './Grid';\nimport Meta from './Meta';\nconst Card = InternalCard;\nCard.Grid = Grid;\nCard.Meta = Meta;\nif (process.env.NODE_ENV !== 'production') {\n Card.displayName = 'Card';\n}\nexport default Card;","import React from 'react';\nconst GroupContext = /*#__PURE__*/React.createContext(null);\nexport default GroupContext;","var __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 RcCheckbox from 'rc-checkbox';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport { FormItemInputContext } from '../form/context';\nimport GroupContext from './GroupContext';\nimport useStyle from './style';\nimport Wave from '../_util/wave';\nimport { TARGET_CLS } from '../_util/wave/interface';\nconst InternalCheckbox = (props, ref) => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n children,\n indeterminate = false,\n style,\n onMouseEnter,\n onMouseLeave,\n skipGroup = false,\n disabled\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"children\", \"indeterminate\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"skipGroup\", \"disabled\"]);\n const {\n getPrefixCls,\n direction,\n checkbox\n } = React.useContext(ConfigContext);\n const checkboxGroup = React.useContext(GroupContext);\n const {\n isFormItemInput\n } = React.useContext(FormItemInputContext);\n const contextDisabled = React.useContext(DisabledContext);\n const mergedDisabled = (_a = (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.disabled) || disabled) !== null && _a !== void 0 ? _a : contextDisabled;\n const prevValue = React.useRef(restProps.value);\n React.useEffect(() => {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n process.env.NODE_ENV !== \"production\" ? warning('checked' in restProps || !!checkboxGroup || !('value' in restProps), 'Checkbox', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n }, []);\n React.useEffect(() => {\n if (skipGroup) {\n return;\n }\n if (restProps.value !== prevValue.current) {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(prevValue.current);\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n prevValue.current = restProps.value;\n }\n return () => checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(restProps.value);\n }, [restProps.value]);\n const prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const checkboxProps = Object.assign({}, restProps);\n if (checkboxGroup && !skipGroup) {\n checkboxProps.onChange = function () {\n if (restProps.onChange) {\n restProps.onChange.apply(restProps, arguments);\n }\n if (checkboxGroup.toggleOption) {\n checkboxGroup.toggleOption({\n label: children,\n value: restProps.value\n });\n }\n };\n checkboxProps.name = checkboxGroup.name;\n checkboxProps.checked = checkboxGroup.value.includes(restProps.value);\n }\n const classString = classNames(`${prefixCls}-wrapper`, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-wrapper-checked`]: checkboxProps.checked,\n [`${prefixCls}-wrapper-disabled`]: mergedDisabled,\n [`${prefixCls}-wrapper-in-form-item`]: isFormItemInput\n }, checkbox === null || checkbox === void 0 ? void 0 : checkbox.className, className, rootClassName, hashId);\n const checkboxClass = classNames({\n [`${prefixCls}-indeterminate`]: indeterminate\n }, TARGET_CLS, hashId);\n const ariaChecked = indeterminate ? 'mixed' : undefined;\n return wrapSSR( /*#__PURE__*/React.createElement(Wave, {\n component: \"Checkbox\",\n disabled: mergedDisabled\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: classString,\n style: Object.assign(Object.assign({}, checkbox === null || checkbox === void 0 ? void 0 : checkbox.style), style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, Object.assign({\n \"aria-checked\": ariaChecked\n }, checkboxProps, {\n prefixCls: prefixCls,\n className: checkboxClass,\n disabled: mergedDisabled,\n ref: ref\n })), children !== undefined && /*#__PURE__*/React.createElement(\"span\", null, children))));\n};\nconst Checkbox = /*#__PURE__*/React.forwardRef(InternalCheckbox);\nif (process.env.NODE_ENV !== 'production') {\n Checkbox.displayName = 'Checkbox';\n}\nexport default Checkbox;","import _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 omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Checkbox from './Checkbox';\nimport GroupContext from './GroupContext';\nimport useStyle from './style';\nconst InternalGroup = (props, ref) => {\n const {\n defaultValue,\n children,\n options = [],\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n onChange\n } = props,\n restProps = __rest(props, [\"defaultValue\", \"children\", \"options\", \"prefixCls\", \"className\", \"rootClassName\", \"style\", \"onChange\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [value, setValue] = React.useState(restProps.value || defaultValue || []);\n const [registeredValues, setRegisteredValues] = React.useState([]);\n React.useEffect(() => {\n if ('value' in restProps) {\n setValue(restProps.value || []);\n }\n }, [restProps.value]);\n const memoOptions = React.useMemo(() => options.map(option => {\n if (typeof option === 'string' || typeof option === 'number') {\n return {\n label: option,\n value: option\n };\n }\n return option;\n }), [options]);\n const cancelValue = val => {\n setRegisteredValues(prevValues => prevValues.filter(v => v !== val));\n };\n const registerValue = val => {\n setRegisteredValues(prevValues => [].concat(_toConsumableArray(prevValues), [val]));\n };\n const toggleOption = option => {\n const optionIndex = value.indexOf(option.value);\n const newValue = _toConsumableArray(value);\n if (optionIndex === -1) {\n newValue.push(option.value);\n } else {\n newValue.splice(optionIndex, 1);\n }\n if (!('value' in restProps)) {\n setValue(newValue);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(newValue.filter(val => registeredValues.includes(val)).sort((a, b) => {\n const indexA = memoOptions.findIndex(opt => opt.value === a);\n const indexB = memoOptions.findIndex(opt => opt.value === b);\n return indexA - indexB;\n }));\n };\n const prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n const groupPrefixCls = `${prefixCls}-group`;\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const domProps = omit(restProps, ['value', 'disabled']);\n const childrenNode = options.length ? memoOptions.map(option => /*#__PURE__*/React.createElement(Checkbox, {\n prefixCls: prefixCls,\n key: option.value.toString(),\n disabled: 'disabled' in option ? option.disabled : restProps.disabled,\n value: option.value,\n checked: value.includes(option.value),\n onChange: option.onChange,\n className: `${groupPrefixCls}-item`,\n style: option.style,\n title: option.title\n }, option.label)) : children;\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n const context = {\n toggleOption,\n value,\n disabled: restProps.disabled,\n name: restProps.name,\n // https://github.com/ant-design/ant-design/issues/16376\n registerValue,\n cancelValue\n };\n const classString = classNames(groupPrefixCls, {\n [`${groupPrefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classString,\n style: style\n }, domProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(GroupContext.Provider, {\n value: context\n }, childrenNode)));\n};\nexport { GroupContext };\nconst CheckboxGroup = /*#__PURE__*/React.forwardRef(InternalGroup);\nexport default /*#__PURE__*/React.memo(CheckboxGroup);","'use client';\n\nimport InternalCheckbox from './Checkbox';\nimport Group from './Group';\nconst Checkbox = InternalCheckbox;\nCheckbox.Group = Group;\nCheckbox.__ANT_CHECKBOX = true;\nif (process.env.NODE_ENV !== 'production') {\n Checkbox.displayName = 'Checkbox';\n}\nexport default Checkbox;","import { genFocusOutline, resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\nexport const genCheckboxStyle = token => {\n const {\n checkboxCls\n } = token;\n const wrapperCls = `${checkboxCls}-wrapper`;\n return [\n // ===================== Basic =====================\n {\n // Group\n [`${checkboxCls}-group`]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-flex',\n flexWrap: 'wrap',\n columnGap: token.marginXS,\n // Group > Grid\n [`> ${token.antCls}-row`]: {\n flex: 1\n }\n }),\n // Wrapper\n [wrapperCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-flex',\n alignItems: 'baseline',\n cursor: 'pointer',\n // Fix checkbox & radio in flex align #30260\n '&:after': {\n display: 'inline-block',\n width: 0,\n overflow: 'hidden',\n content: \"'\\\\a0'\"\n },\n // Checkbox near checkbox\n [`& + ${wrapperCls}`]: {\n marginInlineStart: 0\n },\n [`&${wrapperCls}-in-form-item`]: {\n 'input[type=\"checkbox\"]': {\n width: 14,\n height: 14 // FIXME: magic\n }\n }\n }),\n\n // Wrapper > Checkbox\n [checkboxCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n whiteSpace: 'nowrap',\n lineHeight: 1,\n cursor: 'pointer',\n borderRadius: token.borderRadiusSM,\n // To make alignment right when `controlHeight` is changed\n // Ref: https://github.com/ant-design/ant-design/issues/41564\n alignSelf: 'center',\n // Wrapper > Checkbox > input\n [`${checkboxCls}-input`]: {\n position: 'absolute',\n // Since baseline align will get additional space offset,\n // we need to move input to top to make it align with text.\n // Ref: https://github.com/ant-design/ant-design/issues/38926#issuecomment-1486137799\n inset: 0,\n zIndex: 1,\n cursor: 'pointer',\n opacity: 0,\n margin: 0,\n [`&:focus-visible + ${checkboxCls}-inner`]: Object.assign({}, genFocusOutline(token))\n },\n // Wrapper > Checkbox > inner\n [`${checkboxCls}-inner`]: {\n boxSizing: 'border-box',\n position: 'relative',\n top: 0,\n insetInlineStart: 0,\n display: 'block',\n width: token.checkboxSize,\n height: token.checkboxSize,\n direction: 'ltr',\n backgroundColor: token.colorBgContainer,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadiusSM,\n borderCollapse: 'separate',\n transition: `all ${token.motionDurationSlow}`,\n '&:after': {\n boxSizing: 'border-box',\n position: 'absolute',\n top: '50%',\n insetInlineStart: '21.5%',\n display: 'table',\n width: token.checkboxSize / 14 * 5,\n height: token.checkboxSize / 14 * 8,\n border: `${token.lineWidthBold}px solid ${token.colorWhite}`,\n borderTop: 0,\n borderInlineStart: 0,\n transform: 'rotate(45deg) scale(0) translate(-50%,-50%)',\n opacity: 0,\n content: '\"\"',\n transition: `all ${token.motionDurationFast} ${token.motionEaseInBack}, opacity ${token.motionDurationFast}`\n }\n },\n // Wrapper > Checkbox + Text\n '& + span': {\n paddingInlineStart: token.paddingXS,\n paddingInlineEnd: token.paddingXS\n }\n })\n },\n // ===================== Hover =====================\n {\n // Wrapper & Wrapper > Checkbox\n [`\n ${wrapperCls}:not(${wrapperCls}-disabled),\n ${checkboxCls}:not(${checkboxCls}-disabled)\n `]: {\n [`&:hover ${checkboxCls}-inner`]: {\n borderColor: token.colorPrimary\n }\n },\n [`${wrapperCls}:not(${wrapperCls}-disabled)`]: {\n [`&:hover ${checkboxCls}-checked:not(${checkboxCls}-disabled) ${checkboxCls}-inner`]: {\n backgroundColor: token.colorPrimaryHover,\n borderColor: 'transparent'\n },\n [`&:hover ${checkboxCls}-checked:not(${checkboxCls}-disabled):after`]: {\n borderColor: token.colorPrimaryHover\n }\n }\n },\n // ==================== Checked ====================\n {\n // Wrapper > Checkbox\n [`${checkboxCls}-checked`]: {\n [`${checkboxCls}-inner`]: {\n backgroundColor: token.colorPrimary,\n borderColor: token.colorPrimary,\n '&:after': {\n opacity: 1,\n transform: 'rotate(45deg) scale(1) translate(-50%,-50%)',\n transition: `all ${token.motionDurationMid} ${token.motionEaseOutBack} ${token.motionDurationFast}`\n }\n }\n },\n [`\n ${wrapperCls}-checked:not(${wrapperCls}-disabled),\n ${checkboxCls}-checked:not(${checkboxCls}-disabled)\n `]: {\n [`&:hover ${checkboxCls}-inner`]: {\n backgroundColor: token.colorPrimaryHover,\n borderColor: 'transparent'\n }\n }\n },\n // ================= Indeterminate =================\n {\n [checkboxCls]: {\n '&-indeterminate': {\n // Wrapper > Checkbox > inner\n [`${checkboxCls}-inner`]: {\n backgroundColor: token.colorBgContainer,\n borderColor: token.colorBorder,\n '&:after': {\n top: '50%',\n insetInlineStart: '50%',\n width: token.fontSizeLG / 2,\n height: token.fontSizeLG / 2,\n backgroundColor: token.colorPrimary,\n border: 0,\n transform: 'translate(-50%, -50%) scale(1)',\n opacity: 1,\n content: '\"\"'\n }\n }\n }\n }\n },\n // ==================== Disable ====================\n {\n // Wrapper\n [`${wrapperCls}-disabled`]: {\n cursor: 'not-allowed'\n },\n // Wrapper > Checkbox\n [`${checkboxCls}-disabled`]: {\n // Wrapper > Checkbox > input\n [`&, ${checkboxCls}-input`]: {\n cursor: 'not-allowed',\n // Disabled for native input to enable Tooltip event handler\n // ref: https://github.com/ant-design/ant-design/issues/39822#issuecomment-1365075901\n pointerEvents: 'none'\n },\n // Wrapper > Checkbox > inner\n [`${checkboxCls}-inner`]: {\n background: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n '&:after': {\n borderColor: token.colorTextDisabled\n }\n },\n '&:after': {\n display: 'none'\n },\n '& + span': {\n color: token.colorTextDisabled\n },\n [`&${checkboxCls}-indeterminate ${checkboxCls}-inner::after`]: {\n background: token.colorTextDisabled\n }\n }\n }];\n};\n// ============================== Export ==============================\nexport function getStyle(prefixCls, token) {\n const checkboxToken = mergeToken(token, {\n checkboxCls: `.${prefixCls}`,\n checkboxSize: token.controlInteractiveSize\n });\n return [genCheckboxStyle(checkboxToken)];\n}\nexport default genComponentStyleHook('Checkbox', (token, _ref) => {\n let {\n prefixCls\n } = _ref;\n return [getStyle(prefixCls, token)];\n});","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport classnames from 'classnames';\nimport React from 'react';\nvar PanelContent = /*#__PURE__*/ React.forwardRef(function (props, ref) {\n var _classnames;\n var prefixCls = props.prefixCls,\n forceRender = props.forceRender,\n className = props.className,\n style = props.style,\n children = props.children,\n isActive = props.isActive,\n role = props.role;\n var _React$useState = React.useState(isActive || forceRender),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n rendered = _React$useState2[0],\n setRendered = _React$useState2[1];\n React.useEffect(\n function () {\n if (forceRender || isActive) {\n setRendered(true);\n }\n },\n [forceRender, isActive],\n );\n if (!rendered) {\n return null;\n }\n return /*#__PURE__*/ React.createElement(\n 'div',\n {\n ref: ref,\n className: classnames(\n ''.concat(prefixCls, '-content'),\n ((_classnames = {}),\n _defineProperty(_classnames, ''.concat(prefixCls, '-content-active'), isActive),\n _defineProperty(_classnames, ''.concat(prefixCls, '-content-inactive'), !isActive),\n _classnames),\n className,\n ),\n style: style,\n role: role,\n },\n /*#__PURE__*/ React.createElement(\n 'div',\n {\n className: ''.concat(prefixCls, '-content-box'),\n },\n children,\n ),\n );\n});\nPanelContent.displayName = 'PanelContent';\nexport default PanelContent;\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport KeyCode from 'rc-util/es/KeyCode';\nimport React from 'react';\nimport PanelContent from './PanelContent';\nvar _excluded = [\n 'showArrow',\n 'headerClass',\n 'isActive',\n 'onItemClick',\n 'forceRender',\n 'className',\n 'prefixCls',\n 'collapsible',\n 'accordion',\n 'panelKey',\n 'extra',\n 'header',\n 'expandIcon',\n 'openMotion',\n 'destroyInactivePanel',\n 'children',\n];\nvar CollapsePanel = /*#__PURE__*/ React.forwardRef(function (props, ref) {\n var _classNames, _classNames2;\n var _props$showArrow = props.showArrow,\n showArrow = _props$showArrow === void 0 ? true : _props$showArrow,\n headerClass = props.headerClass,\n isActive = props.isActive,\n onItemClick = props.onItemClick,\n forceRender = props.forceRender,\n className = props.className,\n prefixCls = props.prefixCls,\n collapsible = props.collapsible,\n accordion = props.accordion,\n panelKey = props.panelKey,\n extra = props.extra,\n header = props.header,\n expandIcon = props.expandIcon,\n openMotion = props.openMotion,\n destroyInactivePanel = props.destroyInactivePanel,\n children = props.children,\n resetProps = _objectWithoutProperties(props, _excluded);\n var disabled = collapsible === 'disabled';\n var collapsibleHeader = collapsible === 'header';\n var collapsibleIcon = collapsible === 'icon';\n var ifExtraExist = extra !== null && extra !== undefined && typeof extra !== 'boolean';\n var handleItemClick = function handleItemClick() {\n onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(panelKey);\n };\n var handleKeyDown = function handleKeyDown(e) {\n if (e.key === 'Enter' || e.keyCode === KeyCode.ENTER || e.which === KeyCode.ENTER) {\n handleItemClick();\n }\n };\n\n // ======================== Icon ========================\n var iconNode =\n typeof expandIcon === 'function'\n ? expandIcon(props)\n : /*#__PURE__*/ React.createElement('i', {\n className: 'arrow',\n });\n if (iconNode) {\n iconNode = /*#__PURE__*/ React.createElement(\n 'div',\n {\n className: ''.concat(prefixCls, '-expand-icon'),\n onClick: ['header', 'icon'].includes(collapsible) ? handleItemClick : undefined,\n },\n iconNode,\n );\n }\n var collapsePanelClassNames = classNames(\n ((_classNames = {}),\n _defineProperty(_classNames, ''.concat(prefixCls, '-item'), true),\n _defineProperty(_classNames, ''.concat(prefixCls, '-item-active'), isActive),\n _defineProperty(_classNames, ''.concat(prefixCls, '-item-disabled'), disabled),\n _classNames),\n className,\n );\n var headerClassName = classNames(\n headerClass,\n ((_classNames2 = {}),\n _defineProperty(_classNames2, ''.concat(prefixCls, '-header'), true),\n _defineProperty(\n _classNames2,\n ''.concat(prefixCls, '-header-collapsible-only'),\n collapsibleHeader,\n ),\n _defineProperty(_classNames2, ''.concat(prefixCls, '-icon-collapsible-only'), collapsibleIcon),\n _classNames2),\n );\n\n // ======================== HeaderProps ========================\n var headerProps = {\n className: headerClassName,\n 'aria-expanded': isActive,\n 'aria-disabled': disabled,\n onKeyDown: handleKeyDown,\n };\n if (!collapsibleHeader && !collapsibleIcon) {\n headerProps.onClick = handleItemClick;\n headerProps.role = accordion ? 'tab' : 'button';\n headerProps.tabIndex = disabled ? -1 : 0;\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/ React.createElement(\n 'div',\n _extends({}, resetProps, {\n ref: ref,\n className: collapsePanelClassNames,\n }),\n /*#__PURE__*/ React.createElement(\n 'div',\n headerProps,\n showArrow && iconNode,\n /*#__PURE__*/ React.createElement(\n 'span',\n {\n className: ''.concat(prefixCls, '-header-text'),\n onClick: collapsible === 'header' ? handleItemClick : undefined,\n },\n header,\n ),\n ifExtraExist &&\n /*#__PURE__*/ React.createElement(\n 'div',\n {\n className: ''.concat(prefixCls, '-extra'),\n },\n extra,\n ),\n ),\n /*#__PURE__*/ React.createElement(\n CSSMotion,\n _extends(\n {\n visible: isActive,\n leavedClassName: ''.concat(prefixCls, '-content-hidden'),\n },\n openMotion,\n {\n forceRender: forceRender,\n removeOnLeave: destroyInactivePanel,\n },\n ),\n function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/ React.createElement(\n PanelContent,\n {\n ref: motionRef,\n prefixCls: prefixCls,\n className: motionClassName,\n style: motionStyle,\n isActive: isActive,\n forceRender: forceRender,\n role: accordion ? 'tabpanel' : void 0,\n },\n children,\n );\n },\n ),\n );\n});\nexport default CollapsePanel;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport toArray from 'rc-util/es/Children/toArray';\nimport React from 'react';\nimport CollapsePanel from '../Panel';\nvar _excluded = ['children', 'label', 'key', 'collapsible', 'onItemClick', 'destroyInactivePanel'];\nvar convertItemsToNodes = function convertItemsToNodes(items, props) {\n var prefixCls = props.prefixCls,\n accordion = props.accordion,\n collapsible = props.collapsible,\n destroyInactivePanel = props.destroyInactivePanel,\n onItemClick = props.onItemClick,\n activeKey = props.activeKey,\n openMotion = props.openMotion,\n expandIcon = props.expandIcon;\n return items.map(function (item, index) {\n var children = item.children,\n label = item.label,\n rawKey = item.key,\n rawCollapsible = item.collapsible,\n rawOnItemClick = item.onItemClick,\n rawDestroyInactivePanel = item.destroyInactivePanel,\n restProps = _objectWithoutProperties(item, _excluded);\n\n // You may be puzzled why you want to convert them all into strings, me too.\n // Maybe: https://github.com/react-component/collapse/blob/aac303a8b6ff30e35060b4f8fecde6f4556fcbe2/src/Collapse.tsx#L15\n var key = String(rawKey !== null && rawKey !== void 0 ? rawKey : index);\n var mergeCollapsible =\n rawCollapsible !== null && rawCollapsible !== void 0 ? rawCollapsible : collapsible;\n var mergeDestroyInactivePanel =\n rawDestroyInactivePanel !== null && rawDestroyInactivePanel !== void 0\n ? rawDestroyInactivePanel\n : destroyInactivePanel;\n var handleItemClick = function handleItemClick(value) {\n if (mergeCollapsible === 'disabled') return;\n onItemClick(value);\n rawOnItemClick === null || rawOnItemClick === void 0 ? void 0 : rawOnItemClick(value);\n };\n var isActive = false;\n if (accordion) {\n isActive = activeKey[0] === key;\n } else {\n isActive = activeKey.indexOf(key) > -1;\n }\n return /*#__PURE__*/ React.createElement(\n CollapsePanel,\n _extends({}, restProps, {\n prefixCls: prefixCls,\n key: key,\n panelKey: key,\n isActive: isActive,\n accordion: accordion,\n openMotion: openMotion,\n expandIcon: expandIcon,\n header: label,\n collapsible: mergeCollapsible,\n onItemClick: handleItemClick,\n destroyInactivePanel: mergeDestroyInactivePanel,\n }),\n children,\n );\n });\n};\n\n/**\n * @deprecated The next major version will be removed\n */\nvar getNewChild = function getNewChild(child, index, props) {\n if (!child) return null;\n var prefixCls = props.prefixCls,\n accordion = props.accordion,\n collapsible = props.collapsible,\n destroyInactivePanel = props.destroyInactivePanel,\n onItemClick = props.onItemClick,\n activeKey = props.activeKey,\n openMotion = props.openMotion,\n expandIcon = props.expandIcon;\n var key = child.key || String(index);\n var _child$props = child.props,\n header = _child$props.header,\n headerClass = _child$props.headerClass,\n childDestroyInactivePanel = _child$props.destroyInactivePanel,\n childCollapsible = _child$props.collapsible,\n childOnItemClick = _child$props.onItemClick;\n var isActive = false;\n if (accordion) {\n isActive = activeKey[0] === key;\n } else {\n isActive = activeKey.indexOf(key) > -1;\n }\n var mergeCollapsible =\n childCollapsible !== null && childCollapsible !== void 0 ? childCollapsible : collapsible;\n var handleItemClick = function handleItemClick(value) {\n if (mergeCollapsible === 'disabled') return;\n onItemClick(value);\n childOnItemClick === null || childOnItemClick === void 0 ? void 0 : childOnItemClick(value);\n };\n var childProps = {\n key: key,\n panelKey: key,\n header: header,\n headerClass: headerClass,\n isActive: isActive,\n prefixCls: prefixCls,\n destroyInactivePanel:\n childDestroyInactivePanel !== null && childDestroyInactivePanel !== void 0\n ? childDestroyInactivePanel\n : destroyInactivePanel,\n openMotion: openMotion,\n accordion: accordion,\n children: child.props.children,\n onItemClick: handleItemClick,\n expandIcon: expandIcon,\n collapsible: mergeCollapsible,\n };\n\n // https://github.com/ant-design/ant-design/issues/20479\n if (typeof child.type === 'string') {\n return child;\n }\n Object.keys(childProps).forEach(function (propName) {\n if (typeof childProps[propName] === 'undefined') {\n delete childProps[propName];\n }\n });\n return /*#__PURE__*/ React.cloneElement(child, childProps);\n};\nfunction useItems(items, rawChildren, props) {\n if (Array.isArray(items)) {\n return convertItemsToNodes(items, props);\n }\n return toArray(rawChildren).map(function (child, index) {\n return getNewChild(child, index, props);\n });\n}\nexport default useItems;\n","import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\nimport classNames from 'classnames';\nimport useMergedState from 'rc-util/es/hooks/useMergedState';\nimport warning from 'rc-util/es/warning';\nimport React from 'react';\nimport useItems from './hooks/useItems';\nimport CollapsePanel from './Panel';\nfunction getActiveKeysArray(activeKey) {\n var currentActiveKey = activeKey;\n if (!Array.isArray(currentActiveKey)) {\n var activeKeyType = _typeof(currentActiveKey);\n currentActiveKey =\n activeKeyType === 'number' || activeKeyType === 'string' ? [currentActiveKey] : [];\n }\n return currentActiveKey.map(function (key) {\n return String(key);\n });\n}\nvar Collapse = /*#__PURE__*/ React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-collapse' : _props$prefixCls,\n _props$destroyInactiv = props.destroyInactivePanel,\n destroyInactivePanel = _props$destroyInactiv === void 0 ? false : _props$destroyInactiv,\n style = props.style,\n accordion = props.accordion,\n className = props.className,\n children = props.children,\n collapsible = props.collapsible,\n openMotion = props.openMotion,\n expandIcon = props.expandIcon,\n rawActiveKey = props.activeKey,\n defaultActiveKey = props.defaultActiveKey,\n _onChange = props.onChange,\n items = props.items;\n var collapseClassName = classNames(prefixCls, className);\n var _useMergedState = useMergedState([], {\n value: rawActiveKey,\n onChange: function onChange(v) {\n return _onChange === null || _onChange === void 0 ? void 0 : _onChange(v);\n },\n defaultValue: defaultActiveKey,\n postState: getActiveKeysArray,\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n activeKey = _useMergedState2[0],\n setActiveKey = _useMergedState2[1];\n var onItemClick = function onItemClick(key) {\n return setActiveKey(function () {\n if (accordion) {\n return activeKey[0] === key ? [] : [key];\n }\n var index = activeKey.indexOf(key);\n var isActive = index > -1;\n if (isActive) {\n return activeKey.filter(function (item) {\n return item !== key;\n });\n }\n return [].concat(_toConsumableArray(activeKey), [key]);\n });\n };\n\n // ======================== Children ========================\n warning(\n !children,\n '`children` will be removed in next major version. Please use `items` instead.',\n );\n var mergedChildren = useItems(items, children, {\n prefixCls: prefixCls,\n accordion: accordion,\n openMotion: openMotion,\n expandIcon: expandIcon,\n collapsible: collapsible,\n destroyInactivePanel: destroyInactivePanel,\n onItemClick: onItemClick,\n activeKey: activeKey,\n });\n\n // ======================== Render ========================\n return /*#__PURE__*/ React.createElement(\n 'div',\n {\n ref: ref,\n className: collapseClassName,\n style: style,\n role: accordion ? 'tablist' : undefined,\n },\n mergedChildren,\n );\n});\nexport default Object.assign(Collapse, {\n /**\n * @deprecated use `items` instead, will be removed in `v4.0.0`\n */\n Panel: CollapsePanel,\n});\n","import Collapse from './Collapse';\nexport default Collapse;\n\n/**\n * @deprecated use `items` instead, will be removed in `v4.0.0`\n */\nvar Panel = Collapse.Panel;\nexport { Panel };\n","import classNames from 'classnames';\nimport RcCollapse from 'rc-collapse';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nconst CollapsePanel = /*#__PURE__*/React.forwardRef((props, ref) => {\n process.env.NODE_ENV !== \"production\" ? warning(!('disabled' in props), 'Collapse.Panel', '`disabled` is deprecated. Please use `collapsible=\"disabled\"` instead.') : void 0;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n showArrow = true\n } = props;\n const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n const collapsePanelClassName = classNames({\n [`${prefixCls}-no-arrow`]: !showArrow\n }, className);\n return /*#__PURE__*/React.createElement(RcCollapse.Panel, Object.assign({\n ref: ref\n }, props, {\n prefixCls: prefixCls,\n className: collapsePanelClassName\n }));\n});\nexport default CollapsePanel;","import { resetComponent, resetIcon } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nexport const genBaseStyle = token => {\n const {\n componentCls,\n collapseContentBg,\n padding,\n collapseContentPaddingHorizontal,\n collapseHeaderBg,\n collapseHeaderPadding,\n collapseHeaderPaddingSM,\n collapseHeaderPaddingLG,\n collapsePanelBorderRadius,\n lineWidth,\n lineType,\n colorBorder,\n colorText,\n colorTextHeading,\n colorTextDisabled,\n fontSize,\n fontSizeLG,\n lineHeight,\n marginSM,\n paddingSM,\n paddingLG,\n paddingXS,\n motionDurationSlow,\n fontSizeIcon\n } = token;\n const borderBase = `${lineWidth}px ${lineType} ${colorBorder}`;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n backgroundColor: collapseHeaderBg,\n border: borderBase,\n borderBottom: 0,\n borderRadius: `${collapsePanelBorderRadius}px`,\n [`&-rtl`]: {\n direction: 'rtl'\n },\n [`& > ${componentCls}-item`]: {\n borderBottom: borderBase,\n [`&:last-child`]: {\n [`\n &,\n & > ${componentCls}-header`]: {\n borderRadius: `0 0 ${collapsePanelBorderRadius}px ${collapsePanelBorderRadius}px`\n }\n },\n [`> ${componentCls}-header`]: {\n position: 'relative',\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n padding: collapseHeaderPadding,\n paddingInlineStart: paddingSM,\n color: colorTextHeading,\n lineHeight,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}, visibility 0s`,\n [`> ${componentCls}-header-text`]: {\n flex: 'auto'\n },\n '&:focus': {\n outline: 'none'\n },\n // >>>>> Arrow\n [`${componentCls}-expand-icon`]: {\n height: fontSize * lineHeight,\n display: 'flex',\n alignItems: 'center',\n paddingInlineEnd: marginSM,\n // Arrow offset\n marginInlineStart: padding - paddingSM\n },\n [`${componentCls}-arrow`]: Object.assign(Object.assign({}, resetIcon()), {\n fontSize: fontSizeIcon,\n svg: {\n transition: `transform ${motionDurationSlow}`\n }\n }),\n // >>>>> Text\n [`${componentCls}-header-text`]: {\n marginInlineEnd: 'auto'\n }\n },\n [`${componentCls}-header-collapsible-only`]: {\n cursor: 'default',\n [`${componentCls}-header-text`]: {\n flex: 'none',\n cursor: 'pointer'\n }\n },\n [`${componentCls}-icon-collapsible-only`]: {\n cursor: 'default',\n [`${componentCls}-expand-icon`]: {\n cursor: 'pointer'\n }\n }\n },\n [`${componentCls}-content`]: {\n color: colorText,\n backgroundColor: collapseContentBg,\n borderTop: borderBase,\n [`& > ${componentCls}-content-box`]: {\n padding: `${padding}px ${collapseContentPaddingHorizontal}px`\n },\n [`&-hidden`]: {\n display: 'none'\n }\n },\n [`&-small`]: {\n [`> ${componentCls}-item`]: {\n [`> ${componentCls}-header`]: {\n padding: collapseHeaderPaddingSM,\n paddingInlineStart: paddingXS,\n [`> ${componentCls}-expand-icon`]: {\n // Arrow offset\n marginInlineStart: paddingSM - paddingXS\n }\n },\n [`> ${componentCls}-content > ${componentCls}-content-box`]: {\n padding: paddingSM\n }\n }\n },\n [`&-large`]: {\n [`> ${componentCls}-item`]: {\n fontSize: fontSizeLG,\n [`> ${componentCls}-header`]: {\n padding: collapseHeaderPaddingLG,\n paddingInlineStart: padding,\n [`> ${componentCls}-expand-icon`]: {\n height: fontSizeLG * lineHeight,\n // Arrow offset\n marginInlineStart: paddingLG - padding\n }\n },\n [`> ${componentCls}-content > ${componentCls}-content-box`]: {\n padding: paddingLG\n }\n }\n },\n [`${componentCls}-item:last-child`]: {\n [`> ${componentCls}-content`]: {\n borderRadius: `0 0 ${collapsePanelBorderRadius}px ${collapsePanelBorderRadius}px`\n }\n },\n [`& ${componentCls}-item-disabled > ${componentCls}-header`]: {\n [`\n &,\n & > .arrow\n `]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n // ========================== Icon Position ==========================\n [`&${componentCls}-icon-position-end`]: {\n [`& > ${componentCls}-item`]: {\n [`> ${componentCls}-header`]: {\n [`${componentCls}-expand-icon`]: {\n order: 1,\n paddingInlineEnd: 0,\n paddingInlineStart: marginSM\n }\n }\n }\n }\n })\n };\n};\nconst genArrowStyle = token => {\n const {\n componentCls\n } = token;\n const fixedSelector = `> ${componentCls}-item > ${componentCls}-header ${componentCls}-arrow svg`;\n return {\n [`${componentCls}-rtl`]: {\n [fixedSelector]: {\n transform: `rotate(180deg)`\n }\n }\n };\n};\nconst genBorderlessStyle = token => {\n const {\n componentCls,\n collapseHeaderBg,\n paddingXXS,\n colorBorder\n } = token;\n return {\n [`${componentCls}-borderless`]: {\n backgroundColor: collapseHeaderBg,\n border: 0,\n [`> ${componentCls}-item`]: {\n borderBottom: `1px solid ${colorBorder}`\n },\n [`\n > ${componentCls}-item:last-child,\n > ${componentCls}-item:last-child ${componentCls}-header\n `]: {\n borderRadius: 0\n },\n [`> ${componentCls}-item:last-child`]: {\n borderBottom: 0\n },\n [`> ${componentCls}-item > ${componentCls}-content`]: {\n backgroundColor: 'transparent',\n borderTop: 0\n },\n [`> ${componentCls}-item > ${componentCls}-content > ${componentCls}-content-box`]: {\n paddingTop: paddingXXS\n }\n }\n };\n};\nconst genGhostStyle = token => {\n const {\n componentCls,\n paddingSM\n } = token;\n return {\n [`${componentCls}-ghost`]: {\n backgroundColor: 'transparent',\n border: 0,\n [`> ${componentCls}-item`]: {\n borderBottom: 0,\n [`> ${componentCls}-content`]: {\n backgroundColor: 'transparent',\n border: 0,\n [`> ${componentCls}-content-box`]: {\n paddingBlock: paddingSM\n }\n }\n }\n }\n };\n};\nexport default genComponentStyleHook('Collapse', token => {\n const collapseToken = mergeToken(token, {\n collapseContentBg: token.colorBgContainer,\n collapseHeaderBg: token.colorFillAlter,\n collapseHeaderPadding: `${token.paddingSM}px ${token.padding}px`,\n collapseHeaderPaddingSM: `${token.paddingXS}px ${token.paddingSM}px`,\n collapseHeaderPaddingLG: `${token.padding}px ${token.paddingLG}px`,\n collapsePanelBorderRadius: token.borderRadiusLG,\n collapseContentPaddingHorizontal: 16 // Fixed value\n });\n\n return [genBaseStyle(collapseToken), genBorderlessStyle(collapseToken), genGhostStyle(collapseToken), genArrowStyle(collapseToken), genCollapseMotion(collapseToken)];\n});","import RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcCollapse from 'rc-collapse';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport initCollapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport CollapsePanel from './CollapsePanel';\nimport useStyle from './style';\nconst Collapse = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction,\n collapse\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n bordered = true,\n ghost,\n size: customizeSize,\n expandIconPosition = 'start',\n children,\n expandIcon\n } = props;\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : ctx) !== null && _a !== void 0 ? _a : 'middle';\n });\n const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // Warning if use legacy type `expandIconPosition`\n process.env.NODE_ENV !== \"production\" ? warning(expandIconPosition !== 'left' && expandIconPosition !== 'right', 'Collapse', '`expandIconPosition` with `left` or `right` is deprecated. Please use `start` or `end` instead.') : void 0;\n // Align with logic position\n const mergedExpandIconPosition = React.useMemo(() => {\n if (expandIconPosition === 'left') {\n return 'start';\n }\n return expandIconPosition === 'right' ? 'end' : expandIconPosition;\n }, [expandIconPosition]);\n const renderExpandIcon = function () {\n let panelProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const icon = expandIcon ? expandIcon(panelProps) : /*#__PURE__*/React.createElement(RightOutlined, {\n rotate: panelProps.isActive ? 90 : undefined\n });\n return cloneElement(icon, () => ({\n className: classNames(icon.props.className, `${prefixCls}-arrow`)\n }));\n };\n const collapseClassName = classNames(`${prefixCls}-icon-position-${mergedExpandIconPosition}`, {\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-ghost`]: !!ghost,\n [`${prefixCls}-${mergedSize}`]: mergedSize !== 'middle'\n }, collapse === null || collapse === void 0 ? void 0 : collapse.className, className, rootClassName, hashId);\n const openMotion = Object.assign(Object.assign({}, initCollapseMotion(rootPrefixCls)), {\n motionAppear: false,\n leavedClassName: `${prefixCls}-content-hidden`\n });\n const items = React.useMemo(() => children ? toArray(children).map((child, index) => {\n var _a, _b;\n if ((_a = child.props) === null || _a === void 0 ? void 0 : _a.disabled) {\n const key = (_b = child.key) !== null && _b !== void 0 ? _b : String(index);\n const {\n disabled,\n collapsible\n } = child.props;\n const childProps = Object.assign(Object.assign({}, omit(child.props, ['disabled'])), {\n key,\n collapsible: collapsible !== null && collapsible !== void 0 ? collapsible : disabled ? 'disabled' : undefined\n });\n return cloneElement(child, childProps);\n }\n return child;\n }) : null, [children]);\n return wrapSSR( /*#__PURE__*/React.createElement(RcCollapse, Object.assign({\n ref: ref,\n openMotion: openMotion\n }, omit(props, ['rootClassName']), {\n expandIcon: renderExpandIcon,\n prefixCls: prefixCls,\n className: collapseClassName,\n style: Object.assign(Object.assign({}, collapse === null || collapse === void 0 ? void 0 : collapse.style), style)\n }), items));\n});\nif (process.env.NODE_ENV !== 'production') {\n Collapse.displayName = 'Collapse';\n}\nexport default Object.assign(Collapse, {\n Panel: CollapsePanel\n});","'use client';\n\nimport Collapse from './Collapse';\nexport default Collapse;","import * as React from 'react';\nconst DisabledContext = /*#__PURE__*/React.createContext(false);\nexport const DisabledContextProvider = _ref => {\n let {\n children,\n disabled\n } = _ref;\n const originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n }, children);\n};\nexport default DisabledContext;","import * as React from 'react';\nconst SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport const SizeContextProvider = _ref => {\n let {\n children,\n size\n } = _ref;\n const originSize = React.useContext(SizeContext);\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n};\nexport default SizeContext;","import * as React from 'react';\nexport const defaultIconPrefixCls = 'anticon';\nconst defaultGetPrefixCls = (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) {\n return customizePrefixCls;\n }\n return suffixCls ? `ant-${suffixCls}` : 'ant';\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will cause circular dependency.\nexport const ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: defaultGetPrefixCls,\n iconPrefixCls: defaultIconPrefixCls\n});\nexport const {\n Consumer: ConfigConsumer\n} = ConfigContext;","import React, { useContext } from 'react';\nimport { ConfigContext } from '.';\nimport Empty from '../empty';\nconst DefaultRenderEmpty = props => {\n const {\n componentName\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const 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: `${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};\nexport default DefaultRenderEmpty;","import React from 'react';\nimport SizeContext from '../SizeContext';\nconst useSize = customSize => {\n const size = React.useContext(SizeContext);\n const mergedSize = React.useMemo(() => {\n if (!customSize) {\n return size;\n }\n if (typeof customSize === 'string') {\n return customSize !== null && customSize !== void 0 ? customSize : size;\n }\n if (customSize instanceof Function) {\n return customSize(size);\n }\n return size;\n }, [customSize, size]);\n return mergedSize;\n};\nexport default useSize;","'use client';\n\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport { default as useLocale } from './useLocale';\nexport const ANT_MARK = 'internalMark';\nconst LocaleProvider = props => {\n const {\n locale = {},\n children,\n _ANT_MARK__\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n }\n React.useEffect(() => {\n const clearLocale = changeConfirmLocale(locale && locale.Modal);\n return clearLocale;\n }, [locale]);\n const getMemoizedContextValue = React.useMemo(() => Object.assign(Object.assign({}, locale), {\n exist: true\n }), [locale]);\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: getMemoizedContextValue\n }, children);\n};\nif (process.env.NODE_ENV !== 'production') {\n LocaleProvider.displayName = 'LocaleProvider';\n}\nexport default LocaleProvider;","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\nexport function getStyle(globalPrefixCls, theme) {\n const variables = {};\n const formatColor = (color, updater) => {\n let clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n const fillColor = (colorVal, type) => {\n const baseColor = new TinyColor(colorVal);\n const colorPalettes = generate(baseColor.toRgbString());\n variables[`${type}-color`] = formatColor(baseColor);\n variables[`${type}-color-disabled`] = colorPalettes[1];\n variables[`${type}-color-hover`] = colorPalettes[4];\n variables[`${type}-color-active`] = colorPalettes[6];\n variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[`${type}-color-deprecated-bg`] = colorPalettes[0];\n variables[`${type}-color-deprecated-border`] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n const primaryColor = new TinyColor(theme.primaryColor);\n const primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach((color, index) => {\n variables[`primary-${index + 1}`] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setAlpha(c.getAlpha() * 0.12));\n const primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c => c.setAlpha(c.getAlpha() * 0.3));\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n return `\n :root {\n ${cssList.join('\\n')}\n }\n `.trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n const style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, `${dynamicStyleMark}-dynamic-theme`);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","import { useContext } from 'react';\nimport DisabledContext from '../DisabledContext';\nimport SizeContext from '../SizeContext';\nfunction useConfig() {\n const componentDisabled = useContext(DisabledContext);\n const componentSize = useContext(SizeContext);\n return {\n componentDisabled,\n componentSize\n };\n}\nexport default useConfig;","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { defaultConfig } from '../../theme/internal';\nexport default function useTheme(theme, parentTheme) {\n const themeConfig = theme || {};\n const parentThemeConfig = themeConfig.inherit === false || !parentTheme ? defaultConfig : parentTheme;\n return useMemo(() => {\n if (!theme) {\n return parentTheme;\n }\n // Override\n const mergedComponents = Object.assign({}, parentThemeConfig.components);\n Object.keys(theme.components || {}).forEach(componentName => {\n mergedComponents[componentName] = Object.assign(Object.assign({}, mergedComponents[componentName]), theme.components[componentName]);\n });\n // Base token\n return Object.assign(Object.assign(Object.assign({}, parentThemeConfig), themeConfig), {\n token: Object.assign(Object.assign({}, parentThemeConfig.token), themeConfig.token),\n components: mergedComponents\n });\n }, [themeConfig, parentThemeConfig], (prev, next) => prev.some((prevTheme, index) => {\n const nextTheme = next[index];\n return !isEqual(prevTheme, nextTheme, true);\n }));\n}","import { Provider as MotionProvider } from 'rc-motion';\nimport * as React from 'react';\nimport { useToken } from '../theme/internal';\nexport default function MotionWrapper(props) {\n const {\n children\n } = props;\n const [, token] = useToken();\n const {\n motion\n } = token;\n const needWrapMotionProviderRef = React.useRef(false);\n needWrapMotionProviderRef.current = needWrapMotionProviderRef.current || motion === false;\n if (needWrapMotionProviderRef.current) {\n return /*#__PURE__*/React.createElement(MotionProvider, {\n motion: motion\n }, children);\n }\n return children;\n}","'use client';\n\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 { createTheme } from '@ant-design/cssinjs';\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport { merge } from \"rc-util/es/utils/set\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport ValidateMessagesContext from '../form/validateMessagesContext';\nimport LocaleProvider, { ANT_MARK } from '../locale';\nimport LocaleContext from '../locale/context';\nimport defaultLocale from '../locale/en_US';\nimport { DesignTokenContext } from '../theme/internal';\nimport defaultSeedToken from '../theme/themes/seed';\nimport { ConfigConsumer, ConfigContext, defaultIconPrefixCls } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport useConfig from './hooks/useConfig';\nimport useTheme from './hooks/useTheme';\nimport MotionWrapper from './MotionWrapper';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nimport useStyle from './style';\nimport { defaultTheme } from '../theme/context';\n/**\n * Since too many feedback using static method like `Modal.confirm` not getting theme, we record the\n * theme register info here to help developer get warning info.\n */\nlet existThemeConfig = false;\nexport const warnContext = process.env.NODE_ENV !== 'production' ? componentName => {\n process.env.NODE_ENV !== \"production\" ? warning(!existThemeConfig, componentName, `Static function can not consume context like dynamic theme. Please use 'App' component instead.`) : void 0;\n} : /* istanbul ignore next */\nnull;\nexport { ConfigConsumer, ConfigContext, defaultIconPrefixCls };\nexport const configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n// These props is used by `useContext` directly in sub component\nconst PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form', 'select', 'button'];\nexport const defaultPrefixCls = 'ant';\nlet globalPrefixCls;\nlet globalIconPrefixCls;\nlet globalTheme;\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\nfunction isLegacyTheme(theme) {\n return Object.keys(theme).some(key => key.endsWith('Color'));\n}\nconst setGlobalConfig = _ref => {\n let {\n prefixCls,\n iconPrefixCls,\n theme\n } = _ref;\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n if (theme) {\n if (isLegacyTheme(theme)) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', '`config` of css variable theme is not work in v5. Please use new `theme` config instead.') : void 0;\n registerTheme(getGlobalPrefixCls(), theme);\n } else {\n globalTheme = theme;\n }\n }\n};\nexport const globalConfig = () => ({\n getPrefixCls: (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) {\n return customizePrefixCls;\n }\n return suffixCls ? `${getGlobalPrefixCls()}-${suffixCls}` : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: () => {\n // If Global prefixCls provided, use this\n if (globalPrefixCls) {\n return globalPrefixCls;\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n },\n getTheme: () => globalTheme\n});\nconst ProviderChildren = props => {\n const {\n children,\n csp: customCsp,\n autoInsertSpaceInButton,\n alert,\n anchor,\n form,\n locale,\n componentSize,\n direction,\n space,\n virtual,\n dropdownMatchSelectWidth,\n popupMatchSelectWidth,\n popupOverflow,\n legacyLocale,\n parentContext,\n iconPrefixCls: customIconPrefixCls,\n theme,\n componentDisabled,\n segmented,\n statistic,\n spin,\n calendar,\n carousel,\n cascader,\n collapse,\n typography,\n checkbox,\n descriptions,\n divider,\n drawer,\n skeleton,\n steps,\n image,\n layout,\n list,\n mentions,\n modal,\n progress,\n result,\n slider,\n breadcrumb,\n menu,\n pagination,\n input,\n empty,\n badge,\n radio,\n rate,\n switch: SWITCH,\n transfer,\n avatar,\n message,\n tag,\n table,\n card,\n tabs,\n timeline,\n timePicker,\n upload,\n notification,\n tree,\n colorPicker,\n datePicker,\n wave\n } = props;\n // =================================== Warning ===================================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(dropdownMatchSelectWidth === undefined, 'ConfigProvider', '`dropdownMatchSelectWidth` is deprecated. Please use `popupMatchSelectWidth` instead.') : void 0;\n }\n // =================================== Context ===================================\n const getPrefixCls = React.useCallback((suffixCls, customizePrefixCls) => {\n const {\n prefixCls\n } = props;\n if (customizePrefixCls) {\n return customizePrefixCls;\n }\n const mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? `${mergedPrefixCls}-${suffixCls}` : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n const iconPrefixCls = customIconPrefixCls || parentContext.iconPrefixCls || defaultIconPrefixCls;\n const shouldWrapSSR = iconPrefixCls !== parentContext.iconPrefixCls;\n const csp = customCsp || parentContext.csp;\n const wrapSSR = useStyle(iconPrefixCls, csp);\n const mergedTheme = useTheme(theme, parentContext.theme);\n if (process.env.NODE_ENV !== 'production') {\n existThemeConfig = existThemeConfig || !!mergedTheme;\n }\n const baseConfig = {\n csp,\n autoInsertSpaceInButton,\n alert,\n anchor,\n locale: locale || legacyLocale,\n direction,\n space,\n virtual,\n popupMatchSelectWidth: popupMatchSelectWidth !== null && popupMatchSelectWidth !== void 0 ? popupMatchSelectWidth : dropdownMatchSelectWidth,\n popupOverflow,\n getPrefixCls,\n iconPrefixCls,\n theme: mergedTheme,\n segmented,\n statistic,\n spin,\n calendar,\n carousel,\n cascader,\n collapse,\n typography,\n checkbox,\n descriptions,\n divider,\n drawer,\n skeleton,\n steps,\n image,\n input,\n layout,\n list,\n mentions,\n modal,\n progress,\n result,\n slider,\n breadcrumb,\n menu,\n pagination,\n empty,\n badge,\n radio,\n rate,\n switch: SWITCH,\n transfer,\n avatar,\n message,\n tag,\n table,\n card,\n tabs,\n timeline,\n timePicker,\n upload,\n notification,\n tree,\n colorPicker,\n datePicker,\n wave\n };\n const config = Object.assign({}, parentContext);\n Object.keys(baseConfig).forEach(key => {\n if (baseConfig[key] !== undefined) {\n config[key] = baseConfig[key];\n }\n });\n // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n PASSED_PROPS.forEach(propName => {\n const propValue = props[propName];\n if (propValue) {\n config[propName] = propValue;\n }\n });\n // https://github.com/ant-design/ant-design/issues/27617\n const memoedConfig = useMemo(() => config, config, (prevConfig, currentConfig) => {\n const prevKeys = Object.keys(prevConfig);\n const currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(key => prevConfig[key] !== currentConfig[key]);\n });\n const memoIconContextValue = React.useMemo(() => ({\n prefixCls: iconPrefixCls,\n csp\n }), [iconPrefixCls, csp]);\n let childNode = shouldWrapSSR ? wrapSSR(children) : children;\n const validateMessages = React.useMemo(() => {\n var _a, _b, _c, _d;\n return merge(((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || {}, ((_c = (_b = memoedConfig.locale) === null || _b === void 0 ? void 0 : _b.Form) === null || _c === void 0 ? void 0 : _c.defaultValidateMessages) || {}, ((_d = memoedConfig.form) === null || _d === void 0 ? void 0 : _d.validateMessages) || {}, (form === null || form === void 0 ? void 0 : form.validateMessages) || {});\n }, [memoedConfig, form === null || form === void 0 ? void 0 : form.validateMessages]);\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(ValidateMessagesContext.Provider, {\n value: validateMessages\n }, children);\n }\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n // =================================== Motion ===================================\n childNode = /*#__PURE__*/React.createElement(MotionWrapper, null, childNode);\n // ================================ Dynamic theme ================================\n const memoTheme = React.useMemo(() => {\n const _a = mergedTheme || {},\n {\n algorithm,\n token,\n components\n } = _a,\n rest = __rest(_a, [\"algorithm\", \"token\", \"components\"]);\n const themeObj = algorithm && (!Array.isArray(algorithm) || algorithm.length > 0) ? createTheme(algorithm) : defaultTheme;\n const parsedComponents = {};\n Object.entries(components || {}).forEach(_ref2 => {\n let [componentName, componentToken] = _ref2;\n const parsedToken = Object.assign({}, componentToken);\n if ('algorithm' in parsedToken) {\n if (parsedToken.algorithm === true) {\n parsedToken.theme = themeObj;\n } else if (Array.isArray(parsedToken.algorithm) || typeof parsedToken.algorithm === 'function') {\n parsedToken.theme = createTheme(parsedToken.algorithm);\n }\n delete parsedToken.algorithm;\n }\n parsedComponents[componentName] = parsedToken;\n });\n return Object.assign(Object.assign({}, rest), {\n theme: themeObj,\n token: Object.assign(Object.assign({}, defaultSeedToken), token),\n components: parsedComponents\n });\n }, [mergedTheme]);\n if (theme) {\n childNode = /*#__PURE__*/React.createElement(DesignTokenContext.Provider, {\n value: memoTheme\n }, childNode);\n }\n // =================================== Render ===================================\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\nconst ConfigProvider = props => {\n const context = React.useContext(ConfigContext);\n const antLocale = React.useContext(LocaleContext);\n return /*#__PURE__*/React.createElement(ProviderChildren, Object.assign({\n parentContext: context,\n legacyLocale: antLocale\n }, props));\n};\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nConfigProvider.useConfig = useConfig;\nObject.defineProperty(ConfigProvider, 'SizeContext', {\n get: () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'ConfigProvider.SizeContext is deprecated. Please use `ConfigProvider.useConfig().componentSize` instead.') : void 0;\n return SizeContext;\n }\n});\nif (process.env.NODE_ENV !== 'production') {\n ConfigProvider.displayName = 'ConfigProvider';\n}\nexport default ConfigProvider;","var locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'OK',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nexport default locale;","import CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nconst locale = {\n lang: Object.assign({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: Object.assign({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Shared ==============================\nconst genSharedDividerStyle = token => {\n const {\n componentCls,\n sizePaddingEdgeHorizontal,\n colorSplit,\n lineWidth\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n borderBlockStart: `${lineWidth}px solid ${colorSplit}`,\n // vertical\n '&-vertical': {\n position: 'relative',\n top: '-0.06em',\n display: 'inline-block',\n height: '0.9em',\n margin: `0 ${token.dividerVerticalGutterMargin}px`,\n verticalAlign: 'middle',\n borderTop: 0,\n borderInlineStart: `${lineWidth}px solid ${colorSplit}`\n },\n '&-horizontal': {\n display: 'flex',\n clear: 'both',\n width: '100%',\n minWidth: '100%',\n margin: `${token.dividerHorizontalGutterMargin}px 0`\n },\n [`&-horizontal${componentCls}-with-text`]: {\n display: 'flex',\n alignItems: 'center',\n margin: `${token.dividerHorizontalWithTextGutterMargin}px 0`,\n color: token.colorTextHeading,\n fontWeight: 500,\n fontSize: token.fontSizeLG,\n whiteSpace: 'nowrap',\n textAlign: 'center',\n borderBlockStart: `0 ${colorSplit}`,\n '&::before, &::after': {\n position: 'relative',\n width: '50%',\n borderBlockStart: `${lineWidth}px solid transparent`,\n // Chrome not accept `inherit` in `border-top`\n borderBlockStartColor: 'inherit',\n borderBlockEnd: 0,\n transform: 'translateY(50%)',\n content: \"''\"\n }\n },\n [`&-horizontal${componentCls}-with-text-left`]: {\n '&::before': {\n width: '5%'\n },\n '&::after': {\n width: '95%'\n }\n },\n [`&-horizontal${componentCls}-with-text-right`]: {\n '&::before': {\n width: '95%'\n },\n '&::after': {\n width: '5%'\n }\n },\n [`${componentCls}-inner-text`]: {\n display: 'inline-block',\n padding: '0 1em'\n },\n '&-dashed': {\n background: 'none',\n borderColor: colorSplit,\n borderStyle: 'dashed',\n borderWidth: `${lineWidth}px 0 0`\n },\n [`&-horizontal${componentCls}-with-text${componentCls}-dashed`]: {\n '&::before, &::after': {\n borderStyle: 'dashed none none'\n }\n },\n [`&-vertical${componentCls}-dashed`]: {\n borderInlineStartWidth: lineWidth,\n borderInlineEnd: 0,\n borderBlockStart: 0,\n borderBlockEnd: 0\n },\n [`&-plain${componentCls}-with-text`]: {\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize\n },\n [`&-horizontal${componentCls}-with-text-left${componentCls}-no-default-orientation-margin-left`]: {\n '&::before': {\n width: 0\n },\n '&::after': {\n width: '100%'\n },\n [`${componentCls}-inner-text`]: {\n paddingInlineStart: sizePaddingEdgeHorizontal\n }\n },\n [`&-horizontal${componentCls}-with-text-right${componentCls}-no-default-orientation-margin-right`]: {\n '&::before': {\n width: '100%'\n },\n '&::after': {\n width: 0\n },\n [`${componentCls}-inner-text`]: {\n paddingInlineEnd: sizePaddingEdgeHorizontal\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Divider', token => {\n const dividerToken = mergeToken(token, {\n dividerVerticalGutterMargin: token.marginXS,\n dividerHorizontalWithTextGutterMargin: token.margin,\n dividerHorizontalGutterMargin: token.marginLG\n });\n return [genSharedDividerStyle(dividerToken)];\n}, {\n sizePaddingEdgeHorizontal: 0\n});","'use client';\n\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 warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst Divider = props => {\n const {\n getPrefixCls,\n direction,\n divider\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n type = 'horizontal',\n orientation = 'center',\n orientationMargin,\n className,\n rootClassName,\n children,\n dashed,\n plain,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"orientation\", \"orientationMargin\", \"className\", \"rootClassName\", \"children\", \"dashed\", \"plain\", \"style\"]);\n const prefixCls = getPrefixCls('divider', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const orientationPrefix = orientation.length > 0 ? `-${orientation}` : orientation;\n const hasChildren = !!children;\n const hasCustomMarginLeft = orientation === 'left' && orientationMargin != null;\n const hasCustomMarginRight = orientation === 'right' && orientationMargin != null;\n const classString = classNames(prefixCls, divider === null || divider === void 0 ? void 0 : divider.className, hashId, `${prefixCls}-${type}`, {\n [`${prefixCls}-with-text`]: hasChildren,\n [`${prefixCls}-with-text${orientationPrefix}`]: hasChildren,\n [`${prefixCls}-dashed`]: !!dashed,\n [`${prefixCls}-plain`]: !!plain,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-no-default-orientation-margin-left`]: hasCustomMarginLeft,\n [`${prefixCls}-no-default-orientation-margin-right`]: hasCustomMarginRight\n }, className, rootClassName);\n const memoizedOrientationMargin = React.useMemo(() => {\n if (typeof orientationMargin === 'number') {\n return orientationMargin;\n }\n if (/^\\d+$/.test(orientationMargin)) {\n return Number(orientationMargin);\n }\n return orientationMargin;\n }, [orientationMargin]);\n const innerStyle = Object.assign(Object.assign({}, hasCustomMarginLeft && {\n marginLeft: memoizedOrientationMargin\n }), hasCustomMarginRight && {\n marginRight: memoizedOrientationMargin\n });\n // Warning children not work in vertical mode\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!children || type !== 'vertical', 'Divider', '`children` not working in `vertical` mode.') : void 0;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classString,\n style: Object.assign(Object.assign({}, divider === null || divider === void 0 ? void 0 : divider.style), style)\n }, restProps, {\n role: \"separator\"\n }), children && type !== 'vertical' && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-inner-text`,\n style: innerStyle\n }, children)));\n};\nif (process.env.NODE_ENV !== 'production') {\n Divider.displayName = 'Divider';\n}\nexport default Divider;","import 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 omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport getPlacements from '../_util/placements';\nimport { cloneElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport Menu from '../menu';\nimport { OverrideProvider } from '../menu/OverrideContext';\nimport theme from '../theme';\nimport useStyle from './style';\nconst Placements = ['topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight', 'top', 'bottom'];\nconst Dropdown = props => {\n const {\n menu,\n arrow,\n prefixCls: customizePrefixCls,\n children,\n trigger,\n disabled,\n dropdownRender,\n getPopupContainer,\n overlayClassName,\n rootClassName,\n open,\n onOpenChange,\n // Deprecated\n visible,\n onVisibleChange,\n mouseEnterDelay = 0.15,\n mouseLeaveDelay = 0.1,\n autoAdjustOverflow = true,\n placement = '',\n overlay,\n transitionName\n } = props;\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Dropdown', `\\`${deprecatedName}\\` is deprecated which will be removed in next major version, please use \\`${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 const memoTransitionName = React.useMemo(() => {\n const rootPrefixCls = getPrefixCls();\n if (transitionName !== undefined) {\n return transitionName;\n }\n if (placement.includes('top')) {\n return `${rootPrefixCls}-slide-down`;\n }\n return `${rootPrefixCls}-slide-up`;\n }, [getPrefixCls, placement, transitionName]);\n const memoPlacement = React.useMemo(() => {\n if (!placement) {\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n }\n if (placement.includes('Center')) {\n const newPlacement = placement.slice(0, placement.indexOf('Center'));\n process.env.NODE_ENV !== \"production\" ? warning(!placement.includes('Center'), 'Dropdown', `You are using '${placement}' placement in Dropdown, which is deprecated. Try to use '${newPlacement}' instead.`) : void 0;\n return newPlacement;\n }\n return placement;\n }, [placement, direction]);\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(_ref2 => {\n let [deprecatedName, newName] = _ref2;\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Dropdown', `\\`${deprecatedName}\\` is deprecated, please use \\`${newName}\\` instead.`) : void 0;\n });\n }\n const prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const {\n token\n } = theme.useToken();\n const child = React.Children.only(children);\n const dropdownTrigger = cloneElement(child, {\n className: classNames(`${prefixCls}-trigger`, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, child.props.className),\n disabled\n });\n const triggerActions = disabled ? [] : trigger;\n let alignPoint;\n if (triggerActions && triggerActions.includes('contextMenu')) {\n alignPoint = true;\n }\n // =========================== Open ============================\n const [mergedOpen, setOpen] = useMergedState(false, {\n value: open !== null && open !== void 0 ? open : visible\n });\n const onInnerOpenChange = useEvent(nextOpen => {\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(nextOpen);\n setOpen(nextOpen);\n });\n // =========================== Overlay ============================\n const overlayClassNameCustomized = classNames(overlayClassName, rootClassName, hashId, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n const builtinPlacements = getPlacements({\n arrowPointAtCenter: typeof arrow === 'object' && arrow.pointAtCenter,\n autoAdjustOverflow,\n offset: token.marginXXS,\n arrowWidth: arrow ? token.sizePopupArrow : 0,\n borderRadius: token.borderRadius\n });\n const onMenuClick = React.useCallback(() => {\n setOpen(false);\n }, []);\n const 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 let overlayNode;\n if (menu === null || menu === void 0 ? void 0 : menu.items) {\n overlayNode = /*#__PURE__*/React.createElement(Menu, Object.assign({}, 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: `${prefixCls}-menu`,\n expandIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-menu-submenu-arrow`\n }, /*#__PURE__*/React.createElement(RightOutlined, {\n className: `${prefixCls}-menu-submenu-arrow-icon`\n })),\n mode: \"vertical\",\n selectable: false,\n onClick: onMenuClick,\n validator: _ref3 => {\n let {\n mode\n } = _ref3;\n // Warning if use other mode\n process.env.NODE_ENV !== \"production\" ? warning(!mode || mode === 'vertical', 'Dropdown', `mode=\"${mode}\" is not supported for Dropdown's Menu.`) : void 0;\n }\n }, overlayNode);\n };\n // ============================ Render ============================\n return wrapSSR( /*#__PURE__*/React.createElement(RcDropdown, Object.assign({\n alignPoint: alignPoint\n }, omit(props, ['rootClassName']), {\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: memoTransitionName,\n trigger: triggerActions,\n overlay: renderOverlay,\n placement: memoPlacement,\n onVisibleChange: onInnerOpenChange\n }), dropdownTrigger));\n};\nfunction postPureProps(props) {\n return Object.assign(Object.assign({}, props), {\n align: {\n overflow: {\n adjustX: false,\n adjustY: false\n }\n }\n });\n}\n// We don't care debug panel\nconst PurePanel = genPurePanel(Dropdown, 'dropdown', prefixCls => prefixCls, postPureProps);\n/* istanbul ignore next */\nconst WrapPurePanel = props => /*#__PURE__*/React.createElement(PurePanel, Object.assign({}, props), /*#__PURE__*/React.createElement(\"span\", null));\nDropdown._InternalPanelDoNotUseOrYouWillBeFired = WrapPurePanel;\nif (process.env.NODE_ENV !== 'production') {\n Dropdown.displayName = 'Dropdown';\n}\nexport default Dropdown;","var __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 EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport Space from '../space';\nimport { useCompactItemContext } from '../space/Compact';\nimport Dropdown from './dropdown';\nimport useStyle from './style';\nconst DropdownButton = props => {\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n type = 'default',\n danger,\n disabled,\n loading,\n onClick,\n htmlType,\n children,\n className,\n menu,\n arrow,\n autoFocus,\n overlay,\n trigger,\n align,\n open,\n onOpenChange,\n placement,\n getPopupContainer,\n href,\n icon = /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n title,\n buttonsRender = buttons => buttons,\n mouseEnterDelay,\n mouseLeaveDelay,\n overlayClassName,\n overlayStyle,\n destroyPopupOnHide,\n dropdownRender\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"danger\", \"disabled\", \"loading\", \"onClick\", \"htmlType\", \"children\", \"className\", \"menu\", \"arrow\", \"autoFocus\", \"overlay\", \"trigger\", \"align\", \"open\", \"onOpenChange\", \"placement\", \"getPopupContainer\", \"href\", \"icon\", \"title\", \"buttonsRender\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayClassName\", \"overlayStyle\", \"destroyPopupOnHide\", \"dropdownRender\"]);\n const prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n const buttonPrefixCls = `${prefixCls}-button`;\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const dropdownProps = {\n menu,\n arrow,\n autoFocus,\n align,\n disabled,\n trigger: disabled ? [] : trigger,\n onOpenChange,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n mouseEnterDelay,\n mouseLeaveDelay,\n overlayClassName,\n overlayStyle,\n destroyPopupOnHide,\n dropdownRender\n };\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const classes = classNames(buttonPrefixCls, compactItemClassnames, className, hashId);\n if ('overlay' in props) {\n dropdownProps.overlay = overlay;\n }\n if ('open' in props) {\n dropdownProps.open = open;\n }\n if ('placement' in props) {\n dropdownProps.placement = placement;\n } else {\n dropdownProps.placement = direction === 'rtl' ? 'bottomLeft' : 'bottomRight';\n }\n const 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 const rightButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n icon: icon\n });\n const [leftButtonToRender, rightButtonToRender] = buttonsRender([leftButton, rightButton]);\n return wrapSSR( /*#__PURE__*/React.createElement(Space.Compact, Object.assign({\n className: classes,\n size: compactSize,\n block: true\n }, restProps), leftButtonToRender, /*#__PURE__*/React.createElement(Dropdown, Object.assign({}, dropdownProps), rightButtonToRender)));\n};\nDropdownButton.__ANT_BUTTON = true;\nexport default DropdownButton;","'use client';\n\nimport InternalDropdown from './dropdown';\nimport DropdownButton from './dropdown-button';\nconst Dropdown = InternalDropdown;\nDropdown.Button = DropdownButton;\nexport default Dropdown;","const genStatusStyle = token => {\n const {\n componentCls,\n menuCls,\n colorError,\n colorTextLightSolid\n } = token;\n const itemCls = `${menuCls}-item`;\n return {\n [`${componentCls}, ${componentCls}-menu-submenu`]: {\n [`${menuCls} ${itemCls}`]: {\n [`&${itemCls}-danger:not(${itemCls}-disabled)`]: {\n color: colorError,\n '&:hover': {\n color: colorTextLightSolid,\n backgroundColor: colorError\n }\n }\n }\n }\n };\n};\nexport default genStatusStyle;","import { genFocusStyle, resetComponent } from '../../style';\nimport { initMoveMotion, initSlideMotion, initZoomMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nimport getArrowStyle, { getArrowOffset } from '../../style/placementArrow';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genStatusStyle from './status';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n menuCls,\n zIndexPopup,\n dropdownArrowDistance,\n sizePopupArrow,\n antCls,\n iconCls,\n motionDurationMid,\n dropdownPaddingVertical,\n fontSize,\n dropdownEdgeChildPadding,\n colorTextDisabled,\n fontSizeIcon,\n controlPaddingHorizontal,\n colorBgElevated\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: zIndexPopup,\n display: 'block',\n // A placeholder out of dropdown visible range to avoid close when user moving\n '&::before': {\n position: 'absolute',\n insetBlock: -dropdownArrowDistance + sizePopupArrow / 2,\n // insetInlineStart: -7, // FIXME: Seems not work for hidden element\n zIndex: -9999,\n opacity: 0.0001,\n content: '\"\"'\n },\n [`&-trigger${antCls}-btn`]: {\n [`& > ${iconCls}-down, & > ${antCls}-btn-icon > ${iconCls}-down`]: {\n fontSize: fontSizeIcon\n }\n },\n [`${componentCls}-wrap`]: {\n position: 'relative',\n [`${antCls}-btn > ${iconCls}-down`]: {\n fontSize: fontSizeIcon\n },\n [`${iconCls}-down::before`]: {\n transition: `transform ${motionDurationMid}`\n }\n },\n [`${componentCls}-wrap-open`]: {\n [`${iconCls}-down::before`]: {\n transform: `rotate(180deg)`\n }\n },\n [`\n &-hidden,\n &-menu-hidden,\n &-menu-submenu-hidden\n `]: {\n display: 'none'\n },\n // =============================================================\n // == Motion ==\n // =============================================================\n // When position is not enough for dropdown, the placement will revert.\n // We will handle this with revert motion name.\n [`&${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottomLeft,\n &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottomLeft,\n &${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottom,\n &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottom,\n &${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottomRight,\n &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottomRight`]: {\n animationName: slideUpIn\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-topLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-topLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-top,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-top,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-topRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-topRight`]: {\n animationName: slideDownIn\n },\n [`&${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottomLeft,\n &${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottom,\n &${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottomRight`]: {\n animationName: slideUpOut\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-topLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-top,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-topRight`]: {\n animationName: slideDownOut\n }\n })\n },\n // =============================================================\n // == Arrow style ==\n // =============================================================\n getArrowStyle(token, {\n colorBg: colorBgElevated,\n limitVerticalRadius: true,\n arrowPlacement: {\n top: true,\n bottom: true\n }\n }), {\n // =============================================================\n // == Menu ==\n // =============================================================\n [`${componentCls} ${menuCls}`]: {\n position: 'relative',\n margin: 0\n },\n [`${menuCls}-submenu-popup`]: {\n position: 'absolute',\n zIndex: zIndexPopup,\n background: 'transparent',\n boxShadow: 'none',\n transformOrigin: '0 0',\n 'ul, li': {\n listStyle: 'none',\n margin: 0\n }\n },\n [`${componentCls}, ${componentCls}-menu-submenu`]: {\n [menuCls]: Object.assign(Object.assign({\n padding: dropdownEdgeChildPadding,\n listStyleType: 'none',\n backgroundColor: colorBgElevated,\n backgroundClip: 'padding-box',\n borderRadius: token.borderRadiusLG,\n outline: 'none',\n boxShadow: token.boxShadowSecondary\n }, genFocusStyle(token)), {\n [`${menuCls}-item-group-title`]: {\n padding: `${dropdownPaddingVertical}px ${controlPaddingHorizontal}px`,\n color: token.colorTextDescription,\n transition: `all ${motionDurationMid}`\n },\n // ======================= Item Content =======================\n [`${menuCls}-item`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center'\n },\n [`${menuCls}-item-icon`]: {\n minWidth: fontSize,\n marginInlineEnd: token.marginXS,\n fontSize: token.fontSizeSM\n },\n [`${menuCls}-title-content`]: {\n flex: 'auto',\n '> a': {\n color: 'inherit',\n transition: `all ${motionDurationMid}`,\n '&:hover': {\n color: 'inherit'\n },\n '&::after': {\n position: 'absolute',\n inset: 0,\n content: '\"\"'\n }\n }\n },\n // =========================== Item ===========================\n [`${menuCls}-item, ${menuCls}-submenu-title`]: Object.assign(Object.assign({\n clear: 'both',\n margin: 0,\n padding: `${dropdownPaddingVertical}px ${controlPaddingHorizontal}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n transition: `all ${motionDurationMid}`,\n borderRadius: token.borderRadiusSM,\n [`&:hover, &-active`]: {\n backgroundColor: token.controlItemBgHover\n }\n }, genFocusStyle(token)), {\n '&-selected': {\n color: token.colorPrimary,\n backgroundColor: token.controlItemBgActive,\n '&:hover, &-active': {\n backgroundColor: token.controlItemBgActiveHover\n }\n },\n '&-disabled': {\n color: colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n color: colorTextDisabled,\n backgroundColor: colorBgElevated,\n cursor: 'not-allowed'\n },\n a: {\n pointerEvents: 'none'\n }\n },\n '&-divider': {\n height: 1,\n margin: `${token.marginXXS}px 0`,\n overflow: 'hidden',\n lineHeight: 0,\n backgroundColor: token.colorSplit\n },\n [`${componentCls}-menu-submenu-expand-icon`]: {\n position: 'absolute',\n insetInlineEnd: token.paddingXS,\n [`${componentCls}-menu-submenu-arrow-icon`]: {\n marginInlineEnd: '0 !important',\n color: token.colorTextDescription,\n fontSize: fontSizeIcon,\n fontStyle: 'normal'\n }\n }\n }),\n [`${menuCls}-item-group-list`]: {\n margin: `0 ${token.marginXS}px`,\n padding: 0,\n listStyle: 'none'\n },\n [`${menuCls}-submenu-title`]: {\n paddingInlineEnd: controlPaddingHorizontal + token.fontSizeSM\n },\n [`${menuCls}-submenu-vertical`]: {\n position: 'relative'\n },\n [`${menuCls}-submenu${menuCls}-submenu-disabled ${componentCls}-menu-submenu-title`]: {\n [`&, ${componentCls}-menu-submenu-arrow-icon`]: {\n color: colorTextDisabled,\n backgroundColor: colorBgElevated,\n cursor: 'not-allowed'\n }\n },\n // https://github.com/ant-design/ant-design/issues/19264\n [`${menuCls}-submenu-selected ${componentCls}-menu-submenu-title`]: {\n color: token.colorPrimary\n }\n })\n }\n },\n // Follow code may reuse in other components\n [initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down'), initZoomMotion(token, 'zoom-big')]];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Dropdown', (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const {\n marginXXS,\n sizePopupArrow,\n controlHeight,\n fontSize,\n lineHeight,\n paddingXXS,\n componentCls,\n borderRadiusLG\n } = token;\n const dropdownPaddingVertical = (controlHeight - fontSize * lineHeight) / 2;\n const {\n dropdownArrowOffset\n } = getArrowOffset({\n contentRadius: borderRadiusLG\n });\n const dropdownToken = mergeToken(token, {\n menuCls: `${componentCls}-menu`,\n rootPrefixCls,\n dropdownArrowDistance: sizePopupArrow / 2 + marginXXS,\n dropdownArrowOffset,\n dropdownPaddingVertical,\n dropdownEdgeChildPadding: paddingXXS\n });\n return [genBaseStyle(dropdownToken), genStatusStyle(dropdownToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 50\n}));","import { TinyColor } from '@ctrl/tinycolor';\nimport * as React from 'react';\nimport { useToken } from '../theme/internal';\nconst Empty = () => {\n const [, token] = useToken();\n const bgColor = new TinyColor(token.colorBgBase);\n // Dark Theme need more dark of this\n const themeStyle = bgColor.toHsl().l < 0.5 ? {\n opacity: 0.65\n } : {};\n return /*#__PURE__*/React.createElement(\"svg\", {\n style: themeStyle,\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 fillOpacity: \".8\",\n fill: \"#F5F5F7\",\n cx: \"67.797\",\n cy: \"106.89\",\n rx: \"67.797\",\n ry: \"12.668\"\n }), /*#__PURE__*/React.createElement(\"path\", {\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 fill: \"#AEB8C2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\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 fill: \"url(#linearGradient-1)\",\n transform: \"translate(13.56)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\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 fill: \"#F5F5F7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\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 fill: \"#DCE0E6\"\n })), /*#__PURE__*/React.createElement(\"path\", {\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 fill: \"#DCE0E6\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(149.65 15.383)\",\n fill: \"#FFF\"\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};\nif (process.env.NODE_ENV !== 'production') {\n Empty.displayName = 'EmptyImage';\n}\nexport default Empty;","import { TinyColor } from '@ctrl/tinycolor';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { useToken } from '../theme/internal';\nconst Simple = () => {\n const [, token] = useToken();\n const {\n colorFill,\n colorFillTertiary,\n colorFillQuaternary,\n colorBgContainer\n } = token;\n const {\n borderColor,\n shadowColor,\n contentColor\n } = useMemo(() => ({\n borderColor: new TinyColor(colorFill).onBackground(colorBgContainer).toHexShortString(),\n shadowColor: new TinyColor(colorFillTertiary).onBackground(colorBgContainer).toHexShortString(),\n contentColor: new TinyColor(colorFillQuaternary).onBackground(colorBgContainer).toHexShortString()\n }), [colorFill, colorFillTertiary, colorFillQuaternary, colorBgContainer]);\n return /*#__PURE__*/React.createElement(\"svg\", {\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 fill: shadowColor,\n cx: \"32\",\n cy: \"33\",\n rx: \"32\",\n ry: \"7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fillRule: \"nonzero\",\n stroke: borderColor\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 fill: contentColor\n }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Simple.displayName = 'SimpleImage';\n}\nexport default Simple;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Shared ==============================\nconst genSharedEmptyStyle = token => {\n const {\n componentCls,\n margin,\n marginXS,\n marginXL,\n fontSize,\n lineHeight\n } = token;\n return {\n [componentCls]: {\n marginInline: marginXS,\n fontSize,\n lineHeight,\n textAlign: 'center',\n // 原来 &-image 没有父子结构,现在为了外层承担我们的hashId,改成父子结果\n [`${componentCls}-image`]: {\n height: token.emptyImgHeight,\n marginBottom: marginXS,\n opacity: token.opacityImage,\n img: {\n height: '100%'\n },\n svg: {\n maxWidth: '100%',\n height: '100%',\n margin: 'auto'\n }\n },\n [`${componentCls}-description`]: {\n color: token.colorText\n },\n // 原来 &-footer 没有父子结构,现在为了外层承担我们的hashId,改成父子结果\n [`${componentCls}-footer`]: {\n marginTop: margin\n },\n '&-normal': {\n marginBlock: marginXL,\n color: token.colorTextDisabled,\n [`${componentCls}-description`]: {\n color: token.colorTextDisabled\n },\n [`${componentCls}-image`]: {\n height: token.emptyImgHeightMD\n }\n },\n '&-small': {\n marginBlock: marginXS,\n color: token.colorTextDisabled,\n [`${componentCls}-image`]: {\n height: token.emptyImgHeightSM\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Empty', token => {\n const {\n componentCls,\n controlHeightLG\n } = token;\n const emptyToken = mergeToken(token, {\n emptyImgCls: `${componentCls}-img`,\n emptyImgHeight: controlHeightLG * 2.5,\n emptyImgHeightMD: controlHeightLG,\n emptyImgHeightSM: controlHeightLG * 0.875\n });\n return [genSharedEmptyStyle(emptyToken)];\n});","'use client';\n\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 { useLocale } from '../locale';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nimport useStyle from './style';\nconst defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nconst simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\nconst Empty = _a => {\n var {\n className,\n rootClassName,\n prefixCls: customizePrefixCls,\n image = defaultEmptyImg,\n description,\n children,\n imageStyle,\n style\n } = _a,\n restProps = __rest(_a, [\"className\", \"rootClassName\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\", \"style\"]);\n const {\n getPrefixCls,\n direction,\n empty\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('empty', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const [locale] = useLocale('Empty');\n const des = typeof description !== 'undefined' ? description : locale === null || locale === void 0 ? void 0 : locale.description;\n const alt = typeof des === 'string' ? des : 'empty';\n let 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 wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classNames(hashId, prefixCls, empty === null || empty === void 0 ? void 0 : empty.className, {\n [`${prefixCls}-normal`]: image === simpleEmptyImg,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName),\n style: Object.assign(Object.assign({}, empty === null || empty === void 0 ? void 0 : empty.style), style)\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-image`,\n style: imageStyle\n }, imageNode), des && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-footer`\n }, children)));\n};\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nif (process.env.NODE_ENV !== 'production') {\n Empty.displayName = 'Empty';\n}\nexport default Empty;","import { FormProvider as RcFormProvider } from 'rc-field-form';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nexport const FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: () => {}\n});\nexport const NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nexport const FormProvider = props => {\n const providerProps = omit(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(RcFormProvider, Object.assign({}, providerProps));\n};\nexport const FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});\nexport const FormItemInputContext = /*#__PURE__*/React.createContext({});\nexport const NoFormStyle = _ref => {\n let {\n children,\n status,\n override\n } = _ref;\n const formItemInputContext = useContext(FormItemInputContext);\n const newFormItemInputContext = useMemo(() => {\n const newContext = Object.assign({}, formItemInputContext);\n if (override) {\n delete newContext.isFormItemInput;\n }\n if (status) {\n delete newContext.status;\n delete newContext.hasFeedback;\n delete newContext.feedbackIcon;\n }\n return newContext;\n }, [status, override, formItemInputContext]);\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: newFormItemInputContext\n }, children);\n};","import * as React from 'react';\nexport default function useDebounce(value) {\n const [cacheValue, setCacheValue] = React.useState(value);\n React.useEffect(() => {\n const timeout = setTimeout(() => {\n setCacheValue(value);\n }, value.length ? 0 : 10);\n return () => {\n clearTimeout(timeout);\n };\n }, [value]);\n return cacheValue;\n}","const genFormValidateMotionStyle = token => {\n const {\n componentCls\n } = token;\n const helpCls = `${componentCls}-show-help`;\n const helpItemCls = `${componentCls}-show-help-item`;\n return {\n [helpCls]: {\n // Explain holder\n transition: `opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n '&-appear, &-enter': {\n opacity: 0,\n '&-active': {\n opacity: 1\n }\n },\n '&-leave': {\n opacity: 1,\n '&-active': {\n opacity: 0\n }\n },\n // Explain\n [helpItemCls]: {\n overflow: 'hidden',\n transition: `height ${token.motionDurationSlow} ${token.motionEaseInOut},\n opacity ${token.motionDurationSlow} ${token.motionEaseInOut},\n transform ${token.motionDurationSlow} ${token.motionEaseInOut} !important`,\n [`&${helpItemCls}-appear, &${helpItemCls}-enter`]: {\n transform: `translateY(-5px)`,\n opacity: 0,\n [`&-active`]: {\n transform: 'translateY(0)',\n opacity: 1\n }\n },\n [`&${helpItemCls}-leave-active`]: {\n transform: `translateY(-5px)`\n }\n }\n }\n };\n};\nexport default genFormValidateMotionStyle;","import { resetComponent } from '../../style';\nimport { genCollapseMotion, zoomIn } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genFormValidateMotionStyle from './explain';\nconst resetForm = token => ({\n legend: {\n display: 'block',\n width: '100%',\n marginBottom: token.marginLG,\n padding: 0,\n color: token.colorTextDescription,\n fontSize: token.fontSizeLG,\n lineHeight: 'inherit',\n border: 0,\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n label: {\n fontSize: token.fontSize\n },\n 'input[type=\"search\"]': {\n boxSizing: 'border-box'\n },\n // Position radios and checkboxes better\n 'input[type=\"radio\"], input[type=\"checkbox\"]': {\n lineHeight: 'normal'\n },\n 'input[type=\"file\"]': {\n display: 'block'\n },\n // Make range inputs behave like textual form controls\n 'input[type=\"range\"]': {\n display: 'block',\n width: '100%'\n },\n // Make multiple select elements height not fixed\n 'select[multiple], select[size]': {\n height: 'auto'\n },\n // Focus for file, radio, and checkbox\n [`input[type='file']:focus,\n input[type='radio']:focus,\n input[type='checkbox']:focus`]: {\n outline: 0,\n boxShadow: `0 0 0 ${token.controlOutlineWidth}px ${token.controlOutline}`\n },\n // Adjust output element\n output: {\n display: 'block',\n paddingTop: 15,\n color: token.colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight\n }\n});\nconst genFormSize = (token, height) => {\n const {\n formItemCls\n } = token;\n return {\n [formItemCls]: {\n [`${formItemCls}-label > label`]: {\n height\n },\n [`${formItemCls}-control-input`]: {\n minHeight: height\n }\n }\n };\n};\nconst genFormStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [token.componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), resetForm(token)), {\n [`${componentCls}-text`]: {\n display: 'inline-block',\n paddingInlineEnd: token.paddingSM\n },\n // ================================================================\n // = Size =\n // ================================================================\n '&-small': Object.assign({}, genFormSize(token, token.controlHeightSM)),\n '&-large': Object.assign({}, genFormSize(token, token.controlHeightLG))\n })\n };\n};\nconst genFormItemStyle = token => {\n const {\n formItemCls,\n iconCls,\n componentCls,\n rootPrefixCls\n } = token;\n return {\n [formItemCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n marginBottom: token.marginLG,\n verticalAlign: 'top',\n '&-with-help': {\n transition: 'none'\n },\n [`&-hidden,\n &-hidden.${rootPrefixCls}-row`]: {\n // https://github.com/ant-design/ant-design/issues/26141\n display: 'none'\n },\n '&-has-warning': {\n [`${formItemCls}-split`]: {\n color: token.colorError\n }\n },\n '&-has-error': {\n [`${formItemCls}-split`]: {\n color: token.colorWarning\n }\n },\n // ==============================================================\n // = Label =\n // ==============================================================\n [`${formItemCls}-label`]: {\n display: 'inline-block',\n flexGrow: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textAlign: 'end',\n verticalAlign: 'middle',\n '&-left': {\n textAlign: 'start'\n },\n '&-wrap': {\n overflow: 'unset',\n lineHeight: `${token.lineHeight} - 0.25em`,\n whiteSpace: 'unset'\n },\n '> label': {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n maxWidth: '100%',\n height: token.controlHeight,\n color: token.colorTextHeading,\n fontSize: token.fontSize,\n [`> ${iconCls}`]: {\n fontSize: token.fontSize,\n verticalAlign: 'top'\n },\n // Required mark\n [`&${formItemCls}-required:not(${formItemCls}-required-mark-optional)::before`]: {\n display: 'inline-block',\n marginInlineEnd: token.marginXXS,\n color: token.colorError,\n fontSize: token.fontSize,\n fontFamily: 'SimSun, sans-serif',\n lineHeight: 1,\n content: '\"*\"',\n [`${componentCls}-hide-required-mark &`]: {\n display: 'none'\n }\n },\n // Optional mark\n [`${formItemCls}-optional`]: {\n display: 'inline-block',\n marginInlineStart: token.marginXXS,\n color: token.colorTextDescription,\n [`${componentCls}-hide-required-mark &`]: {\n display: 'none'\n }\n },\n // Optional mark\n [`${formItemCls}-tooltip`]: {\n color: token.colorTextDescription,\n cursor: 'help',\n writingMode: 'horizontal-tb',\n marginInlineStart: token.marginXXS\n },\n '&::after': {\n content: '\":\"',\n position: 'relative',\n marginBlock: 0,\n marginInlineStart: token.marginXXS / 2,\n marginInlineEnd: token.marginXS\n },\n [`&${formItemCls}-no-colon::after`]: {\n content: '\"\\\\a0\"'\n }\n }\n },\n // ==============================================================\n // = Input =\n // ==============================================================\n [`${formItemCls}-control`]: {\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n [`&:first-child:not([class^=\"'${rootPrefixCls}-col-'\"]):not([class*=\"' ${rootPrefixCls}-col-'\"])`]: {\n width: '100%'\n },\n '&-input': {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n minHeight: token.controlHeight,\n '&-content': {\n flex: 'auto',\n maxWidth: '100%'\n }\n }\n },\n // ==============================================================\n // = Explain =\n // ==============================================================\n [formItemCls]: {\n '&-explain, &-extra': {\n clear: 'both',\n color: token.colorTextDescription,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight\n },\n '&-explain-connected': {\n width: '100%'\n },\n '&-extra': {\n minHeight: token.controlHeightSM,\n transition: `color ${token.motionDurationMid} ${token.motionEaseOut}` // sync input color transition\n },\n\n '&-explain': {\n '&-error': {\n color: token.colorError\n },\n '&-warning': {\n color: token.colorWarning\n }\n }\n },\n [`&-with-help ${formItemCls}-explain`]: {\n height: 'auto',\n opacity: 1\n },\n // ==============================================================\n // = Feedback Icon =\n // ==============================================================\n [`${formItemCls}-feedback-icon`]: {\n fontSize: token.fontSize,\n textAlign: 'center',\n visibility: 'visible',\n animationName: zoomIn,\n animationDuration: token.motionDurationMid,\n animationTimingFunction: token.motionEaseOutBack,\n pointerEvents: 'none',\n '&-success': {\n color: token.colorSuccess\n },\n '&-error': {\n color: token.colorError\n },\n '&-warning': {\n color: token.colorWarning\n },\n '&-validating': {\n color: token.colorPrimary\n }\n }\n })\n };\n};\nconst genHorizontalStyle = token => {\n const {\n componentCls,\n formItemCls,\n rootPrefixCls\n } = token;\n return {\n [`${componentCls}-horizontal`]: {\n [`${formItemCls}-label`]: {\n flexGrow: 0\n },\n [`${formItemCls}-control`]: {\n flex: '1 1 0',\n // https://github.com/ant-design/ant-design/issues/32777\n // https://github.com/ant-design/ant-design/issues/33773\n minWidth: 0\n },\n // https://github.com/ant-design/ant-design/issues/32980\n [`${formItemCls}-label.${rootPrefixCls}-col-24 + ${formItemCls}-control`]: {\n minWidth: 'unset'\n }\n }\n };\n};\nconst genInlineStyle = token => {\n const {\n componentCls,\n formItemCls\n } = token;\n return {\n [`${componentCls}-inline`]: {\n display: 'flex',\n flexWrap: 'wrap',\n [formItemCls]: {\n flex: 'none',\n marginInlineEnd: token.margin,\n marginBottom: 0,\n '&-row': {\n flexWrap: 'nowrap'\n },\n [`> ${formItemCls}-label,\n > ${formItemCls}-control`]: {\n display: 'inline-block',\n verticalAlign: 'top'\n },\n [`> ${formItemCls}-label`]: {\n flex: 'none'\n },\n [`${componentCls}-text`]: {\n display: 'inline-block'\n },\n [`${formItemCls}-has-feedback`]: {\n display: 'inline-block'\n }\n }\n }\n };\n};\nconst makeVerticalLayoutLabel = token => ({\n padding: `0 0 ${token.paddingXS}px`,\n whiteSpace: 'initial',\n textAlign: 'start',\n '> label': {\n margin: 0,\n '&::after': {\n // https://github.com/ant-design/ant-design/issues/43538\n visibility: 'hidden'\n }\n }\n});\nconst makeVerticalLayout = token => {\n const {\n componentCls,\n formItemCls,\n rootPrefixCls\n } = token;\n return {\n [`${formItemCls} ${formItemCls}-label`]: makeVerticalLayoutLabel(token),\n [componentCls]: {\n [formItemCls]: {\n flexWrap: 'wrap',\n [`${formItemCls}-label, ${formItemCls}-control`]: {\n // When developer pass `xs: { span }`,\n // It should follow the `xs` screen config\n // ref: https://github.com/ant-design/ant-design/issues/44386\n [`&:not([class*=\" ${rootPrefixCls}-col-xs\"])`]: {\n flex: '0 0 100%',\n maxWidth: '100%'\n }\n }\n }\n }\n };\n};\nconst genVerticalStyle = token => {\n const {\n componentCls,\n formItemCls,\n rootPrefixCls\n } = token;\n return {\n [`${componentCls}-vertical`]: {\n [formItemCls]: {\n '&-row': {\n flexDirection: 'column'\n },\n '&-label > label': {\n height: 'auto'\n },\n [`${componentCls}-item-control`]: {\n width: '100%'\n }\n }\n },\n [`${componentCls}-vertical ${formItemCls}-label,\n .${rootPrefixCls}-col-24${formItemCls}-label,\n .${rootPrefixCls}-col-xl-24${formItemCls}-label`]: makeVerticalLayoutLabel(token),\n [`@media (max-width: ${token.screenXSMax}px)`]: [makeVerticalLayout(token), {\n [componentCls]: {\n [`.${rootPrefixCls}-col-xs-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }],\n [`@media (max-width: ${token.screenSMMax}px)`]: {\n [componentCls]: {\n [`.${rootPrefixCls}-col-sm-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${token.screenMDMax}px)`]: {\n [componentCls]: {\n [`.${rootPrefixCls}-col-md-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${token.screenLGMax}px)`]: {\n [componentCls]: {\n [`.${rootPrefixCls}-col-lg-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Form', (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const formToken = mergeToken(token, {\n formItemCls: `${token.componentCls}-item`,\n rootPrefixCls\n });\n return [genFormStyle(formToken), genFormItemStyle(formToken), genFormValidateMotionStyle(formToken), genHorizontalStyle(formToken), genInlineStyle(formToken), genVerticalStyle(formToken), genCollapseMotion(formToken), zoomIn];\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport initCollapseMotion from '../_util/motion';\nimport { FormItemPrefixContext } from './context';\nimport useDebounce from './hooks/useDebounce';\nimport useStyle from './style';\nconst EMPTY_LIST = [];\nfunction toErrorEntity(error, prefix, errorStatus) {\n let index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n return {\n key: typeof error === 'string' ? error : `${prefix}-${index}`,\n error,\n errorStatus\n };\n}\nconst ErrorList = _ref => {\n let {\n help,\n helpStatus,\n errors = EMPTY_LIST,\n warnings = EMPTY_LIST,\n className: rootClassName,\n fieldId,\n onVisibleChanged\n } = _ref;\n const {\n prefixCls\n } = React.useContext(FormItemPrefixContext);\n const baseClassName = `${prefixCls}-item-explain`;\n const [, hashId] = useStyle(prefixCls);\n const collapseMotion = useMemo(() => initCollapseMotion(prefixCls), [prefixCls]);\n // We have to debounce here again since somewhere use ErrorList directly still need no shaking\n // ref: https://github.com/ant-design/ant-design/issues/36336\n const debounceErrors = useDebounce(errors);\n const debounceWarnings = useDebounce(warnings);\n const fullKeyList = React.useMemo(() => {\n if (help !== undefined && help !== null) {\n return [toErrorEntity(help, 'help', helpStatus)];\n }\n return [].concat(_toConsumableArray(debounceErrors.map((error, index) => toErrorEntity(error, 'error', 'error', index))), _toConsumableArray(debounceWarnings.map((warning, index) => toErrorEntity(warning, 'warning', 'warning', index))));\n }, [help, helpStatus, debounceErrors, debounceWarnings]);\n const helpProps = {};\n if (fieldId) {\n helpProps.id = `${fieldId}_help`;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n motionDeadline: collapseMotion.motionDeadline,\n motionName: `${prefixCls}-show-help`,\n visible: !!fullKeyList.length,\n onVisibleChanged: onVisibleChanged\n }, holderProps => {\n const {\n className: holderClassName,\n style: holderStyle\n } = holderProps;\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, helpProps, {\n className: classNames(baseClassName, holderClassName, rootClassName, hashId),\n style: holderStyle,\n role: \"alert\"\n }), /*#__PURE__*/React.createElement(CSSMotionList, Object.assign({\n keys: fullKeyList\n }, initCollapseMotion(prefixCls), {\n motionName: `${prefixCls}-show-help-item`,\n component: false\n }), itemProps => {\n const {\n key,\n error,\n errorStatus,\n className: itemClassName,\n style: itemStyle\n } = itemProps;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(itemClassName, {\n [`${baseClassName}-${errorStatus}`]: errorStatus\n }),\n style: itemStyle\n }, error);\n }));\n });\n};\nexport default ErrorList;","// form item name black list. in form ,you can use form.id get the form item element.\n// use object hasOwnProperty will get better performance if black list is longer.\nconst formItemNameBlackList = ['parentNode'];\n// default form item id prefix.\nconst defaultItemNamePrefixCls = 'form_item';\nexport function toArray(candidate) {\n if (candidate === undefined || candidate === false) return [];\n return Array.isArray(candidate) ? candidate : [candidate];\n}\nexport function getFieldId(namePath, formName) {\n if (!namePath.length) {\n return undefined;\n }\n const mergedId = namePath.join('_');\n if (formName) {\n return `${formName}_${mergedId}`;\n }\n const isIllegalName = formItemNameBlackList.includes(mergedId);\n return isIllegalName ? `${defaultItemNamePrefixCls}_${mergedId}` : mergedId;\n}","import { useForm as useRcForm } from 'rc-field-form';\nimport * as React from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { getFieldId, toArray } from '../util';\nfunction toNamePathStr(name) {\n const namePath = toArray(name);\n return namePath.join('_');\n}\nexport default function useForm(form) {\n const [rcForm] = useRcForm();\n const itemsRef = React.useRef({});\n const wrapForm = React.useMemo(() => form !== null && form !== void 0 ? form : Object.assign(Object.assign({}, rcForm), {\n __INTERNAL__: {\n itemRef: name => node => {\n const namePathStr = toNamePathStr(name);\n if (node) {\n itemsRef.current[namePathStr] = node;\n } else {\n delete itemsRef.current[namePathStr];\n }\n }\n },\n scrollToField: function (name) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const namePath = toArray(name);\n const fieldId = getFieldId(namePath, wrapForm.__INTERNAL__.name);\n const node = fieldId ? document.getElementById(fieldId) : null;\n if (node) {\n scrollIntoView(node, Object.assign({\n scrollMode: 'if-needed',\n block: 'nearest'\n }, options));\n }\n },\n getFieldInstance: name => {\n const namePathStr = toNamePathStr(name);\n return itemsRef.current[namePathStr];\n }\n }), [form, rcForm]);\n return [wrapForm];\n}","var __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 FieldForm, { List, useWatch } from 'rc-field-form';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext, { DisabledContextProvider } from '../config-provider/DisabledContext';\nimport { SizeContextProvider } from '../config-provider/SizeContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormContext, FormProvider } from './context';\nimport useForm from './hooks/useForm';\nimport useFormWarning from './hooks/useFormWarning';\nimport useStyle from './style';\nimport ValidateMessagesContext from './validateMessagesContext';\nconst InternalForm = (props, ref) => {\n const contextDisabled = React.useContext(DisabledContext);\n const {\n getPrefixCls,\n direction,\n form: contextForm\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n size,\n disabled = contextDisabled,\n form,\n colon,\n labelAlign,\n labelWrap,\n labelCol,\n wrapperCol,\n hideRequiredMark,\n layout = 'horizontal',\n scrollToFirstError,\n requiredMark,\n onFinishFailed,\n name,\n style\n } = props,\n restFormProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"size\", \"disabled\", \"form\", \"colon\", \"labelAlign\", \"labelWrap\", \"labelCol\", \"wrapperCol\", \"hideRequiredMark\", \"layout\", \"scrollToFirstError\", \"requiredMark\", \"onFinishFailed\", \"name\", \"style\"]);\n const mergedSize = useSize(size);\n const contextValidateMessages = React.useContext(ValidateMessagesContext);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useFormWarning(props);\n }\n const mergedRequiredMark = useMemo(() => {\n if (requiredMark !== undefined) {\n return requiredMark;\n }\n if (contextForm && contextForm.requiredMark !== undefined) {\n return contextForm.requiredMark;\n }\n if (hideRequiredMark) {\n return false;\n }\n return true;\n }, [hideRequiredMark, requiredMark, contextForm]);\n const mergedColon = colon !== null && colon !== void 0 ? colon : contextForm === null || contextForm === void 0 ? void 0 : contextForm.colon;\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const formClassName = classNames(prefixCls, `${prefixCls}-${layout}`, {\n [`${prefixCls}-hide-required-mark`]: mergedRequiredMark === false,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-${mergedSize}`]: mergedSize\n }, hashId, contextForm === null || contextForm === void 0 ? void 0 : contextForm.className, className, rootClassName);\n const [wrapForm] = useForm(form);\n const {\n __INTERNAL__\n } = wrapForm;\n __INTERNAL__.name = name;\n const formContextValue = useMemo(() => ({\n name,\n labelAlign,\n labelCol,\n labelWrap,\n wrapperCol,\n vertical: layout === 'vertical',\n colon: mergedColon,\n requiredMark: mergedRequiredMark,\n itemRef: __INTERNAL__.itemRef,\n form: wrapForm\n }), [name, labelAlign, labelCol, wrapperCol, layout, mergedColon, mergedRequiredMark, wrapForm]);\n React.useImperativeHandle(ref, () => wrapForm);\n const scrollToField = (options, fieldName) => {\n if (options) {\n let defaultScrollToFirstError = {\n block: 'nearest'\n };\n if (typeof options === 'object') {\n defaultScrollToFirstError = options;\n }\n wrapForm.scrollToField(fieldName, defaultScrollToFirstError);\n }\n };\n const onInternalFinishFailed = errorInfo => {\n onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errorInfo);\n if (errorInfo.errorFields.length) {\n const fieldName = errorInfo.errorFields[0].name;\n if (scrollToFirstError !== undefined) {\n scrollToField(scrollToFirstError, fieldName);\n return;\n }\n if (contextForm && contextForm.scrollToFirstError !== undefined) {\n scrollToField(contextForm.scrollToFirstError, fieldName);\n }\n }\n };\n return wrapSSR( /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: disabled\n }, /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: mergedSize\n }, /*#__PURE__*/React.createElement(FormProvider, {\n // This is not list in API, we pass with spread\n validateMessages: contextValidateMessages\n }, /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: formContextValue\n }, /*#__PURE__*/React.createElement(FieldForm, Object.assign({\n id: name\n }, restFormProps, {\n name: name,\n onFinishFailed: onInternalFinishFailed,\n form: wrapForm,\n style: Object.assign(Object.assign({}, contextForm === null || contextForm === void 0 ? void 0 : contextForm.style), style),\n className: formClassName\n })))))));\n};\nconst Form = /*#__PURE__*/React.forwardRef(InternalForm);\nif (process.env.NODE_ENV !== 'production') {\n Form.displayName = 'Form';\n}\nexport { List, useForm, useWatch };\nexport default Form;","import { useContext } from 'react';\nimport { FormItemInputContext } from '../context';\nimport warning from '../../_util/warning';\nconst useFormItemStatus = () => {\n const {\n status,\n errors = [],\n warnings = []\n } = useContext(FormItemInputContext);\n process.env.NODE_ENV !== \"production\" ? warning(status !== undefined, 'Form.Item', 'Form.Item.useStatus should be used under Form.Item component. For more information: https://u.ant.design/form-item-usestatus') : void 0;\n return {\n status,\n errors,\n warnings\n };\n};\n// Only used for compatible package. Not promise this will work on future version.\nuseFormItemStatus.Context = FormItemInputContext;\nexport default useFormItemStatus;","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nexport default function useFrameState(defaultValue) {\n const [value, setValue] = React.useState(defaultValue);\n const frameRef = useRef(null);\n const batchRef = useRef([]);\n const destroyRef = useRef(false);\n React.useEffect(() => {\n destroyRef.current = false;\n return () => {\n destroyRef.current = true;\n raf.cancel(frameRef.current);\n frameRef.current = null;\n };\n }, []);\n function setFrameValue(updater) {\n if (destroyRef.current) {\n return;\n }\n if (frameRef.current === null) {\n batchRef.current = [];\n frameRef.current = raf(() => {\n frameRef.current = null;\n setValue(prevValue => {\n let current = prevValue;\n batchRef.current.forEach(func => {\n current = func(current);\n });\n return current;\n });\n });\n }\n batchRef.current.push(updater);\n }\n return [value, setFrameValue];\n}","import { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { FormContext } from '../context';\nexport default function useItemRef() {\n const {\n itemRef\n } = React.useContext(FormContext);\n const cacheRef = React.useRef({});\n function getRef(name, children) {\n const childrenRef = children && typeof children === 'object' && children.ref;\n const nameStr = name.join('_');\n if (cacheRef.current.name !== nameStr || cacheRef.current.originRef !== childrenRef) {\n cacheRef.current.name = nameStr;\n cacheRef.current.originRef = childrenRef;\n cacheRef.current.ref = composeRef(itemRef(name), childrenRef);\n }\n return cacheRef.current.ref;\n }\n return getRef;\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport Col from '../grid/col';\nimport { FormContext, FormItemPrefixContext } from './context';\nimport ErrorList from './ErrorList';\nconst FormItemInput = props => {\n const {\n prefixCls,\n status,\n wrapperCol,\n children,\n errors,\n warnings,\n _internalItemRender: formItemRender,\n extra,\n help,\n fieldId,\n marginBottom,\n onErrorVisibleChanged\n } = props;\n const baseClassName = `${prefixCls}-item`;\n const formContext = React.useContext(FormContext);\n const mergedWrapperCol = wrapperCol || formContext.wrapperCol || {};\n const className = classNames(`${baseClassName}-control`, mergedWrapperCol.className);\n // Pass to sub FormItem should not with col info\n const subFormContext = React.useMemo(() => Object.assign({}, formContext), [formContext]);\n delete subFormContext.labelCol;\n delete subFormContext.wrapperCol;\n const inputDom = /*#__PURE__*/React.createElement(\"div\", {\n className: `${baseClassName}-control-input`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${baseClassName}-control-input-content`\n }, children));\n const formItemContext = React.useMemo(() => ({\n prefixCls,\n status\n }), [prefixCls, status]);\n const errorListDom = marginBottom !== null || errors.length || warnings.length ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'flex',\n flexWrap: 'nowrap'\n }\n }, /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: formItemContext\n }, /*#__PURE__*/React.createElement(ErrorList, {\n fieldId: fieldId,\n errors: errors,\n warnings: warnings,\n help: help,\n helpStatus: status,\n className: `${baseClassName}-explain-connected`,\n onVisibleChanged: onErrorVisibleChanged\n })), !!marginBottom && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: 0,\n height: marginBottom\n }\n })) : null;\n const extraProps = {};\n if (fieldId) {\n extraProps.id = `${fieldId}_extra`;\n }\n // If extra = 0, && will goes wrong\n // 0&&error -> 0\n const extraDom = extra ? /*#__PURE__*/React.createElement(\"div\", Object.assign({}, extraProps, {\n className: `${baseClassName}-extra`\n }), extra) : null;\n const dom = formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? formItemRender.render(props, {\n input: inputDom,\n errorList: errorListDom,\n extra: extraDom\n }) : /*#__PURE__*/React.createElement(React.Fragment, null, inputDom, errorListDom, extraDom);\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: subFormContext\n }, /*#__PURE__*/React.createElement(Col, Object.assign({}, mergedWrapperCol, {\n className: className\n }), dom));\n};\nexport default FormItemInput;","// This icon file is generated automatically.\nvar QuestionCircleOutlined = { \"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\": \"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"question-circle\", \"theme\": \"outlined\" };\nexport default QuestionCircleOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport QuestionCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/QuestionCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar QuestionCircleOutlined = function QuestionCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: QuestionCircleOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n QuestionCircleOutlined.displayName = 'QuestionCircleOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(QuestionCircleOutlined);","var __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 QuestionCircleOutlined from \"@ant-design/icons/es/icons/QuestionCircleOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Col from '../grid/col';\nimport defaultLocale from '../locale/en_US';\nimport { useLocale } from '../locale';\nimport Tooltip from '../tooltip';\nimport { FormContext } from './context';\nfunction toTooltipProps(tooltip) {\n if (!tooltip) {\n return null;\n }\n if (typeof tooltip === 'object' && ! /*#__PURE__*/React.isValidElement(tooltip)) {\n return tooltip;\n }\n return {\n title: tooltip\n };\n}\nconst FormItemLabel = _ref => {\n let {\n prefixCls,\n label,\n htmlFor,\n labelCol,\n labelAlign,\n colon,\n required,\n requiredMark,\n tooltip\n } = _ref;\n var _a;\n const [formLocale] = useLocale('Form');\n const {\n vertical,\n labelAlign: contextLabelAlign,\n labelCol: contextLabelCol,\n labelWrap,\n colon: contextColon\n } = React.useContext(FormContext);\n if (!label) {\n return null;\n }\n const mergedLabelCol = labelCol || contextLabelCol || {};\n const mergedLabelAlign = labelAlign || contextLabelAlign;\n const labelClsBasic = `${prefixCls}-item-label`;\n const labelColClassName = classNames(labelClsBasic, mergedLabelAlign === 'left' && `${labelClsBasic}-left`, mergedLabelCol.className, {\n [`${labelClsBasic}-wrap`]: !!labelWrap\n });\n let labelChildren = label;\n // Keep label is original where there should have no colon\n const computedColon = colon === true || contextColon !== false && colon !== false;\n const haveColon = computedColon && !vertical;\n // Remove duplicated user input colon\n if (haveColon && typeof label === 'string' && label.trim() !== '') {\n labelChildren = label.replace(/[:|:]\\s*$/, '');\n }\n // Tooltip\n const tooltipProps = toTooltipProps(tooltip);\n if (tooltipProps) {\n const {\n icon = /*#__PURE__*/React.createElement(QuestionCircleOutlined, null)\n } = tooltipProps,\n restTooltipProps = __rest(tooltipProps, [\"icon\"]);\n const tooltipNode = /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, restTooltipProps), /*#__PURE__*/React.cloneElement(icon, {\n className: `${prefixCls}-item-tooltip`,\n title: ''\n }));\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, tooltipNode);\n }\n if (requiredMark === 'optional' && !required) {\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-item-optional`,\n title: \"\"\n }, (formLocale === null || formLocale === void 0 ? void 0 : formLocale.optional) || ((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.optional)));\n }\n const labelClassName = classNames({\n [`${prefixCls}-item-required`]: required,\n [`${prefixCls}-item-required-mark-optional`]: requiredMark === 'optional',\n [`${prefixCls}-item-no-colon`]: !computedColon\n });\n return /*#__PURE__*/React.createElement(Col, Object.assign({}, mergedLabelCol, {\n className: labelColClassName\n }), /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: htmlFor,\n className: labelClassName,\n title: typeof label === 'string' ? label : ''\n }, labelChildren));\n};\nexport default FormItemLabel;","var __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 CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { Row } from '../../grid';\nimport FormItemInput from '../FormItemInput';\nimport FormItemLabel from '../FormItemLabel';\nimport { FormContext, FormItemInputContext, NoStyleItemContext } from '../context';\nimport useDebounce from '../hooks/useDebounce';\nconst iconMap = {\n success: CheckCircleFilled,\n warning: ExclamationCircleFilled,\n error: CloseCircleFilled,\n validating: LoadingOutlined\n};\nexport default function ItemHolder(props) {\n const {\n prefixCls,\n className,\n rootClassName,\n style,\n help,\n errors,\n warnings,\n validateStatus,\n meta,\n hasFeedback,\n hidden,\n children,\n fieldId,\n required,\n isRequired,\n onSubItemMetaChange\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"style\", \"help\", \"errors\", \"warnings\", \"validateStatus\", \"meta\", \"hasFeedback\", \"hidden\", \"children\", \"fieldId\", \"required\", \"isRequired\", \"onSubItemMetaChange\"]);\n const itemPrefixCls = `${prefixCls}-item`;\n const {\n requiredMark\n } = React.useContext(FormContext);\n // ======================== Margin ========================\n const itemRef = React.useRef(null);\n const debounceErrors = useDebounce(errors);\n const debounceWarnings = useDebounce(warnings);\n const hasHelp = help !== undefined && help !== null;\n const hasError = !!(hasHelp || errors.length || warnings.length);\n const isOnScreen = !!itemRef.current && isVisible(itemRef.current);\n const [marginBottom, setMarginBottom] = React.useState(null);\n useLayoutEffect(() => {\n if (hasError && itemRef.current) {\n // The element must be part of the DOMTree to use getComputedStyle\n // https://stackoverflow.com/questions/35360711/getcomputedstyle-returns-a-cssstyledeclaration-but-all-properties-are-empty-on-a\n const itemStyle = getComputedStyle(itemRef.current);\n setMarginBottom(parseInt(itemStyle.marginBottom, 10));\n }\n }, [hasError, isOnScreen]);\n const onErrorVisibleChanged = nextVisible => {\n if (!nextVisible) {\n setMarginBottom(null);\n }\n };\n // ======================== Status ========================\n const getValidateState = function () {\n let isDebounce = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n let status = '';\n const _errors = isDebounce ? debounceErrors : meta.errors;\n const _warnings = isDebounce ? debounceWarnings : meta.warnings;\n if (validateStatus !== undefined) {\n status = validateStatus;\n } else if (meta.validating) {\n status = 'validating';\n } else if (_errors.length) {\n status = 'error';\n } else if (_warnings.length) {\n status = 'warning';\n } else if (meta.touched || hasFeedback && meta.validated) {\n // success feedback should display when pass hasFeedback prop and current value is valid value\n status = 'success';\n }\n return status;\n };\n const mergedValidateStatus = getValidateState();\n const formItemStatusContext = React.useMemo(() => {\n let feedbackIcon;\n if (hasFeedback) {\n const IconNode = mergedValidateStatus && iconMap[mergedValidateStatus];\n feedbackIcon = IconNode ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${itemPrefixCls}-feedback-icon`, `${itemPrefixCls}-feedback-icon-${mergedValidateStatus}`)\n }, /*#__PURE__*/React.createElement(IconNode, null)) : null;\n }\n return {\n status: mergedValidateStatus,\n errors,\n warnings,\n hasFeedback,\n feedbackIcon,\n isFormItemInput: true\n };\n }, [mergedValidateStatus, hasFeedback]);\n // ======================== Render ========================\n const itemClassName = classNames(itemPrefixCls, className, rootClassName, {\n [`${itemPrefixCls}-with-help`]: hasHelp || debounceErrors.length || debounceWarnings.length,\n // Status\n [`${itemPrefixCls}-has-feedback`]: mergedValidateStatus && hasFeedback,\n [`${itemPrefixCls}-has-success`]: mergedValidateStatus === 'success',\n [`${itemPrefixCls}-has-warning`]: mergedValidateStatus === 'warning',\n [`${itemPrefixCls}-has-error`]: mergedValidateStatus === 'error',\n [`${itemPrefixCls}-is-validating`]: mergedValidateStatus === 'validating',\n [`${itemPrefixCls}-hidden`]: hidden\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: itemClassName,\n style: style,\n ref: itemRef\n }, /*#__PURE__*/React.createElement(Row, Object.assign({\n className: `${itemPrefixCls}-row`\n }, omit(restProps, ['_internalItemRender', 'colon', 'dependencies', 'extra', 'fieldKey', 'getValueFromEvent', 'getValueProps', 'htmlFor', 'id', 'initialValue', 'isListField', 'label', 'labelAlign', 'labelCol', 'labelWrap', 'messageVariables', 'name', 'normalize', 'noStyle', 'preserve', 'requiredMark', 'rules', 'shouldUpdate', 'trigger', 'tooltip', 'validateFirst', 'validateTrigger', 'valuePropName', 'wrapperCol'])), /*#__PURE__*/React.createElement(FormItemLabel, Object.assign({\n htmlFor: fieldId\n }, props, {\n requiredMark: requiredMark,\n required: required !== null && required !== void 0 ? required : isRequired,\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(FormItemInput, Object.assign({}, props, meta, {\n errors: debounceErrors,\n warnings: debounceWarnings,\n prefixCls: prefixCls,\n status: mergedValidateStatus,\n help: help,\n marginBottom: marginBottom,\n onErrorVisibleChanged: onErrorVisibleChanged\n }), /*#__PURE__*/React.createElement(NoStyleItemContext.Provider, {\n value: onSubItemMetaChange\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: formItemStatusContext\n }, children)))), !!marginBottom && /*#__PURE__*/React.createElement(\"div\", {\n className: `${itemPrefixCls}-margin-offset`,\n style: {\n marginBottom: -marginBottom\n }\n }));\n}","import toArray from \"rc-util/es/Children/toArray\";\nexport default function useChildren(children) {\n if (typeof children === 'function') {\n return children;\n }\n const childList = toArray(children);\n return childList.length <= 1 ? childList[0] : childList;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport { Field, FieldContext, ListContext } from 'rc-field-form';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nimport warning from '../../_util/warning';\nimport { ConfigContext } from '../../config-provider';\nimport { FormContext, NoStyleItemContext } from '../context';\nimport useFormItemStatus from '../hooks/useFormItemStatus';\nimport useFrameState from '../hooks/useFrameState';\nimport useItemRef from '../hooks/useItemRef';\nimport { getFieldId, toArray } from '../util';\nimport ItemHolder from './ItemHolder';\nimport useChildren from '../hooks/useChildren';\nimport useStyle from '../style';\nconst NAME_SPLIT = '__SPLIT__';\nconst ValidateStatuses = ['success', 'warning', 'error', 'validating', ''];\nconst MemoInput = /*#__PURE__*/React.memo(_ref => {\n let {\n children\n } = _ref;\n return children;\n}, (prev, next) => prev.value === next.value && prev.update === next.update && prev.childProps.length === next.childProps.length && prev.childProps.every((value, index) => value === next.childProps[index]));\nfunction hasValidName(name) {\n if (name === null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', '`null` is passed as `name` property') : void 0;\n }\n return !(name === undefined || name === null);\n}\nfunction genEmptyMeta() {\n return {\n errors: [],\n warnings: [],\n touched: false,\n validating: false,\n name: [],\n validated: false\n };\n}\nfunction InternalFormItem(props) {\n const {\n name,\n noStyle,\n className,\n dependencies,\n prefixCls: customizePrefixCls,\n shouldUpdate,\n rules,\n children,\n required,\n label,\n messageVariables,\n trigger = 'onChange',\n validateTrigger,\n hidden,\n help\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n name: formName\n } = React.useContext(FormContext);\n const mergedChildren = useChildren(children);\n const isRenderProps = typeof mergedChildren === 'function';\n const notifyParentMetaChange = React.useContext(NoStyleItemContext);\n const {\n validateTrigger: contextValidateTrigger\n } = React.useContext(FieldContext);\n const mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : contextValidateTrigger;\n const hasName = hasValidName(name);\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // ========================= MISC =========================\n // Get `noStyle` required info\n const listContext = React.useContext(ListContext);\n const fieldKeyPathRef = React.useRef();\n // ======================== Errors ========================\n // >>>>> Collect sub field errors\n const [subFieldErrors, setSubFieldErrors] = useFrameState({});\n // >>>>> Current field errors\n const [meta, setMeta] = useState(() => genEmptyMeta());\n const onMetaChange = nextMeta => {\n // This keyInfo is not correct when field is removed\n // Since origin keyManager no longer keep the origin key anymore\n // Which means we need cache origin one and reuse when removed\n const keyInfo = listContext === null || listContext === void 0 ? void 0 : listContext.getKey(nextMeta.name);\n // Destroy will reset all the meta\n setMeta(nextMeta.destroy ? genEmptyMeta() : nextMeta, true);\n // Bump to parent since noStyle\n if (noStyle && help !== false && notifyParentMetaChange) {\n let namePath = nextMeta.name;\n if (!nextMeta.destroy) {\n if (keyInfo !== undefined) {\n const [fieldKey, restPath] = keyInfo;\n namePath = [fieldKey].concat(_toConsumableArray(restPath));\n fieldKeyPathRef.current = namePath;\n }\n } else {\n // Use origin cache data\n namePath = fieldKeyPathRef.current || namePath;\n }\n notifyParentMetaChange(nextMeta, namePath);\n }\n };\n // >>>>> Collect noStyle Field error to the top FormItem\n const onSubItemMetaChange = (subMeta, uniqueKeys) => {\n // Only `noStyle` sub item will trigger\n setSubFieldErrors(prevSubFieldErrors => {\n const clone = Object.assign({}, prevSubFieldErrors);\n // name: ['user', 1] + key: [4] = ['user', 4]\n const mergedNamePath = [].concat(_toConsumableArray(subMeta.name.slice(0, -1)), _toConsumableArray(uniqueKeys));\n const mergedNameKey = mergedNamePath.join(NAME_SPLIT);\n if (subMeta.destroy) {\n // Remove\n delete clone[mergedNameKey];\n } else {\n // Update\n clone[mergedNameKey] = subMeta;\n }\n return clone;\n });\n };\n // >>>>> Get merged errors\n const [mergedErrors, mergedWarnings] = React.useMemo(() => {\n const errorList = _toConsumableArray(meta.errors);\n const warningList = _toConsumableArray(meta.warnings);\n Object.values(subFieldErrors).forEach(subFieldError => {\n errorList.push.apply(errorList, _toConsumableArray(subFieldError.errors || []));\n warningList.push.apply(warningList, _toConsumableArray(subFieldError.warnings || []));\n });\n return [errorList, warningList];\n }, [subFieldErrors, meta.errors, meta.warnings]);\n // ===================== Children Ref =====================\n const getItemRef = useItemRef();\n // ======================== Render ========================\n function renderLayout(baseChildren, fieldId, isRequired) {\n if (noStyle && !hidden) {\n return baseChildren;\n }\n return /*#__PURE__*/React.createElement(ItemHolder, Object.assign({\n key: \"row\"\n }, props, {\n className: classNames(className, hashId),\n prefixCls: prefixCls,\n fieldId: fieldId,\n isRequired: isRequired,\n errors: mergedErrors,\n warnings: mergedWarnings,\n meta: meta,\n onSubItemMetaChange: onSubItemMetaChange\n }), baseChildren);\n }\n if (!hasName && !isRenderProps && !dependencies) {\n return wrapSSR(renderLayout(mergedChildren));\n }\n let variables = {};\n if (typeof label === 'string') {\n variables.label = label;\n } else if (name) {\n variables.label = String(name);\n }\n if (messageVariables) {\n variables = Object.assign(Object.assign({}, variables), messageVariables);\n }\n // >>>>> With Field\n return wrapSSR( /*#__PURE__*/React.createElement(Field, Object.assign({}, props, {\n messageVariables: variables,\n trigger: trigger,\n validateTrigger: mergedValidateTrigger,\n onMetaChange: onMetaChange\n }), (control, renderMeta, context) => {\n const mergedName = toArray(name).length && renderMeta ? renderMeta.name : [];\n const fieldId = getFieldId(mergedName, formName);\n const isRequired = required !== undefined ? required : !!(rules && rules.some(rule => {\n if (rule && typeof rule === 'object' && rule.required && !rule.warningOnly) {\n return true;\n }\n if (typeof rule === 'function') {\n const ruleEntity = rule(context);\n return ruleEntity && ruleEntity.required && !ruleEntity.warningOnly;\n }\n return false;\n }));\n // ======================= Children =======================\n const mergedControl = Object.assign({}, control);\n let childNode = null;\n process.env.NODE_ENV !== \"production\" ? warning(!(shouldUpdate && dependencies), 'Form.Item', \"`shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.\") : void 0;\n if (Array.isArray(mergedChildren) && hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', 'A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item.') : void 0;\n childNode = mergedChildren;\n } else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {\n process.env.NODE_ENV !== \"production\" ? warning(!!(shouldUpdate || dependencies), 'Form.Item', 'A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!hasName, 'Form.Item', 'A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.') : void 0;\n } else if (dependencies && !isRenderProps && !hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', 'Must set `name` or use a render function when `dependencies` is set.') : void 0;\n } else if (isValidElement(mergedChildren)) {\n process.env.NODE_ENV !== \"production\" ? warning(mergedChildren.props.defaultValue === undefined, 'Form.Item', '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.') : void 0;\n const childProps = Object.assign(Object.assign({}, mergedChildren.props), mergedControl);\n if (!childProps.id) {\n childProps.id = fieldId;\n }\n if (help || mergedErrors.length > 0 || mergedWarnings.length > 0 || props.extra) {\n const describedbyArr = [];\n if (help || mergedErrors.length > 0) {\n describedbyArr.push(`${fieldId}_help`);\n }\n if (props.extra) {\n describedbyArr.push(`${fieldId}_extra`);\n }\n childProps['aria-describedby'] = describedbyArr.join(' ');\n }\n if (mergedErrors.length > 0) {\n childProps['aria-invalid'] = 'true';\n }\n if (isRequired) {\n childProps['aria-required'] = 'true';\n }\n if (supportRef(mergedChildren)) {\n childProps.ref = getItemRef(mergedName, mergedChildren);\n }\n // We should keep user origin event handler\n const triggers = new Set([].concat(_toConsumableArray(toArray(trigger)), _toConsumableArray(toArray(mergedValidateTrigger))));\n triggers.forEach(eventName => {\n childProps[eventName] = function () {\n var _a2, _c2;\n var _a, _b, _c;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_a = mergedControl[eventName]) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [mergedControl].concat(args));\n (_c = (_b = mergedChildren.props)[eventName]) === null || _c === void 0 ? void 0 : (_c2 = _c).call.apply(_c2, [_b].concat(args));\n };\n });\n // List of props that need to be watched for changes -> if changes are detected in MemoInput -> rerender\n const watchingChildProps = [childProps['aria-required'], childProps['aria-invalid'], childProps['aria-describedby']];\n childNode = /*#__PURE__*/React.createElement(MemoInput, {\n value: mergedControl[props.valuePropName || 'value'],\n update: mergedChildren,\n childProps: watchingChildProps\n }, cloneElement(mergedChildren, childProps));\n } else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {\n childNode = mergedChildren(context);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(!mergedName.length, 'Form.Item', '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.') : void 0;\n childNode = mergedChildren;\n }\n return renderLayout(childNode, fieldId, isRequired);\n }));\n}\nconst FormItem = InternalFormItem;\nFormItem.useStatus = useFormItemStatus;\nexport default FormItem;","var __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 { List } from 'rc-field-form';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemPrefixContext } from './context';\nconst FormList = _a => {\n var {\n prefixCls: customizePrefixCls,\n children\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"children\"]);\n process.env.NODE_ENV !== \"production\" ? warning(typeof props.name === 'number' || (Array.isArray(props.name) ? !!props.name.length : !!props.name), 'Form.List', 'Miss `name` prop.') : void 0;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n const contextValue = React.useMemo(() => ({\n prefixCls,\n status: 'error'\n }), [prefixCls]);\n return /*#__PURE__*/React.createElement(List, Object.assign({}, props), (fields, operation, meta) => /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: contextValue\n }, children(fields.map(field => Object.assign(Object.assign({}, field), {\n fieldKey: field.key\n })), operation, {\n errors: meta.errors,\n warnings: meta.warnings\n })));\n};\nexport default FormList;","import { useContext } from 'react';\nimport { FormContext } from '../context';\nexport default function useFormInstance() {\n const {\n form\n } = useContext(FormContext);\n return form;\n}","'use client';\n\nimport warning from '../_util/warning';\nimport ErrorList from './ErrorList';\nimport InternalForm, { useForm, useWatch } from './Form';\nimport Item from './FormItem';\nimport List from './FormList';\nimport { FormProvider } from './context';\nimport useFormInstance from './hooks/useFormInstance';\nconst Form = InternalForm;\nForm.Item = Item;\nForm.List = List;\nForm.ErrorList = ErrorList;\nForm.useForm = useForm;\nForm.useFormInstance = useFormInstance;\nForm.useWatch = useWatch;\nForm.Provider = FormProvider;\nForm.create = () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form', 'antd v4 removed `Form.create`. Please remove or use `@ant-design/compatible` instead.') : void 0;\n};\nexport default Form;","import { createContext } from 'react';\n// ZombieJ: We export single file here since\n// ConfigProvider use this which will make loop deps\n// to import whole `rc-field-form`\nexport default /*#__PURE__*/createContext(undefined);","import { createContext } from 'react';\nconst RowContext = /*#__PURE__*/createContext({});\nexport default RowContext;","var __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 RowContext from './RowContext';\nimport { useColStyle } from './style';\nfunction parseFlex(flex) {\n if (typeof flex === 'number') {\n return `${flex} ${flex} auto`;\n }\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return `0 0 ${flex}`;\n }\n return flex;\n}\nconst sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nconst Col = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n gutter,\n wrap,\n supportFlexGap\n } = React.useContext(RowContext);\n const {\n prefixCls: customizePrefixCls,\n span,\n order,\n offset,\n push,\n pull,\n className,\n children,\n flex,\n style\n } = props,\n others = __rest(props, [\"prefixCls\", \"span\", \"order\", \"offset\", \"push\", \"pull\", \"className\", \"children\", \"flex\", \"style\"]);\n const prefixCls = getPrefixCls('col', customizePrefixCls);\n const [wrapSSR, hashId] = useColStyle(prefixCls);\n let sizeClassObj = {};\n sizes.forEach(size => {\n let sizeProps = {};\n const propSize = props[size];\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (typeof propSize === 'object') {\n sizeProps = propSize || {};\n }\n delete others[size];\n sizeClassObj = Object.assign(Object.assign({}, sizeClassObj), {\n [`${prefixCls}-${size}-${sizeProps.span}`]: sizeProps.span !== undefined,\n [`${prefixCls}-${size}-order-${sizeProps.order}`]: sizeProps.order || sizeProps.order === 0,\n [`${prefixCls}-${size}-offset-${sizeProps.offset}`]: sizeProps.offset || sizeProps.offset === 0,\n [`${prefixCls}-${size}-push-${sizeProps.push}`]: sizeProps.push || sizeProps.push === 0,\n [`${prefixCls}-${size}-pull-${sizeProps.pull}`]: sizeProps.pull || sizeProps.pull === 0,\n [`${prefixCls}-${size}-flex-${sizeProps.flex}`]: sizeProps.flex || sizeProps.flex === 'auto',\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n });\n const classes = classNames(prefixCls, {\n [`${prefixCls}-${span}`]: span !== undefined,\n [`${prefixCls}-order-${order}`]: order,\n [`${prefixCls}-offset-${offset}`]: offset,\n [`${prefixCls}-push-${push}`]: push,\n [`${prefixCls}-pull-${pull}`]: pull\n }, className, sizeClassObj, hashId);\n const mergedStyle = {};\n // Horizontal gutter use padding\n if (gutter && gutter[0] > 0) {\n const horizontalGutter = gutter[0] / 2;\n mergedStyle.paddingLeft = horizontalGutter;\n mergedStyle.paddingRight = horizontalGutter;\n }\n // Vertical gutter use padding when gap not support\n if (gutter && gutter[1] > 0 && !supportFlexGap) {\n const verticalGutter = gutter[1] / 2;\n mergedStyle.paddingTop = verticalGutter;\n mergedStyle.paddingBottom = verticalGutter;\n }\n if (flex) {\n mergedStyle.flex = parseFlex(flex);\n // Hack for Firefox to avoid size issue\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n if (wrap === false && !mergedStyle.minWidth) {\n mergedStyle.minWidth = 0;\n }\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n style: Object.assign(Object.assign({}, mergedStyle), style),\n className: classes,\n ref: ref\n }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Col.displayName = 'Col';\n}\nexport default Col;","import { useRef } from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport useResponsiveObserver from '../../_util/responsiveObserver';\nfunction useBreakpoint() {\n let refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n const screensRef = useRef({});\n const forceUpdate = useForceUpdate();\n const responsiveObserver = useResponsiveObserver();\n useLayoutEffect(() => {\n const token = responsiveObserver.subscribe(supportScreens => {\n screensRef.current = supportScreens;\n if (refreshOnChange) {\n forceUpdate();\n }\n });\n return () => responsiveObserver.unsubscribe(token);\n }, []);\n return screensRef.current;\n}\nexport default useBreakpoint;","var __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 useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport useResponsiveObserver, { responsiveArray } from '../_util/responsiveObserver';\nimport RowContext from './RowContext';\nimport { useRowStyle } from './style';\nconst RowAligns = ['top', 'middle', 'bottom', 'stretch'];\nconst RowJustify = ['start', 'end', 'center', 'space-around', 'space-between', 'space-evenly'];\nfunction useMergePropByScreen(oriProp, screen) {\n const [prop, setProp] = React.useState(typeof oriProp === 'string' ? oriProp : '');\n const calcMergeAlignOrJustify = () => {\n if (typeof oriProp === 'string') {\n setProp(oriProp);\n }\n if (typeof oriProp !== 'object') {\n return;\n }\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n // if do not match, do nothing\n if (!screen[breakpoint]) continue;\n const curVal = oriProp[breakpoint];\n if (curVal !== undefined) {\n setProp(curVal);\n return;\n }\n }\n };\n React.useEffect(() => {\n calcMergeAlignOrJustify();\n }, [JSON.stringify(oriProp), screen]);\n return prop;\n}\nconst Row = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n justify,\n align,\n className,\n style,\n children,\n gutter = 0,\n wrap\n } = props,\n others = __rest(props, [\"prefixCls\", \"justify\", \"align\", \"className\", \"style\", \"children\", \"gutter\", \"wrap\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [screens, setScreens] = React.useState({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true\n });\n // to save screens info when responsiveObserve callback had been call\n const [curScreens, setCurScreens] = React.useState({\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false\n });\n // ================================== calc responsive data ==================================\n const mergeAlign = useMergePropByScreen(align, curScreens);\n const mergeJustify = useMergePropByScreen(justify, curScreens);\n const supportFlexGap = useFlexGapSupport();\n const gutterRef = React.useRef(gutter);\n const responsiveObserver = useResponsiveObserver();\n // ================================== Effect ==================================\n React.useEffect(() => {\n const token = responsiveObserver.subscribe(screen => {\n setCurScreens(screen);\n const currentGutter = gutterRef.current || 0;\n if (!Array.isArray(currentGutter) && typeof currentGutter === 'object' || Array.isArray(currentGutter) && (typeof currentGutter[0] === 'object' || typeof currentGutter[1] === 'object')) {\n setScreens(screen);\n }\n });\n return () => responsiveObserver.unsubscribe(token);\n }, []);\n // ================================== Render ==================================\n const getGutter = () => {\n const results = [undefined, undefined];\n const normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];\n normalizedGutter.forEach((g, index) => {\n if (typeof g === 'object') {\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g;\n }\n });\n return results;\n };\n const prefixCls = getPrefixCls('row', customizePrefixCls);\n const [wrapSSR, hashId] = useRowStyle(prefixCls);\n const gutters = getGutter();\n const classes = classNames(prefixCls, {\n [`${prefixCls}-no-wrap`]: wrap === false,\n [`${prefixCls}-${mergeJustify}`]: mergeJustify,\n [`${prefixCls}-${mergeAlign}`]: mergeAlign,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n // Add gutter related style\n const rowStyle = {};\n const horizontalGutter = gutters[0] != null && gutters[0] > 0 ? gutters[0] / -2 : undefined;\n const verticalGutter = gutters[1] != null && gutters[1] > 0 ? gutters[1] / -2 : undefined;\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter;\n rowStyle.marginRight = horizontalGutter;\n }\n if (supportFlexGap) {\n // Set gap direct if flex gap support\n [, rowStyle.rowGap] = gutters;\n } else if (verticalGutter) {\n rowStyle.marginTop = verticalGutter;\n rowStyle.marginBottom = verticalGutter;\n }\n // \"gutters\" is a new array in each rendering phase, it'll make 'React.useMemo' effectless.\n // So we deconstruct \"gutters\" variable here.\n const [gutterH, gutterV] = gutters;\n const rowContext = React.useMemo(() => ({\n gutter: [gutterH, gutterV],\n wrap,\n supportFlexGap\n }), [gutterH, gutterV, wrap, supportFlexGap]);\n return wrapSSR( /*#__PURE__*/React.createElement(RowContext.Provider, {\n value: rowContext\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classes,\n style: Object.assign(Object.assign({}, rowStyle), style),\n ref: ref\n }), children)));\n});\nif (process.env.NODE_ENV !== 'production') {\n Row.displayName = 'Row';\n}\nexport default Row;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Row-Shared ==============================\nconst genGridRowStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // Grid system\n [componentCls]: {\n display: 'flex',\n flexFlow: 'row wrap',\n minWidth: 0,\n '&::before, &::after': {\n display: 'flex'\n },\n '&-no-wrap': {\n flexWrap: 'nowrap'\n },\n // The origin of the X-axis\n '&-start': {\n justifyContent: 'flex-start'\n },\n // The center of the X-axis\n '&-center': {\n justifyContent: 'center'\n },\n // The opposite of the X-axis\n '&-end': {\n justifyContent: 'flex-end'\n },\n '&-space-between': {\n justifyContent: 'space-between'\n },\n '&-space-around': {\n justifyContent: 'space-around'\n },\n '&-space-evenly': {\n justifyContent: 'space-evenly'\n },\n // Align at the top\n '&-top': {\n alignItems: 'flex-start'\n },\n // Align at the center\n '&-middle': {\n alignItems: 'center'\n },\n '&-bottom': {\n alignItems: 'flex-end'\n }\n }\n };\n};\n// ============================== Col-Shared ==============================\nconst genGridColStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // Grid system\n [componentCls]: {\n position: 'relative',\n maxWidth: '100%',\n // Prevent columns from collapsing when empty\n minHeight: 1\n }\n };\n};\nconst genLoopGridColumnsStyle = (token, sizeCls) => {\n const {\n componentCls,\n gridColumns\n } = token;\n const gridColumnsStyle = {};\n for (let i = gridColumns; i >= 0; i--) {\n if (i === 0) {\n gridColumnsStyle[`${componentCls}${sizeCls}-${i}`] = {\n display: 'none'\n };\n gridColumnsStyle[`${componentCls}-push-${i}`] = {\n insetInlineStart: 'auto'\n };\n gridColumnsStyle[`${componentCls}-pull-${i}`] = {\n insetInlineEnd: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-push-${i}`] = {\n insetInlineStart: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-pull-${i}`] = {\n insetInlineEnd: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-offset-${i}`] = {\n marginInlineStart: 0\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-order-${i}`] = {\n order: 0\n };\n } else {\n gridColumnsStyle[`${componentCls}${sizeCls}-${i}`] = {\n display: 'block',\n flex: `0 0 ${i / gridColumns * 100}%`,\n maxWidth: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-push-${i}`] = {\n insetInlineStart: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-pull-${i}`] = {\n insetInlineEnd: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-offset-${i}`] = {\n marginInlineStart: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-order-${i}`] = {\n order: i\n };\n }\n }\n return gridColumnsStyle;\n};\nconst genGridStyle = (token, sizeCls) => genLoopGridColumnsStyle(token, sizeCls);\nconst genGridMediaStyle = (token, screenSize, sizeCls) => ({\n [`@media (min-width: ${screenSize}px)`]: Object.assign({}, genGridStyle(token, sizeCls))\n});\n// ============================== Export ==============================\nexport const useRowStyle = genComponentStyleHook('Grid', token => [genGridRowStyle(token)]);\nexport const useColStyle = genComponentStyleHook('Grid', token => {\n const gridToken = mergeToken(token, {\n gridColumns: 24 // Row is divided into 24 parts in Grid\n });\n\n const gridMediaSizesMap = {\n '-sm': gridToken.screenSMMin,\n '-md': gridToken.screenMDMin,\n '-lg': gridToken.screenLGMin,\n '-xl': gridToken.screenXLMin,\n '-xxl': gridToken.screenXXLMin\n };\n return [genGridColStyle(gridToken), genGridStyle(gridToken, ''), genGridStyle(gridToken, '-xs'), Object.keys(gridMediaSizesMap).map(key => genGridMediaStyle(gridToken, gridMediaSizesMap[key], key)).reduce((pre, cur) => Object.assign(Object.assign({}, pre), cur), {})];\n});","export function supportBigInt() {\n return typeof BigInt === 'function';\n}","import { supportBigInt } from \"./supportUtil\";\nexport function isEmpty(value) {\n return !value && value !== 0 && !Number.isNaN(value) || !String(value).trim();\n}\n\n/**\n * Format string number to readable number\n */\nexport function trimNumber(numStr) {\n var str = numStr.trim();\n var negative = str.startsWith('-');\n if (negative) {\n str = str.slice(1);\n }\n str = str\n // Remove decimal 0. `1.000` => `1.`, `1.100` => `1.1`\n .replace(/(\\.\\d*[^0])0*$/, '$1')\n // Remove useless decimal. `1.` => `1`\n .replace(/\\.0*$/, '')\n // Remove integer 0. `0001` => `1`, 000.1' => `.1`\n .replace(/^0+/, '');\n if (str.startsWith('.')) {\n str = \"0\".concat(str);\n }\n var trimStr = str || '0';\n var splitNumber = trimStr.split('.');\n var integerStr = splitNumber[0] || '0';\n var decimalStr = splitNumber[1] || '0';\n if (integerStr === '0' && decimalStr === '0') {\n negative = false;\n }\n var negativeStr = negative ? '-' : '';\n return {\n negative: negative,\n negativeStr: negativeStr,\n trimStr: trimStr,\n integerStr: integerStr,\n decimalStr: decimalStr,\n fullStr: \"\".concat(negativeStr).concat(trimStr)\n };\n}\nexport function isE(number) {\n var str = String(number);\n return !Number.isNaN(Number(str)) && str.includes('e');\n}\n\n/**\n * [Legacy] Convert 1e-9 to 0.000000001.\n * This may lose some precision if user really want 1e-9.\n */\nexport function getNumberPrecision(number) {\n var numStr = String(number);\n if (isE(number)) {\n var precision = Number(numStr.slice(numStr.indexOf('e-') + 2));\n var decimalMatch = numStr.match(/\\.(\\d+)/);\n if (decimalMatch !== null && decimalMatch !== void 0 && decimalMatch[1]) {\n precision += decimalMatch[1].length;\n }\n return precision;\n }\n return numStr.includes('.') && validateNumber(numStr) ? numStr.length - numStr.indexOf('.') - 1 : 0;\n}\n\n/**\n * Convert number (includes scientific notation) to -xxx.yyy format\n */\nexport function num2str(number) {\n var numStr = String(number);\n if (isE(number)) {\n if (number > Number.MAX_SAFE_INTEGER) {\n return String(supportBigInt() ? BigInt(number).toString() : Number.MAX_SAFE_INTEGER);\n }\n if (number < Number.MIN_SAFE_INTEGER) {\n return String(supportBigInt() ? BigInt(number).toString() : Number.MIN_SAFE_INTEGER);\n }\n numStr = number.toFixed(getNumberPrecision(numStr));\n }\n return trimNumber(numStr).fullStr;\n}\nexport function validateNumber(num) {\n if (typeof num === 'number') {\n return !Number.isNaN(num);\n }\n\n // Empty\n if (!num) {\n return false;\n }\n return (\n // Normal type: 11.28\n /^\\s*-?\\d+(\\.\\d+)?\\s*$/.test(num) ||\n // Pre-number: 1.\n /^\\s*-?\\d+\\.\\s*$/.test(num) ||\n // Post-number: .1\n /^\\s*-?\\.\\d+\\s*$/.test(num)\n );\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isE, isEmpty, num2str, trimNumber, validateNumber } from \"./numberUtil\";\nvar BigIntDecimal = /*#__PURE__*/function () {\n /** BigInt will convert `0009` to `9`. We need record the len of decimal */\n\n function BigIntDecimal(value) {\n _classCallCheck(this, BigIntDecimal);\n _defineProperty(this, \"origin\", '');\n _defineProperty(this, \"negative\", void 0);\n _defineProperty(this, \"integer\", void 0);\n _defineProperty(this, \"decimal\", void 0);\n _defineProperty(this, \"decimalLen\", void 0);\n _defineProperty(this, \"empty\", void 0);\n _defineProperty(this, \"nan\", void 0);\n if (isEmpty(value)) {\n this.empty = true;\n return;\n }\n this.origin = String(value);\n\n // Act like Number convert\n if (value === '-' || Number.isNaN(value)) {\n this.nan = true;\n return;\n }\n var mergedValue = value;\n\n // We need convert back to Number since it require `toFixed` to handle this\n if (isE(mergedValue)) {\n mergedValue = Number(mergedValue);\n }\n mergedValue = typeof mergedValue === 'string' ? mergedValue : num2str(mergedValue);\n if (validateNumber(mergedValue)) {\n var trimRet = trimNumber(mergedValue);\n this.negative = trimRet.negative;\n var numbers = trimRet.trimStr.split('.');\n this.integer = BigInt(numbers[0]);\n var decimalStr = numbers[1] || '0';\n this.decimal = BigInt(decimalStr);\n this.decimalLen = decimalStr.length;\n } else {\n this.nan = true;\n }\n }\n _createClass(BigIntDecimal, [{\n key: \"getMark\",\n value: function getMark() {\n return this.negative ? '-' : '';\n }\n }, {\n key: \"getIntegerStr\",\n value: function getIntegerStr() {\n return this.integer.toString();\n }\n\n /**\n * @private get decimal string\n */\n }, {\n key: \"getDecimalStr\",\n value: function getDecimalStr() {\n return this.decimal.toString().padStart(this.decimalLen, '0');\n }\n\n /**\n * @private Align BigIntDecimal with same decimal length. e.g. 12.3 + 5 = 1230000\n * This is used for add function only.\n */\n }, {\n key: \"alignDecimal\",\n value: function alignDecimal(decimalLength) {\n var str = \"\".concat(this.getMark()).concat(this.getIntegerStr()).concat(this.getDecimalStr().padEnd(decimalLength, '0'));\n return BigInt(str);\n }\n }, {\n key: \"negate\",\n value: function negate() {\n var clone = new BigIntDecimal(this.toString());\n clone.negative = !clone.negative;\n return clone;\n }\n }, {\n key: \"cal\",\n value: function cal(offset, calculator, calDecimalLen) {\n var maxDecimalLength = Math.max(this.getDecimalStr().length, offset.getDecimalStr().length);\n var myAlignedDecimal = this.alignDecimal(maxDecimalLength);\n var offsetAlignedDecimal = offset.alignDecimal(maxDecimalLength);\n var valueStr = calculator(myAlignedDecimal, offsetAlignedDecimal).toString();\n var nextDecimalLength = calDecimalLen(maxDecimalLength);\n\n // We need fill string length back to `maxDecimalLength` to avoid parser failed\n var _trimNumber = trimNumber(valueStr),\n negativeStr = _trimNumber.negativeStr,\n trimStr = _trimNumber.trimStr;\n var hydrateValueStr = \"\".concat(negativeStr).concat(trimStr.padStart(nextDecimalLength + 1, '0'));\n return new BigIntDecimal(\"\".concat(hydrateValueStr.slice(0, -nextDecimalLength), \".\").concat(hydrateValueStr.slice(-nextDecimalLength)));\n }\n }, {\n key: \"add\",\n value: function add(value) {\n if (this.isInvalidate()) {\n return new BigIntDecimal(value);\n }\n var offset = new BigIntDecimal(value);\n if (offset.isInvalidate()) {\n return this;\n }\n return this.cal(offset, function (num1, num2) {\n return num1 + num2;\n }, function (len) {\n return len;\n });\n }\n }, {\n key: \"multi\",\n value: function multi(value) {\n var target = new BigIntDecimal(value);\n if (this.isInvalidate() || target.isInvalidate()) {\n return new BigIntDecimal(NaN);\n }\n return this.cal(target, function (num1, num2) {\n return num1 * num2;\n }, function (len) {\n return len * 2;\n });\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.empty;\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return this.nan;\n }\n }, {\n key: \"isInvalidate\",\n value: function isInvalidate() {\n return this.isEmpty() || this.isNaN();\n }\n }, {\n key: \"equals\",\n value: function equals(target) {\n return this.toString() === (target === null || target === void 0 ? void 0 : target.toString());\n }\n }, {\n key: \"lessEquals\",\n value: function lessEquals(target) {\n return this.add(target.negate().toString()).toNumber() <= 0;\n }\n }, {\n key: \"toNumber\",\n value: function toNumber() {\n if (this.isNaN()) {\n return NaN;\n }\n return Number(this.toString());\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!safe) {\n return this.origin;\n }\n if (this.isInvalidate()) {\n return '';\n }\n return trimNumber(\"\".concat(this.getMark()).concat(this.getIntegerStr(), \".\").concat(this.getDecimalStr())).fullStr;\n }\n }]);\n return BigIntDecimal;\n}();\nexport { BigIntDecimal as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { getNumberPrecision, isEmpty, num2str } from \"./numberUtil\";\n\n/**\n * We can remove this when IE not support anymore\n */\nvar NumberDecimal = /*#__PURE__*/function () {\n function NumberDecimal(value) {\n _classCallCheck(this, NumberDecimal);\n _defineProperty(this, \"origin\", '');\n _defineProperty(this, \"number\", void 0);\n _defineProperty(this, \"empty\", void 0);\n if (isEmpty(value)) {\n this.empty = true;\n return;\n }\n this.origin = String(value);\n this.number = Number(value);\n }\n _createClass(NumberDecimal, [{\n key: \"negate\",\n value: function negate() {\n return new NumberDecimal(-this.toNumber());\n }\n }, {\n key: \"add\",\n value: function add(value) {\n if (this.isInvalidate()) {\n return new NumberDecimal(value);\n }\n var target = Number(value);\n if (Number.isNaN(target)) {\n return this;\n }\n var number = this.number + target;\n\n // [Legacy] Back to safe integer\n if (number > Number.MAX_SAFE_INTEGER) {\n return new NumberDecimal(Number.MAX_SAFE_INTEGER);\n }\n if (number < Number.MIN_SAFE_INTEGER) {\n return new NumberDecimal(Number.MIN_SAFE_INTEGER);\n }\n var maxPrecision = Math.max(getNumberPrecision(this.number), getNumberPrecision(target));\n return new NumberDecimal(number.toFixed(maxPrecision));\n }\n }, {\n key: \"multi\",\n value: function multi(value) {\n var target = Number(value);\n if (this.isInvalidate() || Number.isNaN(target)) {\n return new NumberDecimal(NaN);\n }\n var number = this.number * target;\n\n // [Legacy] Back to safe integer\n if (number > Number.MAX_SAFE_INTEGER) {\n return new NumberDecimal(Number.MAX_SAFE_INTEGER);\n }\n if (number < Number.MIN_SAFE_INTEGER) {\n return new NumberDecimal(Number.MIN_SAFE_INTEGER);\n }\n var maxPrecision = Math.max(getNumberPrecision(this.number), getNumberPrecision(target));\n return new NumberDecimal(number.toFixed(maxPrecision));\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.empty;\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.number);\n }\n }, {\n key: \"isInvalidate\",\n value: function isInvalidate() {\n return this.isEmpty() || this.isNaN();\n }\n }, {\n key: \"equals\",\n value: function equals(target) {\n return this.toNumber() === (target === null || target === void 0 ? void 0 : target.toNumber());\n }\n }, {\n key: \"lessEquals\",\n value: function lessEquals(target) {\n return this.add(target.negate().toString()).toNumber() <= 0;\n }\n }, {\n key: \"toNumber\",\n value: function toNumber() {\n return this.number;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!safe) {\n return this.origin;\n }\n if (this.isInvalidate()) {\n return '';\n }\n return num2str(this.number);\n }\n }]);\n return NumberDecimal;\n}();\nexport { NumberDecimal as default };","/* eslint-disable max-classes-per-file */\n\nimport BigIntDecimal from \"./BigIntDecimal\";\nimport NumberDecimal from \"./NumberDecimal\";\nimport { trimNumber } from \"./numberUtil\";\nimport { supportBigInt } from \"./supportUtil\";\n\n// Still support origin export\nexport { NumberDecimal, BigIntDecimal };\nexport default function getMiniDecimal(value) {\n // We use BigInt here.\n // Will fallback to Number if not support.\n if (supportBigInt()) {\n return new BigIntDecimal(value);\n }\n return new NumberDecimal(value);\n}\n\n/**\n * Align the logic of toFixed to around like 1.5 => 2.\n * If set `cutOnly`, will just remove the over decimal part.\n */\nexport function toFixed(numStr, separatorStr, precision) {\n var cutOnly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (numStr === '') {\n return '';\n }\n var _trimNumber = trimNumber(numStr),\n negativeStr = _trimNumber.negativeStr,\n integerStr = _trimNumber.integerStr,\n decimalStr = _trimNumber.decimalStr;\n var precisionDecimalStr = \"\".concat(separatorStr).concat(decimalStr);\n var numberWithoutDecimal = \"\".concat(negativeStr).concat(integerStr);\n if (precision >= 0) {\n // We will get last + 1 number to check if need advanced number\n var advancedNum = Number(decimalStr[precision]);\n if (advancedNum >= 5 && !cutOnly) {\n var advancedDecimal = getMiniDecimal(numStr).add(\"\".concat(negativeStr, \"0.\").concat('0'.repeat(precision)).concat(10 - advancedNum));\n return toFixed(advancedDecimal.toString(), separatorStr, precision, cutOnly);\n }\n if (precision === 0) {\n return numberWithoutDecimal;\n }\n return \"\".concat(numberWithoutDecimal).concat(separatorStr).concat(decimalStr.padEnd(precision, '0').slice(0, precision));\n }\n if (precisionDecimalStr === '.0') {\n return numberWithoutDecimal;\n }\n return \"\".concat(numberWithoutDecimal).concat(precisionDecimalStr);\n}","import getMiniDecimal from \"./MiniDecimal\";\nexport * from \"./MiniDecimal\";\nimport { trimNumber, getNumberPrecision, num2str, validateNumber } from \"./numberUtil\";\nexport { trimNumber, getNumberPrecision, num2str, validateNumber };\nexport default getMiniDecimal;","import { useRef } from 'react';\nimport warning from \"rc-util/es/warning\";\n/**\n * Keep input cursor in the correct position if possible.\n * Is this necessary since we have `formatter` which may mass the content?\n */\nexport default function useCursor(input, focused) {\n var selectionRef = useRef(null);\n function recordCursor() {\n // Record position\n try {\n var start = input.selectionStart,\n end = input.selectionEnd,\n value = input.value;\n var beforeTxt = value.substring(0, start);\n var afterTxt = value.substring(end);\n selectionRef.current = {\n start: start,\n end: end,\n value: value,\n beforeTxt: beforeTxt,\n afterTxt: afterTxt\n };\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n }\n\n /**\n * Restore logic:\n * 1. back string same\n * 2. start string same\n */\n function restoreCursor() {\n if (input && selectionRef.current && focused) {\n try {\n var value = input.value;\n var _selectionRef$current = selectionRef.current,\n beforeTxt = _selectionRef$current.beforeTxt,\n afterTxt = _selectionRef$current.afterTxt,\n start = _selectionRef$current.start;\n var startPos = value.length;\n if (value.endsWith(afterTxt)) {\n startPos = value.length - selectionRef.current.afterTxt.length;\n } else if (value.startsWith(beforeTxt)) {\n startPos = beforeTxt.length;\n } else {\n var beforeLastChar = beforeTxt[start - 1];\n var newIndex = value.indexOf(beforeLastChar, start - 1);\n if (newIndex !== -1) {\n startPos = newIndex + 1;\n }\n }\n input.setSelectionRange(startPos, startPos);\n } catch (e) {\n warning(false, \"Something warning of cursor restore. Please fire issue about this: \".concat(e.message));\n }\n }\n }\n return [recordCursor, restoreCursor];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState } from 'react';\nimport isMobile from \"../isMobile\";\nimport useLayoutEffect from \"./useLayoutEffect\";\n\n/**\n * Hook to detect if the user is on a mobile device\n * Notice that this hook will only detect the device type in effect, so it will always be false in server side\n */\nvar useMobile = function useMobile() {\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n useLayoutEffect(function () {\n setMobile(isMobile());\n }, []);\n return mobile;\n};\nexport default useMobile;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint-disable react/no-unknown-property */\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMobile from \"rc-util/es/hooks/useMobile\";\nimport raf from \"rc-util/es/raf\";\n\n/**\n * When click and hold on a button - the speed of auto changing the value.\n */\nvar STEP_INTERVAL = 200;\n\n/**\n * When click and hold on a button - the delay before auto changing the value.\n */\nvar STEP_DELAY = 600;\nexport default function StepHandler(_ref) {\n var prefixCls = _ref.prefixCls,\n upNode = _ref.upNode,\n downNode = _ref.downNode,\n upDisabled = _ref.upDisabled,\n downDisabled = _ref.downDisabled,\n onStep = _ref.onStep;\n // ======================== Step ========================\n var stepTimeoutRef = React.useRef();\n var frameIds = React.useRef([]);\n var onStepRef = React.useRef();\n onStepRef.current = onStep;\n var onStopStep = function onStopStep() {\n clearTimeout(stepTimeoutRef.current);\n };\n\n // We will interval update step when hold mouse down\n var onStepMouseDown = function onStepMouseDown(e, up) {\n e.preventDefault();\n onStopStep();\n onStepRef.current(up);\n\n // Loop step for interval\n function loopStep() {\n onStepRef.current(up);\n stepTimeoutRef.current = setTimeout(loopStep, STEP_INTERVAL);\n }\n\n // First time press will wait some time to trigger loop step update\n stepTimeoutRef.current = setTimeout(loopStep, STEP_DELAY);\n };\n React.useEffect(function () {\n return function () {\n onStopStep();\n frameIds.current.forEach(function (id) {\n return raf.cancel(id);\n });\n };\n }, []);\n\n // ======================= Render =======================\n var isMobile = useMobile();\n if (isMobile) {\n return null;\n }\n var handlerClassName = \"\".concat(prefixCls, \"-handler\");\n var upClassName = classNames(handlerClassName, \"\".concat(handlerClassName, \"-up\"), _defineProperty({}, \"\".concat(handlerClassName, \"-up-disabled\"), upDisabled));\n var downClassName = classNames(handlerClassName, \"\".concat(handlerClassName, \"-down\"), _defineProperty({}, \"\".concat(handlerClassName, \"-down-disabled\"), downDisabled));\n\n // fix: https://github.com/ant-design/ant-design/issues/43088\n // In Safari, When we fire onmousedown and onmouseup events in quick succession, \n // there may be a problem that the onmouseup events are executed first, \n // resulting in a disordered program execution.\n // So, we need to use requestAnimationFrame to ensure that the onmouseup event is executed after the onmousedown event.\n var safeOnStopStep = function safeOnStopStep() {\n return frameIds.current.push(raf(onStopStep));\n };\n var sharedHandlerProps = {\n unselectable: 'on',\n role: 'button',\n onMouseUp: safeOnStopStep,\n onMouseLeave: safeOnStopStep\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(handlerClassName, \"-wrap\")\n }, /*#__PURE__*/React.createElement(\"span\", _extends({}, sharedHandlerProps, {\n onMouseDown: function onMouseDown(e) {\n onStepMouseDown(e, true);\n },\n \"aria-label\": \"Increase Value\",\n \"aria-disabled\": upDisabled,\n className: upClassName\n }), upNode || /*#__PURE__*/React.createElement(\"span\", {\n unselectable: \"on\",\n className: \"\".concat(prefixCls, \"-handler-up-inner\")\n })), /*#__PURE__*/React.createElement(\"span\", _extends({}, sharedHandlerProps, {\n onMouseDown: function onMouseDown(e) {\n onStepMouseDown(e, false);\n },\n \"aria-label\": \"Decrease Value\",\n \"aria-disabled\": downDisabled,\n className: downClassName\n }), downNode || /*#__PURE__*/React.createElement(\"span\", {\n unselectable: \"on\",\n className: \"\".concat(prefixCls, \"-handler-down-inner\")\n })));\n}","import { trimNumber, num2str } from '@rc-component/mini-decimal';\nexport function getDecupleSteps(step) {\n var stepStr = typeof step === 'number' ? num2str(step) : trimNumber(step).fullStr;\n var hasPoint = stepStr.includes('.');\n if (!hasPoint) {\n return step + '0';\n }\n return trimNumber(stepStr.replace(/(\\d)\\.(\\d)/g, '$1$2.')).fullStr;\n}","import { useRef, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\n\n/**\n * Always trigger latest once when call multiple time\n */\nexport default (function () {\n var idRef = useRef(0);\n var cleanUp = function cleanUp() {\n raf.cancel(idRef.current);\n };\n useEffect(function () {\n return cleanUp;\n }, []);\n return function (callback) {\n cleanUp();\n idRef.current = raf(function () {\n callback();\n });\n };\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"min\", \"max\", \"step\", \"defaultValue\", \"value\", \"disabled\", \"readOnly\", \"upHandler\", \"downHandler\", \"keyboard\", \"controls\", \"classNames\", \"stringMode\", \"parser\", \"formatter\", \"precision\", \"decimalSeparator\", \"onChange\", \"onInput\", \"onPressEnter\", \"onStep\"],\n _excluded2 = [\"disabled\", \"style\", \"prefixCls\", \"value\", \"prefix\", \"suffix\", \"addonBefore\", \"addonAfter\", \"classes\", \"className\", \"classNames\"];\nimport getMiniDecimal, { getNumberPrecision, num2str, toFixed, validateNumber } from '@rc-component/mini-decimal';\nimport clsx from 'classnames';\nimport { BaseInput } from 'rc-input';\nimport { useLayoutUpdateEffect } from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport useCursor from \"./hooks/useCursor\";\nimport StepHandler from \"./StepHandler\";\nimport { getDecupleSteps } from \"./utils/numberUtil\";\nimport { triggerFocus } from \"rc-input/es/utils/commonUtils\";\nimport useFrame from \"./hooks/useFrame\";\n/**\n * We support `stringMode` which need handle correct type when user call in onChange\n * format max or min value\n * 1. if isInvalid return null\n * 2. if precision is undefined, return decimal\n * 3. format with precision\n * I. if max > 0, round down with precision. Example: max= 3.5, precision=0 afterFormat: 3\n * II. if max < 0, round up with precision. Example: max= -3.5, precision=0 afterFormat: -4\n * III. if min > 0, round up with precision. Example: min= 3.5, precision=0 afterFormat: 4\n * IV. if min < 0, round down with precision. Example: max= -3.5, precision=0 afterFormat: -3\n */\nvar getDecimalValue = function getDecimalValue(stringMode, decimalValue) {\n if (stringMode || decimalValue.isEmpty()) {\n return decimalValue.toString();\n }\n return decimalValue.toNumber();\n};\nvar getDecimalIfValidate = function getDecimalIfValidate(value) {\n var decimal = getMiniDecimal(value);\n return decimal.isInvalidate() ? null : decimal;\n};\nvar InternalInputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _clsx;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-input-number' : _props$prefixCls,\n className = props.className,\n style = props.style,\n min = props.min,\n max = props.max,\n _props$step = props.step,\n step = _props$step === void 0 ? 1 : _props$step,\n defaultValue = props.defaultValue,\n value = props.value,\n disabled = props.disabled,\n readOnly = props.readOnly,\n upHandler = props.upHandler,\n downHandler = props.downHandler,\n keyboard = props.keyboard,\n _props$controls = props.controls,\n controls = _props$controls === void 0 ? true : _props$controls,\n classNames = props.classNames,\n stringMode = props.stringMode,\n parser = props.parser,\n formatter = props.formatter,\n precision = props.precision,\n decimalSeparator = props.decimalSeparator,\n onChange = props.onChange,\n onInput = props.onInput,\n onPressEnter = props.onPressEnter,\n onStep = props.onStep,\n inputProps = _objectWithoutProperties(props, _excluded);\n var inputClassName = \"\".concat(prefixCls, \"-input\");\n var inputRef = React.useRef(null);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focus = _React$useState2[0],\n setFocus = _React$useState2[1];\n var userTypingRef = React.useRef(false);\n var compositionRef = React.useRef(false);\n var shiftKeyRef = React.useRef(false);\n\n // ============================ Value =============================\n // Real value control\n var _React$useState3 = React.useState(function () {\n return getMiniDecimal(value !== null && value !== void 0 ? value : defaultValue);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n decimalValue = _React$useState4[0],\n setDecimalValue = _React$useState4[1];\n function setUncontrolledDecimalValue(newDecimal) {\n if (value === undefined) {\n setDecimalValue(newDecimal);\n }\n }\n\n // ====================== Parser & Formatter ======================\n /**\n * `precision` is used for formatter & onChange.\n * It will auto generate by `value` & `step`.\n * But it will not block user typing.\n *\n * Note: Auto generate `precision` is used for legacy logic.\n * We should remove this since we already support high precision with BigInt.\n *\n * @param number Provide which number should calculate precision\n * @param userTyping Change by user typing\n */\n var getPrecision = React.useCallback(function (numStr, userTyping) {\n if (userTyping) {\n return undefined;\n }\n if (precision >= 0) {\n return precision;\n }\n return Math.max(getNumberPrecision(numStr), getNumberPrecision(step));\n }, [precision, step]);\n\n // >>> Parser\n var mergedParser = React.useCallback(function (num) {\n var numStr = String(num);\n if (parser) {\n return parser(numStr);\n }\n var parsedStr = numStr;\n if (decimalSeparator) {\n parsedStr = parsedStr.replace(decimalSeparator, '.');\n }\n\n // [Legacy] We still support auto convert `$ 123,456` to `123456`\n return parsedStr.replace(/[^\\w.-]+/g, '');\n }, [parser, decimalSeparator]);\n\n // >>> Formatter\n var inputValueRef = React.useRef('');\n var mergedFormatter = React.useCallback(function (number, userTyping) {\n if (formatter) {\n return formatter(number, {\n userTyping: userTyping,\n input: String(inputValueRef.current)\n });\n }\n var str = typeof number === 'number' ? num2str(number) : number;\n\n // User typing will not auto format with precision directly\n if (!userTyping) {\n var mergedPrecision = getPrecision(str, userTyping);\n if (validateNumber(str) && (decimalSeparator || mergedPrecision >= 0)) {\n // Separator\n var separatorStr = decimalSeparator || '.';\n str = toFixed(str, separatorStr, mergedPrecision);\n }\n }\n return str;\n }, [formatter, getPrecision, decimalSeparator]);\n\n // ========================== InputValue ==========================\n /**\n * Input text value control\n *\n * User can not update input content directly. It updates with follow rules by priority:\n * 1. controlled `value` changed\n * * [SPECIAL] Typing like `1.` should not immediately convert to `1`\n * 2. User typing with format (not precision)\n * 3. Blur or Enter trigger revalidate\n */\n var _React$useState5 = React.useState(function () {\n var initValue = defaultValue !== null && defaultValue !== void 0 ? defaultValue : value;\n if (decimalValue.isInvalidate() && ['string', 'number'].includes(_typeof(initValue))) {\n return Number.isNaN(initValue) ? '' : initValue;\n }\n return mergedFormatter(decimalValue.toString(), false);\n }),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n inputValue = _React$useState6[0],\n setInternalInputValue = _React$useState6[1];\n inputValueRef.current = inputValue;\n\n // Should always be string\n function setInputValue(newValue, userTyping) {\n setInternalInputValue(mergedFormatter(\n // Invalidate number is sometime passed by external control, we should let it go\n // Otherwise is controlled by internal interactive logic which check by userTyping\n // You can ref 'show limited value when input is not focused' test for more info.\n newValue.isInvalidate() ? newValue.toString(false) : newValue.toString(!userTyping), userTyping));\n }\n\n // >>> Max & Min limit\n var maxDecimal = React.useMemo(function () {\n return getDecimalIfValidate(max);\n }, [max, precision]);\n var minDecimal = React.useMemo(function () {\n return getDecimalIfValidate(min);\n }, [min, precision]);\n var upDisabled = React.useMemo(function () {\n if (!maxDecimal || !decimalValue || decimalValue.isInvalidate()) {\n return false;\n }\n return maxDecimal.lessEquals(decimalValue);\n }, [maxDecimal, decimalValue]);\n var downDisabled = React.useMemo(function () {\n if (!minDecimal || !decimalValue || decimalValue.isInvalidate()) {\n return false;\n }\n return decimalValue.lessEquals(minDecimal);\n }, [minDecimal, decimalValue]);\n\n // Cursor controller\n var _useCursor = useCursor(inputRef.current, focus),\n _useCursor2 = _slicedToArray(_useCursor, 2),\n recordCursor = _useCursor2[0],\n restoreCursor = _useCursor2[1];\n\n // ============================= Data =============================\n /**\n * Find target value closet within range.\n * e.g. [11, 28]:\n * 3 => 11\n * 23 => 23\n * 99 => 28\n */\n var getRangeValue = function getRangeValue(target) {\n // target > max\n if (maxDecimal && !target.lessEquals(maxDecimal)) {\n return maxDecimal;\n }\n\n // target < min\n if (minDecimal && !minDecimal.lessEquals(target)) {\n return minDecimal;\n }\n return null;\n };\n\n /**\n * Check value is in [min, max] range\n */\n var isInRange = function isInRange(target) {\n return !getRangeValue(target);\n };\n\n /**\n * Trigger `onChange` if value validated and not equals of origin.\n * Return the value that re-align in range.\n */\n var triggerValueUpdate = function triggerValueUpdate(newValue, userTyping) {\n var updateValue = newValue;\n var isRangeValidate = isInRange(updateValue) || updateValue.isEmpty();\n\n // Skip align value when trigger value is empty.\n // We just trigger onChange(null)\n // This should not block user typing\n if (!updateValue.isEmpty() && !userTyping) {\n // Revert value in range if needed\n updateValue = getRangeValue(updateValue) || updateValue;\n isRangeValidate = true;\n }\n if (!readOnly && !disabled && isRangeValidate) {\n var numStr = updateValue.toString();\n var mergedPrecision = getPrecision(numStr, userTyping);\n if (mergedPrecision >= 0) {\n updateValue = getMiniDecimal(toFixed(numStr, '.', mergedPrecision));\n\n // When to fixed. The value may out of min & max range.\n // 4 in [0, 3.8] => 3.8 => 4 (toFixed)\n if (!isInRange(updateValue)) {\n updateValue = getMiniDecimal(toFixed(numStr, '.', mergedPrecision, true));\n }\n }\n\n // Trigger event\n if (!updateValue.equals(decimalValue)) {\n setUncontrolledDecimalValue(updateValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(updateValue.isEmpty() ? null : getDecimalValue(stringMode, updateValue));\n\n // Reformat input if value is not controlled\n if (value === undefined) {\n setInputValue(updateValue, userTyping);\n }\n }\n return updateValue;\n }\n return decimalValue;\n };\n\n // ========================== User Input ==========================\n var onNextPromise = useFrame();\n\n // >>> Collect input value\n var collectInputValue = function collectInputValue(inputStr) {\n recordCursor();\n\n // Update inputValue in case input can not parse as number\n // Refresh ref value immediately since it may used by formatter\n inputValueRef.current = inputStr;\n setInternalInputValue(inputStr);\n\n // Parse number\n if (!compositionRef.current) {\n var finalValue = mergedParser(inputStr);\n var finalDecimal = getMiniDecimal(finalValue);\n if (!finalDecimal.isNaN()) {\n triggerValueUpdate(finalDecimal, true);\n }\n }\n\n // Trigger onInput later to let user customize value if they want to handle something after onChange\n onInput === null || onInput === void 0 ? void 0 : onInput(inputStr);\n\n // optimize for chinese input experience\n // https://github.com/ant-design/ant-design/issues/8196\n onNextPromise(function () {\n var nextInputStr = inputStr;\n if (!parser) {\n nextInputStr = inputStr.replace(/。/g, '.');\n }\n if (nextInputStr !== inputStr) {\n collectInputValue(nextInputStr);\n }\n });\n };\n\n // >>> Composition\n var onCompositionStart = function onCompositionStart() {\n compositionRef.current = true;\n };\n var onCompositionEnd = function onCompositionEnd() {\n compositionRef.current = false;\n collectInputValue(inputRef.current.value);\n };\n\n // >>> Input\n var onInternalInput = function onInternalInput(e) {\n collectInputValue(e.target.value);\n };\n\n // ============================= Step =============================\n var onInternalStep = function onInternalStep(up) {\n var _inputRef$current;\n // Ignore step since out of range\n if (up && upDisabled || !up && downDisabled) {\n return;\n }\n\n // Clear typing status since it may be caused by up & down key.\n // We should sync with input value.\n userTypingRef.current = false;\n var stepDecimal = getMiniDecimal(shiftKeyRef.current ? getDecupleSteps(step) : step);\n if (!up) {\n stepDecimal = stepDecimal.negate();\n }\n var target = (decimalValue || getMiniDecimal(0)).add(stepDecimal.toString());\n var updatedValue = triggerValueUpdate(target, false);\n onStep === null || onStep === void 0 ? void 0 : onStep(getDecimalValue(stringMode, updatedValue), {\n offset: shiftKeyRef.current ? getDecupleSteps(step) : step,\n type: up ? 'up' : 'down'\n });\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n };\n\n // ============================ Flush =============================\n /**\n * Flush current input content to trigger value change & re-formatter input if needed.\n * This will always flush input value for update.\n * If it's invalidate, will fallback to last validate value.\n */\n var flushInputValue = function flushInputValue(userTyping) {\n var parsedValue = getMiniDecimal(mergedParser(inputValue));\n var formatValue = parsedValue;\n if (!parsedValue.isNaN()) {\n // Only validate value or empty value can be re-fill to inputValue\n // Reassign the formatValue within ranged of trigger control\n formatValue = triggerValueUpdate(parsedValue, userTyping);\n } else {\n formatValue = triggerValueUpdate(decimalValue, userTyping);\n }\n if (value !== undefined) {\n // Reset back with controlled value first\n setInputValue(decimalValue, false);\n } else if (!formatValue.isNaN()) {\n // Reset input back since no validate value\n setInputValue(formatValue, false);\n }\n };\n\n // Solve the issue of the event triggering sequence when entering numbers in chinese input (Safari)\n var onBeforeInput = function onBeforeInput() {\n userTypingRef.current = true;\n };\n var onKeyDown = function onKeyDown(event) {\n var key = event.key,\n shiftKey = event.shiftKey;\n userTypingRef.current = true;\n shiftKeyRef.current = shiftKey;\n if (key === 'Enter') {\n if (!compositionRef.current) {\n userTypingRef.current = false;\n }\n flushInputValue(false);\n onPressEnter === null || onPressEnter === void 0 ? void 0 : onPressEnter(event);\n }\n if (keyboard === false) {\n return;\n }\n\n // Do step\n if (!compositionRef.current && ['Up', 'ArrowUp', 'Down', 'ArrowDown'].includes(key)) {\n onInternalStep(key === 'Up' || key === 'ArrowUp');\n event.preventDefault();\n }\n };\n var onKeyUp = function onKeyUp() {\n userTypingRef.current = false;\n shiftKeyRef.current = false;\n };\n\n // >>> Focus & Blur\n var onBlur = function onBlur() {\n flushInputValue(false);\n setFocus(false);\n userTypingRef.current = false;\n };\n\n // ========================== Controlled ==========================\n // Input by precision\n useLayoutUpdateEffect(function () {\n if (!decimalValue.isInvalidate()) {\n setInputValue(decimalValue, false);\n }\n }, [precision]);\n\n // Input by value\n useLayoutUpdateEffect(function () {\n var newValue = getMiniDecimal(value);\n setDecimalValue(newValue);\n var currentParsedValue = getMiniDecimal(mergedParser(inputValue));\n\n // When user typing from `1.2` to `1.`, we should not convert to `1` immediately.\n // But let it go if user set `formatter`\n if (!newValue.equals(currentParsedValue) || !userTypingRef.current || formatter) {\n // Update value as effect\n setInputValue(newValue, userTypingRef.current);\n }\n }, [value]);\n\n // ============================ Cursor ============================\n useLayoutUpdateEffect(function () {\n if (formatter) {\n restoreCursor();\n }\n }, [inputValue]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(prefixCls, classNames === null || classNames === void 0 ? void 0 : classNames.input, className, (_clsx = {}, _defineProperty(_clsx, \"\".concat(prefixCls, \"-focused\"), focus), _defineProperty(_clsx, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_clsx, \"\".concat(prefixCls, \"-readonly\"), readOnly), _defineProperty(_clsx, \"\".concat(prefixCls, \"-not-a-number\"), decimalValue.isNaN()), _defineProperty(_clsx, \"\".concat(prefixCls, \"-out-of-range\"), !decimalValue.isInvalidate() && !isInRange(decimalValue)), _clsx)),\n style: style,\n onFocus: function onFocus() {\n setFocus(true);\n },\n onBlur: onBlur,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onCompositionStart: onCompositionStart,\n onCompositionEnd: onCompositionEnd,\n onBeforeInput: onBeforeInput\n }, controls && /*#__PURE__*/React.createElement(StepHandler, {\n prefixCls: prefixCls,\n upNode: upHandler,\n downNode: downHandler,\n upDisabled: upDisabled,\n downDisabled: downDisabled,\n onStep: onInternalStep\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(inputClassName, \"-wrap\")\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n autoComplete: \"off\",\n role: \"spinbutton\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": decimalValue.isInvalidate() ? null : decimalValue.toString(),\n step: step\n }, inputProps, {\n ref: composeRef(inputRef, ref),\n className: inputClassName,\n value: inputValue,\n onChange: onInternalInput,\n disabled: disabled,\n readOnly: readOnly\n }))));\n});\nvar InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var disabled = props.disabled,\n style = props.style,\n prefixCls = props.prefixCls,\n value = props.value,\n prefix = props.prefix,\n suffix = props.suffix,\n addonBefore = props.addonBefore,\n addonAfter = props.addonAfter,\n classes = props.classes,\n className = props.className,\n classNames = props.classNames,\n rest = _objectWithoutProperties(props, _excluded2);\n var inputFocusRef = React.useRef(null);\n var focus = function focus(option) {\n if (inputFocusRef.current) {\n triggerFocus(inputFocusRef.current, option);\n }\n };\n return /*#__PURE__*/React.createElement(BaseInput, {\n inputElement: /*#__PURE__*/React.createElement(InternalInputNumber, _extends({\n prefixCls: prefixCls,\n disabled: disabled,\n classNames: classNames,\n ref: composeRef(inputFocusRef, ref)\n }, rest)),\n className: className,\n triggerFocus: focus,\n prefixCls: prefixCls,\n value: value,\n disabled: disabled,\n style: style,\n prefix: prefix,\n suffix: suffix,\n addonAfter: addonAfter,\n addonBefore: addonBefore,\n classes: classes,\n classNames: classNames,\n components: {\n affixWrapper: 'div',\n groupWrapper: 'div',\n wrapper: 'div',\n groupAddon: 'div'\n }\n });\n});\nInputNumber.displayName = 'InputNumber';\nexport default InputNumber;","import InputNumber from \"./InputNumber\";\nexport default InputNumber;","import { genActiveStyle, genBasicInputStyle, genDisabledStyle, genHoverStyle, genInputGroupStyle, genPlaceholderStyle, genStatusStyle, initInputToken } from '../../input/style';\nimport { resetComponent, resetIcon } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genComponentStyleHook } from '../../theme/internal';\nexport const genRadiusStyle = (_ref, size) => {\n let {\n componentCls,\n borderRadiusSM,\n borderRadiusLG\n } = _ref;\n const borderRadius = size === 'lg' ? borderRadiusLG : borderRadiusSM;\n return {\n [`&-${size}`]: {\n [`${componentCls}-handler-wrap`]: {\n borderStartEndRadius: borderRadius,\n borderEndEndRadius: borderRadius\n },\n [`${componentCls}-handler-up`]: {\n borderStartEndRadius: borderRadius\n },\n [`${componentCls}-handler-down`]: {\n borderEndEndRadius: borderRadius\n }\n }\n };\n};\nconst genInputNumberStyles = token => {\n const {\n componentCls,\n lineWidth,\n lineType,\n colorBorder,\n borderRadius,\n fontSizeLG,\n controlHeightLG,\n controlHeightSM,\n colorError,\n inputPaddingHorizontalSM,\n colorTextDescription,\n motionDurationMid,\n colorPrimary,\n inputPaddingHorizontal,\n inputPaddingVertical,\n colorBgContainer,\n colorTextDisabled,\n borderRadiusSM,\n borderRadiusLG,\n controlWidth,\n handleVisible\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBasicInputStyle(token)), genStatusStyle(token, componentCls)), {\n display: 'inline-block',\n width: controlWidth,\n margin: 0,\n padding: 0,\n border: `${lineWidth}px ${lineType} ${colorBorder}`,\n borderRadius,\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-input`]: {\n direction: 'rtl'\n }\n },\n '&-lg': {\n padding: 0,\n fontSize: fontSizeLG,\n borderRadius: borderRadiusLG,\n [`input${componentCls}-input`]: {\n height: controlHeightLG - 2 * lineWidth\n }\n },\n '&-sm': {\n padding: 0,\n borderRadius: borderRadiusSM,\n [`input${componentCls}-input`]: {\n height: controlHeightSM - 2 * lineWidth,\n padding: `0 ${inputPaddingHorizontalSM}px`\n }\n },\n '&:hover': Object.assign({}, genHoverStyle(token)),\n '&-focused': Object.assign({}, genActiveStyle(token)),\n // ===================== Out Of Range =====================\n '&-out-of-range': {\n [`${componentCls}-input-wrap`]: {\n input: {\n color: colorError\n }\n }\n },\n // Style for input-group: input with label, with button or dropdown...\n '&-group': Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genInputGroupStyle(token)), {\n '&-wrapper': {\n display: 'inline-block',\n textAlign: 'start',\n verticalAlign: 'top',\n [`${componentCls}-affix-wrapper`]: {\n width: '100%'\n },\n // Size\n '&-lg': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusLG,\n fontSize: token.fontSizeLG\n }\n },\n '&-sm': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusSM\n }\n },\n [`${componentCls}-wrapper-disabled > ${componentCls}-group-addon`]: Object.assign({}, genDisabledStyle(token))\n }\n }),\n [`&-disabled ${componentCls}-input`]: {\n cursor: 'not-allowed'\n },\n [componentCls]: {\n '&-input': Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n width: '100%',\n padding: `${inputPaddingVertical}px ${inputPaddingHorizontal}px`,\n textAlign: 'start',\n backgroundColor: 'transparent',\n border: 0,\n borderRadius,\n outline: 0,\n transition: `all ${motionDurationMid} linear`,\n appearance: 'textfield',\n fontSize: 'inherit'\n }), genPlaceholderStyle(token.colorTextPlaceholder)), {\n '&[type=\"number\"]::-webkit-inner-spin-button, &[type=\"number\"]::-webkit-outer-spin-button': {\n margin: 0,\n /* stylelint-disable-next-line property-no-vendor-prefix */\n webkitAppearance: 'none',\n appearance: 'none'\n }\n })\n }\n })\n },\n // Handler\n {\n [componentCls]: Object.assign(Object.assign(Object.assign({\n [`&:hover ${componentCls}-handler-wrap, &-focused ${componentCls}-handler-wrap`]: {\n opacity: 1\n },\n [`${componentCls}-handler-wrap`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineEnd: 0,\n width: token.handleWidth,\n height: '100%',\n background: colorBgContainer,\n borderStartStartRadius: 0,\n borderStartEndRadius: borderRadius,\n borderEndEndRadius: borderRadius,\n borderEndStartRadius: 0,\n opacity: handleVisible === true ? 1 : 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n transition: `opacity ${motionDurationMid} linear ${motionDurationMid}`,\n // Fix input number inside Menu makes icon too large\n // We arise the selector priority by nest selector here\n // https://github.com/ant-design/ant-design/issues/14367\n [`${componentCls}-handler`]: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 'auto',\n height: '40%',\n [`\n ${componentCls}-handler-up-inner,\n ${componentCls}-handler-down-inner\n `]: {\n marginInlineEnd: 0,\n fontSize: token.handleFontSize\n }\n }\n },\n [`${componentCls}-handler`]: {\n height: '50%',\n overflow: 'hidden',\n color: colorTextDescription,\n fontWeight: 'bold',\n lineHeight: 0,\n textAlign: 'center',\n cursor: 'pointer',\n borderInlineStart: `${lineWidth}px ${lineType} ${colorBorder}`,\n transition: `all ${motionDurationMid} linear`,\n '&:active': {\n background: token.colorFillAlter\n },\n // Hover\n '&:hover': {\n height: `60%`,\n [`\n ${componentCls}-handler-up-inner,\n ${componentCls}-handler-down-inner\n `]: {\n color: colorPrimary\n }\n },\n '&-up-inner, &-down-inner': Object.assign(Object.assign({}, resetIcon()), {\n color: colorTextDescription,\n transition: `all ${motionDurationMid} linear`,\n userSelect: 'none'\n })\n },\n [`${componentCls}-handler-up`]: {\n borderStartEndRadius: borderRadius\n },\n [`${componentCls}-handler-down`]: {\n borderBlockStart: `${lineWidth}px ${lineType} ${colorBorder}`,\n borderEndEndRadius: borderRadius\n }\n }, genRadiusStyle(token, 'lg')), genRadiusStyle(token, 'sm')), {\n // Disabled\n '&-disabled, &-readonly': {\n [`${componentCls}-handler-wrap`]: {\n display: 'none'\n },\n [`${componentCls}-input`]: {\n color: 'inherit'\n }\n },\n [`\n ${componentCls}-handler-up-disabled,\n ${componentCls}-handler-down-disabled\n `]: {\n cursor: 'not-allowed'\n },\n [`\n ${componentCls}-handler-up-disabled:hover &-handler-up-inner,\n ${componentCls}-handler-down-disabled:hover &-handler-down-inner\n `]: {\n color: colorTextDisabled\n }\n })\n },\n // Border-less\n {\n [`${componentCls}-borderless`]: {\n borderColor: 'transparent',\n boxShadow: 'none',\n [`${componentCls}-handler-down`]: {\n borderBlockStartWidth: 0\n }\n }\n }];\n};\nconst genAffixWrapperStyles = token => {\n const {\n componentCls,\n inputPaddingVertical,\n inputPaddingHorizontal,\n inputAffixPadding,\n controlWidth,\n borderRadiusLG,\n borderRadiusSM\n } = token;\n return {\n [`${componentCls}-affix-wrapper`]: Object.assign(Object.assign(Object.assign({}, genBasicInputStyle(token)), genStatusStyle(token, `${componentCls}-affix-wrapper`)), {\n // or number handler will cover form status\n position: 'relative',\n display: 'inline-flex',\n width: controlWidth,\n padding: 0,\n paddingInlineStart: inputPaddingHorizontal,\n '&-lg': {\n borderRadius: borderRadiusLG\n },\n '&-sm': {\n borderRadius: borderRadiusSM\n },\n [`&:not(${componentCls}-affix-wrapper-disabled):hover`]: Object.assign(Object.assign({}, genHoverStyle(token)), {\n zIndex: 1\n }),\n '&-focused, &:focus': {\n zIndex: 1\n },\n [`&-disabled > ${componentCls}-disabled`]: {\n background: 'transparent'\n },\n [`> div${componentCls}`]: {\n width: '100%',\n border: 'none',\n outline: 'none',\n [`&${componentCls}-focused`]: {\n boxShadow: 'none !important'\n }\n },\n [`input${componentCls}-input`]: {\n padding: `${inputPaddingVertical}px 0`\n },\n '&::before': {\n display: 'inline-block',\n width: 0,\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n },\n [`${componentCls}-handler-wrap`]: {\n zIndex: 2\n },\n [componentCls]: {\n '&-prefix, &-suffix': {\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n pointerEvents: 'none'\n },\n '&-prefix': {\n marginInlineEnd: inputAffixPadding\n },\n '&-suffix': {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineEnd: 0,\n zIndex: 1,\n height: '100%',\n marginInlineEnd: inputPaddingHorizontal,\n marginInlineStart: inputAffixPadding\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('InputNumber', token => {\n const inputNumberToken = initInputToken(token);\n return [genInputNumberStyles(inputNumberToken), genAffixWrapperStyles(inputNumberToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(inputNumberToken)];\n}, token => ({\n controlWidth: 90,\n handleWidth: token.controlHeightSM - token.lineWidth * 2,\n handleFontSize: token.fontSize / 2,\n handleVisible: 'auto'\n}));","'use client';\n\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 UpOutlined from \"@ant-design/icons/es/icons/UpOutlined\";\nimport classNames from 'classnames';\nimport RcInputNumber from 'rc-input-number';\nimport * as React from 'react';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport ConfigProvider, { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport { NoCompactStyle, useCompactItemContext } from '../space/Compact';\nimport useStyle from './style';\nconst InputNumber = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const inputRef = React.useRef(null);\n React.useImperativeHandle(ref, () => inputRef.current);\n const {\n className,\n rootClassName,\n size: customizeSize,\n disabled: customDisabled,\n prefixCls: customizePrefixCls,\n addonBefore,\n addonAfter,\n prefix,\n bordered = true,\n readOnly,\n status: customStatus,\n controls\n } = props,\n others = __rest(props, [\"className\", \"rootClassName\", \"size\", \"disabled\", \"prefixCls\", \"addonBefore\", \"addonAfter\", \"prefix\", \"bordered\", \"readOnly\", \"status\", \"controls\"]);\n const prefixCls = getPrefixCls('input-number', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n let upIcon = /*#__PURE__*/React.createElement(UpOutlined, {\n className: `${prefixCls}-handler-up-inner`\n });\n let downIcon = /*#__PURE__*/React.createElement(DownOutlined, {\n className: `${prefixCls}-handler-down-inner`\n });\n const controlsTemp = typeof controls === 'boolean' ? controls : undefined;\n if (typeof controls === 'object') {\n upIcon = typeof controls.upIcon === 'undefined' ? upIcon : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-handler-up-inner`\n }, controls.upIcon);\n downIcon = typeof controls.downIcon === 'undefined' ? downIcon : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-handler-down-inner`\n }, controls.downIcon);\n }\n const {\n hasFeedback,\n status: contextStatus,\n isFormItemInput,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const inputNumberClass = classNames({\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-in-form-item`]: isFormItemInput\n }, getStatusClassNames(prefixCls, mergedStatus), compactItemClassnames, hashId);\n const wrapperClassName = `${prefixCls}-group`;\n const element = /*#__PURE__*/React.createElement(RcInputNumber, Object.assign({\n ref: inputRef,\n disabled: mergedDisabled,\n className: classNames(className, rootClassName),\n upHandler: upIcon,\n downHandler: downIcon,\n prefixCls: prefixCls,\n readOnly: readOnly,\n controls: controlsTemp,\n prefix: prefix,\n suffix: hasFeedback && feedbackIcon,\n addonAfter: addonAfter && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonAfter)),\n addonBefore: addonBefore && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonBefore)),\n classNames: {\n input: inputNumberClass\n },\n classes: {\n affixWrapper: classNames(getStatusClassNames(`${prefixCls}-affix-wrapper`, mergedStatus, hasFeedback), {\n [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-affix-wrapper-borderless`]: !bordered\n }, hashId),\n wrapper: classNames({\n [`${wrapperClassName}-rtl`]: direction === 'rtl',\n [`${prefixCls}-wrapper-disabled`]: mergedDisabled\n }, hashId),\n group: classNames({\n [`${prefixCls}-group-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-group-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-group-wrapper-rtl`]: direction === 'rtl'\n }, getStatusClassNames(`${prefixCls}-group-wrapper`, mergedStatus, hasFeedback), hashId)\n }\n }, others));\n return wrapSSR(element);\n});\nconst TypedInputNumber = InputNumber;\n/** @private Internal Component. Do not use in your production. */\nconst PureInputNumber = props => /*#__PURE__*/React.createElement(ConfigProvider, {\n theme: {\n components: {\n InputNumber: {\n handleVisible: true\n }\n }\n }\n}, /*#__PURE__*/React.createElement(InputNumber, Object.assign({}, props)));\nif (process.env.NODE_ENV !== 'production') {\n TypedInputNumber.displayName = 'InputNumber';\n}\nTypedInputNumber._InternalPanelDoNotUseOrYouWillBeFired = PureInputNumber;\nexport default TypedInputNumber;","// eslint-disable-next-line import/prefer-default-export\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}","var __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 CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RcInput from 'rc-input';\nimport { composeRef } from \"rc-util/es/ref\";\nimport React, { forwardRef, useContext, useEffect, useRef } from 'react';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport { NoCompactStyle, useCompactItemContext } from '../space/Compact';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport useStyle from './style';\nimport { hasPrefixSuffix } from './utils';\nexport function triggerFocus(element, option) {\n if (!element) {\n return;\n }\n element.focus(option);\n // Selection content\n const {\n cursor\n } = option || {};\n if (cursor) {\n const len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n break;\n }\n }\n}\nconst Input = /*#__PURE__*/forwardRef((props, ref) => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n bordered = true,\n status: customStatus,\n size: customSize,\n disabled: customDisabled,\n onBlur,\n onFocus,\n suffix,\n allowClear,\n addonAfter,\n addonBefore,\n className,\n style,\n styles,\n rootClassName,\n onChange,\n classNames: classes\n } = props,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"status\", \"size\", \"disabled\", \"onBlur\", \"onFocus\", \"suffix\", \"allowClear\", \"addonAfter\", \"addonBefore\", \"className\", \"style\", \"styles\", \"rootClassName\", \"onChange\", \"classNames\"]);\n const {\n getPrefixCls,\n direction,\n input\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('input', customizePrefixCls);\n const inputRef = useRef(null);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // ===================== Compact Item =====================\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n // ===================== Size =====================\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customSize !== null && customSize !== void 0 ? customSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Focus warning =====================\n const inputHasPrefixSuffix = hasPrefixSuffix(props) || !!hasFeedback;\n const prevHasPrefixSuffix = useRef(inputHasPrefixSuffix);\n useEffect(() => {\n var _a;\n if (inputHasPrefixSuffix && !prevHasPrefixSuffix.current) {\n process.env.NODE_ENV !== \"production\" ? warning(document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input), 'Input', `When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ`) : void 0;\n }\n prevHasPrefixSuffix.current = inputHasPrefixSuffix;\n }, [inputHasPrefixSuffix]);\n // ===================== Remove Password value =====================\n const removePasswordTimeout = useRemovePasswordTimeout(inputRef, true);\n const handleBlur = e => {\n removePasswordTimeout();\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n const handleFocus = e => {\n removePasswordTimeout();\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n const handleChange = e => {\n removePasswordTimeout();\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n };\n const suffixNode = (hasFeedback || suffix) && /*#__PURE__*/React.createElement(React.Fragment, null, suffix, hasFeedback && feedbackIcon);\n // Allow clear\n let mergedAllowClear;\n if (typeof allowClear === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n };\n }\n return wrapSSR( /*#__PURE__*/React.createElement(RcInput, Object.assign({\n ref: composeRef(ref, inputRef),\n prefixCls: prefixCls,\n autoComplete: input === null || input === void 0 ? void 0 : input.autoComplete\n }, rest, {\n disabled: mergedDisabled,\n onBlur: handleBlur,\n onFocus: handleFocus,\n style: Object.assign(Object.assign({}, input === null || input === void 0 ? void 0 : input.style), style),\n styles: Object.assign(Object.assign({}, input === null || input === void 0 ? void 0 : input.styles), styles),\n suffix: suffixNode,\n allowClear: mergedAllowClear,\n className: classNames(className, rootClassName, compactItemClassnames, input === null || input === void 0 ? void 0 : input.className),\n onChange: handleChange,\n addonAfter: addonAfter && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonAfter)),\n addonBefore: addonBefore && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonBefore)),\n classNames: Object.assign(Object.assign(Object.assign({}, classes), input === null || input === void 0 ? void 0 : input.classNames), {\n input: classNames({\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-borderless`]: !bordered\n }, !inputHasPrefixSuffix && getStatusClassNames(prefixCls, mergedStatus), classes === null || classes === void 0 ? void 0 : classes.input, (_a = input === null || input === void 0 ? void 0 : input.classNames) === null || _a === void 0 ? void 0 : _a.input, hashId)\n }),\n classes: {\n affixWrapper: classNames({\n [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-affix-wrapper-borderless`]: !bordered\n }, getStatusClassNames(`${prefixCls}-affix-wrapper`, mergedStatus, hasFeedback), hashId),\n wrapper: classNames({\n [`${prefixCls}-group-rtl`]: direction === 'rtl'\n }, hashId),\n group: classNames({\n [`${prefixCls}-group-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-group-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-group-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-group-wrapper-disabled`]: mergedDisabled\n }, getStatusClassNames(`${prefixCls}-group-wrapper`, mergedStatus, hasFeedback), hashId)\n }\n })));\n});\nexport default Input;","var __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 CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RcTextArea from 'rc-textarea';\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport { triggerFocus } from './Input';\nimport useStyle from './style';\nconst TextArea = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n bordered = true,\n size: customizeSize,\n disabled: customDisabled,\n status: customStatus,\n allowClear,\n showCount,\n classNames: classes\n } = props,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"size\", \"disabled\", \"status\", \"allowClear\", \"showCount\", \"classNames\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n // ===================== Size =====================\n const mergedSize = useSize(customizeSize);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Ref =====================\n const innerRef = React.useRef(null);\n React.useImperativeHandle(ref, () => {\n var _a;\n return {\n resizableTextArea: (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea,\n focus: option => {\n var _a, _b;\n triggerFocus((_b = (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea) === null || _b === void 0 ? void 0 : _b.textArea, option);\n },\n blur: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n const prefixCls = getPrefixCls('input', customizePrefixCls);\n // Allow clear\n let mergedAllowClear;\n if (typeof allowClear === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n };\n }\n // ===================== Style =====================\n const [wrapSSR, hashId] = useStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(RcTextArea, Object.assign({}, rest, {\n disabled: mergedDisabled,\n allowClear: mergedAllowClear,\n classes: {\n affixWrapper: classNames(`${prefixCls}-textarea-affix-wrapper`, {\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-affix-wrapper-borderless`]: !bordered,\n [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-textarea-show-count`]: showCount\n }, getStatusClassNames(`${prefixCls}-affix-wrapper`, mergedStatus), hashId)\n },\n classNames: Object.assign(Object.assign({}, classes), {\n textarea: classNames({\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large'\n }, getStatusClassNames(prefixCls, mergedStatus), hashId, classes === null || classes === void 0 ? void 0 : classes.textarea)\n }),\n prefixCls: prefixCls,\n suffix: hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-textarea-suffix`\n }, feedbackIcon),\n showCount: showCount,\n ref: innerRef\n })));\n});\nexport default TextArea;","import { useEffect, useRef } from 'react';\nexport default function useRemovePasswordTimeout(inputRef, triggerOnMount) {\n const removePasswordTimeoutRef = useRef([]);\n const removePasswordTimeout = () => {\n removePasswordTimeoutRef.current.push(setTimeout(() => {\n var _a, _b, _c, _d;\n if (((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.input.getAttribute('type')) === 'password' && ((_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.input.hasAttribute('value'))) {\n (_d = inputRef.current) === null || _d === void 0 ? void 0 : _d.input.removeAttribute('value');\n }\n }));\n };\n useEffect(() => {\n if (triggerOnMount) {\n removePasswordTimeout();\n }\n return () => removePasswordTimeoutRef.current.forEach(timer => {\n if (timer) {\n clearTimeout(timer);\n }\n });\n }, []);\n return removePasswordTimeout;\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nimport useStyle from './style';\nconst Group = props => {\n const {\n getPrefixCls,\n direction\n } = useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className\n } = props;\n const prefixCls = getPrefixCls('input-group', customizePrefixCls);\n const inputPrefixCls = getPrefixCls('input');\n const [wrapSSR, hashId] = useStyle(inputPrefixCls);\n const cls = classNames(prefixCls, {\n [`${prefixCls}-lg`]: props.size === 'large',\n [`${prefixCls}-sm`]: props.size === 'small',\n [`${prefixCls}-compact`]: props.compact,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, hashId, className);\n const formItemContext = useContext(FormItemInputContext);\n const groupFormItemContext = useMemo(() => Object.assign(Object.assign({}, formItemContext), {\n isFormItemInput: false\n }), [formItemContext]);\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Input.Group', `'Input.Group' is deprecated. Please use 'Space.Compact' instead.`) : void 0;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", {\n className: cls,\n style: props.style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onFocus: props.onFocus,\n onBlur: props.onBlur\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: groupFormItemContext\n }, props.children)));\n};\nexport default Group;","var __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 EyeInvisibleOutlined from \"@ant-design/icons/es/icons/EyeInvisibleOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport Input from './Input';\nconst defaultIconRender = visible => visible ? /*#__PURE__*/React.createElement(EyeOutlined, null) : /*#__PURE__*/React.createElement(EyeInvisibleOutlined, null);\nconst ActionMap = {\n click: 'onClick',\n hover: 'onMouseOver'\n};\nconst Password = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n visibilityToggle = true\n } = props;\n const visibilityControlled = typeof visibilityToggle === 'object' && visibilityToggle.visible !== undefined;\n const [visible, setVisible] = useState(() => visibilityControlled ? visibilityToggle.visible : false);\n const inputRef = useRef(null);\n React.useEffect(() => {\n if (visibilityControlled) {\n setVisible(visibilityToggle.visible);\n }\n }, [visibilityControlled, visibilityToggle]);\n // Remove Password value\n const removePasswordTimeout = useRemovePasswordTimeout(inputRef);\n const onVisibleChange = () => {\n const {\n disabled\n } = props;\n if (disabled) {\n return;\n }\n if (visible) {\n removePasswordTimeout();\n }\n setVisible(prevState => {\n var _a;\n const newState = !prevState;\n if (typeof visibilityToggle === 'object') {\n (_a = visibilityToggle.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(visibilityToggle, newState);\n }\n return newState;\n });\n };\n const getIcon = prefixCls => {\n const {\n action = 'click',\n iconRender = defaultIconRender\n } = props;\n const iconTrigger = ActionMap[action] || '';\n const icon = iconRender(visible);\n const iconProps = {\n [iconTrigger]: onVisibleChange,\n className: `${prefixCls}-icon`,\n key: 'passwordIcon',\n onMouseDown: e => {\n // Prevent focused state lost\n // https://github.com/ant-design/ant-design/issues/15173\n e.preventDefault();\n },\n onMouseUp: e => {\n // Prevent caret position change\n // https://github.com/ant-design/ant-design/issues/23524\n e.preventDefault();\n }\n };\n return /*#__PURE__*/React.cloneElement( /*#__PURE__*/React.isValidElement(icon) ? icon : /*#__PURE__*/React.createElement(\"span\", null, icon), iconProps);\n };\n const {\n className,\n prefixCls: customizePrefixCls,\n inputPrefixCls: customizeInputPrefixCls,\n size\n } = props,\n restProps = __rest(props, [\"className\", \"prefixCls\", \"inputPrefixCls\", \"size\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n const prefixCls = getPrefixCls('input-password', customizePrefixCls);\n const suffixIcon = visibilityToggle && getIcon(prefixCls);\n const inputClassName = classNames(prefixCls, className, {\n [`${prefixCls}-${size}`]: !!size\n });\n const omittedProps = Object.assign(Object.assign({}, omit(restProps, ['suffix', 'iconRender', 'visibilityToggle'])), {\n type: visible ? 'text' : 'password',\n className: inputClassName,\n prefixCls: inputPrefixCls,\n suffix: suffixIcon\n });\n if (size) {\n omittedProps.size = size;\n }\n return /*#__PURE__*/React.createElement(Input, Object.assign({\n ref: composeRef(ref, inputRef)\n }, omittedProps));\n});\nif (process.env.NODE_ENV !== 'production') {\n Password.displayName = 'Password';\n}\nexport default Password;","var __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 SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { cloneElement } from '../_util/reactNode';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport { useCompactItemContext } from '../space/Compact';\nimport Input from './Input';\nconst Search = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n inputPrefixCls: customizeInputPrefixCls,\n className,\n size: customizeSize,\n suffix,\n enterButton = false,\n addonAfter,\n loading,\n disabled,\n onSearch: customOnSearch,\n onChange: customOnChange,\n onCompositionStart,\n onCompositionEnd\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"inputPrefixCls\", \"className\", \"size\", \"suffix\", \"enterButton\", \"addonAfter\", \"loading\", \"disabled\", \"onSearch\", \"onChange\", \"onCompositionStart\", \"onCompositionEnd\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const composedRef = React.useRef(false);\n const prefixCls = getPrefixCls('input-search', customizePrefixCls);\n const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n const {\n compactSize\n } = useCompactItemContext(prefixCls, direction);\n const size = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n const inputRef = React.useRef(null);\n const onChange = e => {\n if (e && e.target && e.type === 'click' && customOnSearch) {\n customOnSearch(e.target.value, e);\n }\n if (customOnChange) {\n customOnChange(e);\n }\n };\n const onMouseDown = e => {\n var _a;\n if (document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input)) {\n e.preventDefault();\n }\n };\n const onSearch = e => {\n var _a, _b;\n if (customOnSearch) {\n customOnSearch((_b = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.value, e);\n }\n };\n const onPressEnter = e => {\n if (composedRef.current || loading) {\n return;\n }\n onSearch(e);\n };\n const searchIcon = typeof enterButton === 'boolean' ? /*#__PURE__*/React.createElement(SearchOutlined, null) : null;\n const btnClassName = `${prefixCls}-button`;\n let button;\n const enterButtonAsElement = enterButton || {};\n const isAntdButton = enterButtonAsElement.type && enterButtonAsElement.type.__ANT_BUTTON === true;\n if (isAntdButton || enterButtonAsElement.type === 'button') {\n button = cloneElement(enterButtonAsElement, Object.assign({\n onMouseDown,\n onClick: e => {\n var _a, _b;\n (_b = (_a = enterButtonAsElement === null || enterButtonAsElement === void 0 ? void 0 : enterButtonAsElement.props) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n onSearch(e);\n },\n key: 'enterButton'\n }, isAntdButton ? {\n className: btnClassName,\n size\n } : {}));\n } else {\n button = /*#__PURE__*/React.createElement(Button, {\n className: btnClassName,\n type: enterButton ? 'primary' : undefined,\n size: size,\n disabled: disabled,\n key: \"enterButton\",\n onMouseDown: onMouseDown,\n onClick: onSearch,\n loading: loading,\n icon: searchIcon\n }, enterButton);\n }\n if (addonAfter) {\n button = [button, cloneElement(addonAfter, {\n key: 'addonAfter'\n })];\n }\n const cls = classNames(prefixCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-${size}`]: !!size,\n [`${prefixCls}-with-button`]: !!enterButton\n }, className);\n const handleOnCompositionStart = e => {\n composedRef.current = true;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n const handleOnCompositionEnd = e => {\n composedRef.current = false;\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n return /*#__PURE__*/React.createElement(Input, Object.assign({\n ref: composeRef(inputRef, ref),\n onPressEnter: onPressEnter\n }, restProps, {\n size: size,\n onCompositionStart: handleOnCompositionStart,\n onCompositionEnd: handleOnCompositionEnd,\n prefixCls: inputPrefixCls,\n addonAfter: button,\n suffix: suffix,\n onChange: onChange,\n className: cls,\n disabled: disabled\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Search.displayName = 'Search';\n}\nexport default Search;","'use client';\n\nimport Group from './Group';\nimport InternalInput from './Input';\nimport Password from './Password';\nimport Search from './Search';\nimport TextArea from './TextArea';\nconst Input = InternalInput;\nif (process.env.NODE_ENV !== 'production') {\n Input.displayName = 'Input';\n}\nInput.Group = Group;\nInput.Search = Search;\nInput.TextArea = TextArea;\nInput.Password = Password;\nexport default Input;","import { clearFix, resetComponent } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nexport const genPlaceholderStyle = color => ({\n // Firefox\n '&::-moz-placeholder': {\n opacity: 1\n },\n '&::placeholder': {\n color,\n userSelect: 'none' // https://github.com/ant-design/ant-design/pull/32639\n },\n\n '&:placeholder-shown': {\n textOverflow: 'ellipsis'\n }\n});\nexport const genHoverStyle = token => ({\n borderColor: token.inputBorderHoverColor,\n borderInlineEndWidth: token.lineWidth\n});\nexport const genActiveStyle = token => ({\n borderColor: token.inputBorderHoverColor,\n boxShadow: `0 0 0 ${token.controlOutlineWidth}px ${token.controlOutline}`,\n borderInlineEndWidth: token.lineWidth,\n outline: 0\n});\nexport const genDisabledStyle = token => ({\n color: token.colorTextDisabled,\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n boxShadow: 'none',\n cursor: 'not-allowed',\n opacity: 1,\n '&:hover': Object.assign({}, genHoverStyle(mergeToken(token, {\n inputBorderHoverColor: token.colorBorder\n })))\n});\nconst genInputLargeStyle = token => {\n const {\n inputPaddingVerticalLG,\n fontSizeLG,\n lineHeightLG,\n borderRadiusLG,\n inputPaddingHorizontalLG\n } = token;\n return {\n padding: `${inputPaddingVerticalLG}px ${inputPaddingHorizontalLG}px`,\n fontSize: fontSizeLG,\n lineHeight: lineHeightLG,\n borderRadius: borderRadiusLG\n };\n};\nexport const genInputSmallStyle = token => ({\n padding: `${token.inputPaddingVerticalSM}px ${token.controlPaddingHorizontalSM - 1}px`,\n borderRadius: token.borderRadiusSM\n});\nexport const genStatusStyle = (token, parentCls) => {\n const {\n componentCls,\n colorError,\n colorWarning,\n colorErrorOutline,\n colorWarningOutline,\n colorErrorBorderHover,\n colorWarningBorderHover\n } = token;\n return {\n [`&-status-error:not(${parentCls}-disabled):not(${parentCls}-borderless)${parentCls}`]: {\n borderColor: colorError,\n '&:hover': {\n borderColor: colorErrorBorderHover\n },\n '&:focus, &-focused': Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorError,\n inputBorderHoverColor: colorError,\n controlOutline: colorErrorOutline\n }))),\n [`${componentCls}-prefix, ${componentCls}-suffix`]: {\n color: colorError\n }\n },\n [`&-status-warning:not(${parentCls}-disabled):not(${parentCls}-borderless)${parentCls}`]: {\n borderColor: colorWarning,\n '&:hover': {\n borderColor: colorWarningBorderHover\n },\n '&:focus, &-focused': Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorWarning,\n inputBorderHoverColor: colorWarning,\n controlOutline: colorWarningOutline\n }))),\n [`${componentCls}-prefix, ${componentCls}-suffix`]: {\n color: colorWarning\n }\n }\n };\n};\nexport const genBasicInputStyle = token => Object.assign(Object.assign({\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n minWidth: 0,\n padding: `${token.inputPaddingVertical}px ${token.inputPaddingHorizontal}px`,\n color: token.colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n backgroundColor: token.colorBgContainer,\n backgroundImage: 'none',\n borderWidth: token.lineWidth,\n borderStyle: token.lineType,\n borderColor: token.colorBorder,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationMid}`\n}, genPlaceholderStyle(token.colorTextPlaceholder)), {\n '&:hover': Object.assign({}, genHoverStyle(token)),\n '&:focus, &-focused': Object.assign({}, genActiveStyle(token)),\n '&-disabled, &[disabled]': Object.assign({}, genDisabledStyle(token)),\n '&-borderless': {\n '&, &:hover, &:focus, &-focused, &-disabled, &[disabled]': {\n backgroundColor: 'transparent',\n border: 'none',\n boxShadow: 'none'\n }\n },\n // Reset height for `textarea`s\n 'textarea&': {\n maxWidth: '100%',\n height: 'auto',\n minHeight: token.controlHeight,\n lineHeight: token.lineHeight,\n verticalAlign: 'bottom',\n transition: `all ${token.motionDurationSlow}, height 0s`,\n resize: 'vertical'\n },\n // Size\n '&-lg': Object.assign({}, genInputLargeStyle(token)),\n '&-sm': Object.assign({}, genInputSmallStyle(token)),\n // RTL\n '&-rtl': {\n direction: 'rtl'\n },\n '&-textarea-rtl': {\n direction: 'rtl'\n }\n});\nexport const genInputGroupStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n return {\n position: 'relative',\n display: 'table',\n width: '100%',\n borderCollapse: 'separate',\n borderSpacing: 0,\n // Undo padding and float of grid classes\n [`&[class*='col-']`]: {\n paddingInlineEnd: token.paddingXS,\n '&:last-child': {\n paddingInlineEnd: 0\n }\n },\n // Sizing options\n [`&-lg ${componentCls}, &-lg > ${componentCls}-group-addon`]: Object.assign({}, genInputLargeStyle(token)),\n [`&-sm ${componentCls}, &-sm > ${componentCls}-group-addon`]: Object.assign({}, genInputSmallStyle(token)),\n // Fix https://github.com/ant-design/ant-design/issues/5754\n [`&-lg ${antCls}-select-single ${antCls}-select-selector`]: {\n height: token.controlHeightLG\n },\n [`&-sm ${antCls}-select-single ${antCls}-select-selector`]: {\n height: token.controlHeightSM\n },\n [`> ${componentCls}`]: {\n display: 'table-cell',\n '&:not(:first-child):not(:last-child)': {\n borderRadius: 0\n }\n },\n [`${componentCls}-group`]: {\n [`&-addon, &-wrap`]: {\n display: 'table-cell',\n width: 1,\n whiteSpace: 'nowrap',\n verticalAlign: 'middle',\n '&:not(:first-child):not(:last-child)': {\n borderRadius: 0\n }\n },\n '&-wrap > *': {\n display: 'block !important'\n },\n '&-addon': {\n position: 'relative',\n padding: `0 ${token.inputPaddingHorizontal}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n textAlign: 'center',\n backgroundColor: token.colorFillAlter,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationSlow}`,\n lineHeight: 1,\n // Reset Select's style in addon\n [`${antCls}-select`]: {\n margin: `-${token.inputPaddingVertical + 1}px -${token.inputPaddingHorizontal}px`,\n [`&${antCls}-select-single:not(${antCls}-select-customize-input)`]: {\n [`${antCls}-select-selector`]: {\n backgroundColor: 'inherit',\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n boxShadow: 'none'\n }\n },\n '&-open, &-focused': {\n [`${antCls}-select-selector`]: {\n color: token.colorPrimary\n }\n }\n },\n // https://github.com/ant-design/ant-design/issues/31333\n [`${antCls}-cascader-picker`]: {\n margin: `-9px -${token.inputPaddingHorizontal}px`,\n backgroundColor: 'transparent',\n [`${antCls}-cascader-input`]: {\n textAlign: 'start',\n border: 0,\n boxShadow: 'none'\n }\n }\n },\n '&-addon:first-child': {\n borderInlineEnd: 0\n },\n '&-addon:last-child': {\n borderInlineStart: 0\n }\n },\n [`${componentCls}`]: {\n width: '100%',\n marginBottom: 0,\n textAlign: 'inherit',\n '&:focus': {\n zIndex: 1,\n borderInlineEndWidth: 1\n },\n '&:hover': {\n zIndex: 1,\n borderInlineEndWidth: 1,\n [`${componentCls}-search-with-button &`]: {\n zIndex: 0\n }\n }\n },\n // Reset rounded corners\n [`> ${componentCls}:first-child, ${componentCls}-group-addon:first-child`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n // Reset Select's style in addon\n [`${antCls}-select ${antCls}-select-selector`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`> ${componentCls}-affix-wrapper`]: {\n [`&:not(:first-child) ${componentCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n },\n [`&:not(:last-child) ${componentCls}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`> ${componentCls}:last-child, ${componentCls}-group-addon:last-child`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n // Reset Select's style in addon\n [`${antCls}-select ${antCls}-select-selector`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`${componentCls}-affix-wrapper`]: {\n '&:not(:last-child)': {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n [`${componentCls}-search &`]: {\n borderStartStartRadius: token.borderRadius,\n borderEndStartRadius: token.borderRadius\n }\n },\n [`&:not(:first-child), ${componentCls}-search &:not(:first-child)`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`&${componentCls}-group-compact`]: Object.assign(Object.assign({\n display: 'block'\n }, clearFix()), {\n [`${componentCls}-group-addon, ${componentCls}-group-wrap, > ${componentCls}`]: {\n '&:not(:first-child):not(:last-child)': {\n borderInlineEndWidth: token.lineWidth,\n '&:hover': {\n zIndex: 1\n },\n '&:focus': {\n zIndex: 1\n }\n }\n },\n '& > *': {\n display: 'inline-block',\n float: 'none',\n verticalAlign: 'top',\n borderRadius: 0\n },\n [`\n & > ${componentCls}-affix-wrapper,\n & > ${componentCls}-number-affix-wrapper,\n & > ${antCls}-picker-range\n `]: {\n display: 'inline-flex'\n },\n '& > *:not(:last-child)': {\n marginInlineEnd: -token.lineWidth,\n borderInlineEndWidth: token.lineWidth\n },\n // Undo float for .ant-input-group .ant-input\n [`${componentCls}`]: {\n float: 'none'\n },\n // reset border for Select, DatePicker, AutoComplete, Cascader, Mention, TimePicker, Input\n [`& > ${antCls}-select > ${antCls}-select-selector,\n & > ${antCls}-select-auto-complete ${componentCls},\n & > ${antCls}-cascader-picker ${componentCls},\n & > ${componentCls}-group-wrapper ${componentCls}`]: {\n borderInlineEndWidth: token.lineWidth,\n borderRadius: 0,\n '&:hover': {\n zIndex: 1\n },\n '&:focus': {\n zIndex: 1\n }\n },\n [`& > ${antCls}-select-focused`]: {\n zIndex: 1\n },\n // update z-index for arrow icon\n [`& > ${antCls}-select > ${antCls}-select-arrow`]: {\n zIndex: 1 // https://github.com/ant-design/ant-design/issues/20371\n },\n [`& > *:first-child,\n & > ${antCls}-select:first-child > ${antCls}-select-selector,\n & > ${antCls}-select-auto-complete:first-child ${componentCls},\n & > ${antCls}-cascader-picker:first-child ${componentCls}`]: {\n borderStartStartRadius: token.borderRadius,\n borderEndStartRadius: token.borderRadius\n },\n [`& > *:last-child,\n & > ${antCls}-select:last-child > ${antCls}-select-selector,\n & > ${antCls}-cascader-picker:last-child ${componentCls},\n & > ${antCls}-cascader-picker-focused:last-child ${componentCls}`]: {\n borderInlineEndWidth: token.lineWidth,\n borderStartEndRadius: token.borderRadius,\n borderEndEndRadius: token.borderRadius\n },\n // https://github.com/ant-design/ant-design/issues/12493\n [`& > ${antCls}-select-auto-complete ${componentCls}`]: {\n verticalAlign: 'top'\n },\n [`${componentCls}-group-wrapper + ${componentCls}-group-wrapper`]: {\n marginInlineStart: -token.lineWidth,\n [`${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n }\n },\n [`${componentCls}-group-wrapper:not(:last-child)`]: {\n [`&${componentCls}-search > ${componentCls}-group`]: {\n [`& > ${componentCls}-group-addon > ${componentCls}-search-button`]: {\n borderRadius: 0\n },\n [`& > ${componentCls}`]: {\n borderStartStartRadius: token.borderRadius,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n borderEndStartRadius: token.borderRadius\n }\n }\n }\n })\n };\n};\nconst genInputStyle = token => {\n const {\n componentCls,\n controlHeightSM,\n lineWidth\n } = token;\n const FIXED_CHROME_COLOR_HEIGHT = 16;\n const colorSmallPadding = (controlHeightSM - lineWidth * 2 - FIXED_CHROME_COLOR_HEIGHT) / 2;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBasicInputStyle(token)), genStatusStyle(token, componentCls)), {\n '&[type=\"color\"]': {\n height: token.controlHeight,\n [`&${componentCls}-lg`]: {\n height: token.controlHeightLG\n },\n [`&${componentCls}-sm`]: {\n height: controlHeightSM,\n paddingTop: colorSmallPadding,\n paddingBottom: colorSmallPadding\n }\n },\n '&[type=\"search\"]::-webkit-search-cancel-button, &[type=\"search\"]::-webkit-search-decoration': {\n '-webkit-appearance': 'none'\n }\n })\n };\n};\nconst genAllowClearStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // ========================= Input =========================\n [`${componentCls}-clear-icon`]: {\n margin: 0,\n color: token.colorTextQuaternary,\n fontSize: token.fontSizeIcon,\n verticalAlign: -1,\n // https://github.com/ant-design/ant-design/pull/18151\n // https://codesandbox.io/s/wizardly-sun-u10br\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '&:hover': {\n color: token.colorTextTertiary\n },\n '&:active': {\n color: token.colorText\n },\n '&-hidden': {\n visibility: 'hidden'\n },\n '&-has-suffix': {\n margin: `0 ${token.inputAffixPadding}px`\n }\n }\n };\n};\nconst genAffixStyle = token => {\n const {\n componentCls,\n inputAffixPadding,\n colorTextDescription,\n motionDurationSlow,\n colorIcon,\n colorIconHover,\n iconCls\n } = token;\n return {\n [`${componentCls}-affix-wrapper`]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n display: 'inline-flex',\n [`&:not(${componentCls}-affix-wrapper-disabled):hover`]: Object.assign(Object.assign({}, genHoverStyle(token)), {\n zIndex: 1,\n [`${componentCls}-search-with-button &`]: {\n zIndex: 0\n }\n }),\n '&-focused, &:focus': {\n zIndex: 1\n },\n '&-disabled': {\n [`${componentCls}[disabled]`]: {\n background: 'transparent'\n }\n },\n [`> input${componentCls}`]: {\n padding: 0,\n fontSize: 'inherit',\n border: 'none',\n borderRadius: 0,\n outline: 'none',\n '&::-ms-reveal': {\n display: 'none'\n },\n '&:focus': {\n boxShadow: 'none !important'\n }\n },\n '&::before': {\n display: 'inline-block',\n width: 0,\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n },\n [`${componentCls}`]: {\n '&-prefix, &-suffix': {\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n '> *:not(:last-child)': {\n marginInlineEnd: token.paddingXS\n }\n },\n '&-show-count-suffix': {\n color: colorTextDescription\n },\n '&-show-count-has-suffix': {\n marginInlineEnd: token.paddingXXS\n },\n '&-prefix': {\n marginInlineEnd: inputAffixPadding\n },\n '&-suffix': {\n marginInlineStart: inputAffixPadding\n }\n }\n }), genAllowClearStyle(token)), {\n // password\n [`${iconCls}${componentCls}-password-icon`]: {\n color: colorIcon,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n color: colorIconHover\n }\n }\n }), genStatusStyle(token, `${componentCls}-affix-wrapper`))\n };\n};\nconst genGroupStyle = token => {\n const {\n componentCls,\n colorError,\n colorWarning,\n borderRadiusLG,\n borderRadiusSM\n } = token;\n return {\n [`${componentCls}-group`]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genInputGroupStyle(token)), {\n '&-rtl': {\n direction: 'rtl'\n },\n '&-wrapper': {\n display: 'inline-block',\n width: '100%',\n textAlign: 'start',\n verticalAlign: 'top',\n '&-rtl': {\n direction: 'rtl'\n },\n // Size\n '&-lg': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusLG,\n fontSize: token.fontSizeLG\n }\n },\n '&-sm': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusSM\n }\n },\n // Status\n '&-status-error': {\n [`${componentCls}-group-addon`]: {\n color: colorError,\n borderColor: colorError\n }\n },\n '&-status-warning': {\n [`${componentCls}-group-addon`]: {\n color: colorWarning,\n borderColor: colorWarning\n }\n },\n '&-disabled': {\n [`${componentCls}-group-addon`]: Object.assign({}, genDisabledStyle(token))\n },\n // Fix the issue of using icons in Space Compact mode\n // https://github.com/ant-design/ant-design/issues/42122\n [`&:not(${componentCls}-compact-first-item):not(${componentCls}-compact-last-item)${componentCls}-compact-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderRadius: 0\n }\n },\n [`&:not(${componentCls}-compact-last-item)${componentCls}-compact-first-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`&:not(${componentCls}-compact-first-item)${componentCls}-compact-last-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n }\n })\n };\n};\nconst genSearchInputStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n const searchPrefixCls = `${componentCls}-search`;\n return {\n [searchPrefixCls]: {\n [`${componentCls}`]: {\n '&:hover, &:focus': {\n borderColor: token.colorPrimaryHover,\n [`+ ${componentCls}-group-addon ${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n borderInlineStartColor: token.colorPrimaryHover\n }\n }\n },\n [`${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n },\n // fix slight height diff in Firefox:\n // https://ant.design/components/auto-complete-cn/#components-auto-complete-demo-certain-category\n [`${componentCls}-lg`]: {\n lineHeight: token.lineHeightLG - 0.0002\n },\n [`> ${componentCls}-group`]: {\n [`> ${componentCls}-group-addon:last-child`]: {\n insetInlineStart: -1,\n padding: 0,\n border: 0,\n [`${searchPrefixCls}-button`]: {\n paddingTop: 0,\n paddingBottom: 0,\n borderStartStartRadius: 0,\n borderStartEndRadius: token.borderRadius,\n borderEndEndRadius: token.borderRadius,\n borderEndStartRadius: 0\n },\n [`${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n color: token.colorTextDescription,\n '&:hover': {\n color: token.colorPrimaryHover\n },\n '&:active': {\n color: token.colorPrimaryActive\n },\n [`&${antCls}-btn-loading::before`]: {\n insetInlineStart: 0,\n insetInlineEnd: 0,\n insetBlockStart: 0,\n insetBlockEnd: 0\n }\n }\n }\n },\n [`${searchPrefixCls}-button`]: {\n height: token.controlHeight,\n '&:hover, &:focus': {\n zIndex: 1\n }\n },\n [`&-large ${searchPrefixCls}-button`]: {\n height: token.controlHeightLG\n },\n [`&-small ${searchPrefixCls}-button`]: {\n height: token.controlHeightSM\n },\n '&-rtl': {\n direction: 'rtl'\n },\n // ===================== Compact Item Customized Styles =====================\n [`&${componentCls}-compact-item`]: {\n [`&:not(${componentCls}-compact-last-item)`]: {\n [`${componentCls}-group-addon`]: {\n [`${componentCls}-search-button`]: {\n marginInlineEnd: -token.lineWidth,\n borderRadius: 0\n }\n }\n },\n [`&:not(${componentCls}-compact-first-item)`]: {\n [`${componentCls},${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n }\n },\n [`> ${componentCls}-group-addon ${componentCls}-search-button,\n > ${componentCls},\n ${componentCls}-affix-wrapper`]: {\n '&:hover,&:focus,&:active': {\n zIndex: 2\n }\n },\n [`> ${componentCls}-affix-wrapper-focused`]: {\n zIndex: 2\n }\n }\n }\n };\n};\nexport function initInputToken(token) {\n // @ts-ignore\n return mergeToken(token, {\n inputAffixPadding: token.paddingXXS,\n inputPaddingVertical: Math.max(Math.round((token.controlHeight - token.fontSize * token.lineHeight) / 2 * 10) / 10 - token.lineWidth, 3),\n inputPaddingVerticalLG: Math.ceil((token.controlHeightLG - token.fontSizeLG * token.lineHeightLG) / 2 * 10) / 10 - token.lineWidth,\n inputPaddingVerticalSM: Math.max(Math.round((token.controlHeightSM - token.fontSize * token.lineHeight) / 2 * 10) / 10 - token.lineWidth, 0),\n inputPaddingHorizontal: token.paddingSM - token.lineWidth,\n inputPaddingHorizontalSM: token.paddingXS - token.lineWidth,\n inputPaddingHorizontalLG: token.controlPaddingHorizontal - token.lineWidth,\n inputBorderHoverColor: token.colorPrimaryHover,\n inputBorderActiveColor: token.colorPrimaryHover\n });\n}\nconst genTextAreaStyle = token => {\n const {\n componentCls,\n paddingLG\n } = token;\n const textareaPrefixCls = `${componentCls}-textarea`;\n return {\n [textareaPrefixCls]: {\n position: 'relative',\n '&-show-count': {\n // https://github.com/ant-design/ant-design/issues/33049\n [`> ${componentCls}`]: {\n height: '100%'\n },\n [`${componentCls}-data-count`]: {\n position: 'absolute',\n bottom: -token.fontSize * token.lineHeight,\n insetInlineEnd: 0,\n color: token.colorTextDescription,\n whiteSpace: 'nowrap',\n pointerEvents: 'none'\n }\n },\n '&-allow-clear': {\n [`> ${componentCls}`]: {\n paddingInlineEnd: paddingLG\n }\n },\n [`&-affix-wrapper${textareaPrefixCls}-has-feedback`]: {\n [`${componentCls}`]: {\n paddingInlineEnd: paddingLG\n }\n },\n [`&-affix-wrapper${componentCls}-affix-wrapper`]: {\n padding: 0,\n [`> textarea${componentCls}`]: {\n fontSize: 'inherit',\n border: 'none',\n outline: 'none',\n '&:focus': {\n boxShadow: 'none !important'\n }\n },\n [`${componentCls}-suffix`]: {\n margin: 0,\n '> *:not(:last-child)': {\n marginInline: 0\n },\n // Clear Icon\n [`${componentCls}-clear-icon`]: {\n position: 'absolute',\n insetInlineEnd: token.paddingXS,\n insetBlockStart: token.paddingXS\n },\n // Feedback Icon\n [`${textareaPrefixCls}-suffix`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: token.inputPaddingHorizontal,\n bottom: 0,\n zIndex: 1,\n display: 'inline-flex',\n alignItems: 'center',\n margin: 'auto',\n pointerEvents: 'none'\n }\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Input', token => {\n const inputToken = initInputToken(token);\n return [genInputStyle(inputToken), genTextAreaStyle(inputToken), genAffixStyle(inputToken), genGroupStyle(inputToken), genSearchInputStyle(inputToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(inputToken)];\n});","// 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 _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\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, _extends({}, props, {\n ref: ref,\n icon: BarsOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n BarsOutlined.displayName = 'BarsOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(BarsOutlined);","const isNumeric = value => !isNaN(parseFloat(value)) && isFinite(value);\nexport default isNumeric;","var __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 isNumeric from '../_util/isNumeric';\nimport { ConfigContext } from '../config-provider';\nimport { LayoutContext } from './layout';\nconst 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 const SiderContext = /*#__PURE__*/React.createContext({});\nconst generateId = (() => {\n let i = 0;\n return function () {\n let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n i += 1;\n return `${prefix}${i}`;\n };\n})();\nconst Sider = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n trigger,\n children,\n defaultCollapsed = false,\n theme = 'dark',\n style = {},\n collapsible = false,\n reverseArrow = false,\n width = 200,\n collapsedWidth = 80,\n zeroWidthTriggerStyle,\n breakpoint,\n onCollapse,\n onBreakpoint\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"className\", \"trigger\", \"children\", \"defaultCollapsed\", \"theme\", \"style\", \"collapsible\", \"reverseArrow\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\", \"breakpoint\", \"onCollapse\", \"onBreakpoint\"]);\n const {\n siderHook\n } = useContext(LayoutContext);\n const [collapsed, setCollapsed] = useState('collapsed' in props ? props.collapsed : defaultCollapsed);\n const [below, setBelow] = useState(false);\n useEffect(() => {\n if ('collapsed' in props) {\n setCollapsed(props.collapsed);\n }\n }, [props.collapsed]);\n const 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 const responsiveHandlerRef = useRef();\n responsiveHandlerRef.current = 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(() => {\n function responsiveHandler(mql) {\n return responsiveHandlerRef.current(mql);\n }\n let mql;\n if (typeof window !== 'undefined') {\n const {\n matchMedia\n } = window;\n if (matchMedia && breakpoint && breakpoint in dimensionMaxMap) {\n mql = matchMedia(`(max-width: ${dimensionMaxMap[breakpoint]})`);\n try {\n mql.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql.addListener(responsiveHandler);\n }\n responsiveHandler(mql);\n }\n }\n return () => {\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(() => {\n const uniqueId = generateId('ant-sider-');\n siderHook.addSider(uniqueId);\n return () => siderHook.removeSider(uniqueId);\n }, []);\n const toggle = () => {\n handleSetCollapsed(!collapsed, 'clickTrigger');\n };\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const renderSider = () => {\n const prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n const divProps = omit(otherProps, ['collapsed']);\n const rawWidth = collapsed ? collapsedWidth : width;\n // use \"px\" as fallback unit for width\n const siderWidth = isNumeric(rawWidth) ? `${rawWidth}px` : String(rawWidth);\n // special trigger when collapsedWidth == 0\n const zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: toggle,\n className: classNames(`${prefixCls}-zero-width-trigger`, `${prefixCls}-zero-width-trigger-${reverseArrow ? 'right' : 'left'}`),\n style: zeroWidthTriggerStyle\n }, trigger || /*#__PURE__*/React.createElement(BarsOutlined, null)) : null;\n const 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 const status = collapsed ? 'collapsed' : 'expanded';\n const defaultTrigger = iconObj[status];\n const triggerDom = trigger !== null ? zeroWidthTrigger || /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-trigger`,\n onClick: toggle,\n style: {\n width: siderWidth\n }\n }, trigger || defaultTrigger) : null;\n const divStyle = Object.assign(Object.assign({}, style), {\n flex: `0 0 ${siderWidth}`,\n maxWidth: siderWidth,\n minWidth: siderWidth,\n width: siderWidth\n });\n const siderCls = classNames(prefixCls, `${prefixCls}-${theme}`, {\n [`${prefixCls}-collapsed`]: !!collapsed,\n [`${prefixCls}-has-trigger`]: collapsible && trigger !== null && !zeroWidthTrigger,\n [`${prefixCls}-below`]: !!below,\n [`${prefixCls}-zero-width`]: parseFloat(siderWidth) === 0\n }, className);\n return /*#__PURE__*/React.createElement(\"aside\", Object.assign({\n className: siderCls\n }, divProps, {\n style: divStyle,\n ref: ref\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-children`\n }, children), collapsible || below && zeroWidthTrigger ? triggerDom : null);\n };\n const contextValue = React.useMemo(() => ({\n siderCollapsed: collapsed\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;","const genLayoutLightStyle = token => {\n const {\n componentCls,\n colorBgContainer,\n colorBgBody,\n colorText\n } = token;\n return {\n [`${componentCls}-sider-light`]: {\n background: colorBgContainer,\n [`${componentCls}-sider-trigger`]: {\n color: colorText,\n background: colorBgContainer\n },\n [`${componentCls}-sider-zero-width-trigger`]: {\n color: colorText,\n background: colorBgContainer,\n border: `1px solid ${colorBgBody}`,\n borderInlineStart: 0\n }\n }\n };\n};\nexport default genLayoutLightStyle;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genLayoutLightStyle from './light';\nconst genLayoutStyle = token => {\n const {\n antCls,\n // .ant\n componentCls,\n // .ant-layout\n colorText,\n colorTextLightSolid,\n colorBgHeader,\n colorBgBody,\n colorBgTrigger,\n layoutHeaderHeight,\n layoutHeaderPaddingInline,\n layoutHeaderColor,\n layoutFooterPadding,\n layoutTriggerHeight,\n layoutZeroTriggerSize,\n motionDurationMid,\n motionDurationSlow,\n fontSize,\n borderRadius\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({\n display: 'flex',\n flex: 'auto',\n flexDirection: 'column',\n /* fix firefox can't set height smaller than content on flex item */\n minHeight: 0,\n background: colorBgBody,\n '&, *': {\n boxSizing: 'border-box'\n },\n [`&${componentCls}-has-sider`]: {\n flexDirection: 'row',\n [`> ${componentCls}, > ${componentCls}-content`]: {\n // https://segmentfault.com/a/1190000019498300\n width: 0\n }\n },\n [`${componentCls}-header, &${componentCls}-footer`]: {\n flex: '0 0 auto'\n },\n [`${componentCls}-sider`]: {\n position: 'relative',\n // fix firefox can't set width smaller than content on flex item\n minWidth: 0,\n background: colorBgHeader,\n transition: `all ${motionDurationMid}, background 0s`,\n '&-children': {\n height: '100%',\n // Hack for fixing margin collapse bug\n // https://github.com/ant-design/ant-design/issues/7967\n // solution from https://stackoverflow.com/a/33132624/3040605\n marginTop: -0.1,\n paddingTop: 0.1,\n [`${antCls}-menu${antCls}-menu-inline-collapsed`]: {\n width: 'auto'\n }\n },\n '&-has-trigger': {\n paddingBottom: layoutTriggerHeight\n },\n '&-right': {\n order: 1\n },\n '&-trigger': {\n position: 'fixed',\n bottom: 0,\n zIndex: 1,\n height: layoutTriggerHeight,\n color: colorTextLightSolid,\n lineHeight: `${layoutTriggerHeight}px`,\n textAlign: 'center',\n background: colorBgTrigger,\n cursor: 'pointer',\n transition: `all ${motionDurationMid}`\n },\n '&-zero-width': {\n '> *': {\n overflow: 'hidden'\n },\n '&-trigger': {\n position: 'absolute',\n top: layoutHeaderHeight,\n insetInlineEnd: -layoutZeroTriggerSize,\n zIndex: 1,\n width: layoutZeroTriggerSize,\n height: layoutZeroTriggerSize,\n color: colorTextLightSolid,\n fontSize: token.fontSizeXL,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: colorBgHeader,\n borderStartStartRadius: 0,\n borderStartEndRadius: borderRadius,\n borderEndEndRadius: borderRadius,\n borderEndStartRadius: 0,\n cursor: 'pointer',\n transition: `background ${motionDurationSlow} ease`,\n '&::after': {\n position: 'absolute',\n inset: 0,\n background: 'transparent',\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n },\n '&:hover::after': {\n // FIXME: Hardcode, but seems no need to create a token for this\n background: `rgba(255, 255, 255, 0.2)`\n },\n '&-right': {\n insetInlineStart: -layoutZeroTriggerSize,\n borderStartStartRadius: borderRadius,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n borderEndStartRadius: borderRadius\n }\n }\n }\n }\n }, genLayoutLightStyle(token)), {\n // RTL\n '&-rtl': {\n direction: 'rtl'\n }\n }),\n // ==================== Header ====================\n [`${componentCls}-header`]: {\n height: layoutHeaderHeight,\n paddingInline: layoutHeaderPaddingInline,\n color: layoutHeaderColor,\n lineHeight: `${layoutHeaderHeight}px`,\n background: colorBgHeader,\n // Other components/menu/style/index.less line:686\n // Integration with header element so menu items have the same height\n [`${antCls}-menu`]: {\n lineHeight: 'inherit'\n }\n },\n // ==================== Footer ====================\n [`${componentCls}-footer`]: {\n padding: layoutFooterPadding,\n color: colorText,\n fontSize,\n background: colorBgBody\n },\n // =================== Content ====================\n [`${componentCls}-content`]: {\n flex: 'auto',\n // fix firefox can't set height smaller than content on flex item\n minHeight: 0\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Layout', token => {\n const {\n colorText,\n controlHeightSM,\n controlHeight,\n controlHeightLG,\n marginXXS\n } = token;\n const layoutHeaderPaddingInline = controlHeightLG * 1.25;\n const layoutToken = mergeToken(token, {\n // Layout\n layoutHeaderHeight: controlHeight * 2,\n layoutHeaderPaddingInline,\n layoutHeaderColor: colorText,\n layoutFooterPadding: `${controlHeightSM}px ${layoutHeaderPaddingInline}px`,\n layoutTriggerHeight: controlHeightLG + marginXXS * 2,\n layoutZeroTriggerSize: controlHeightLG\n });\n return [genLayoutStyle(layoutToken)];\n}, token => {\n const {\n colorBgLayout\n } = token;\n return {\n colorBgHeader: '#001529',\n colorBgBody: colorBgLayout,\n colorBgTrigger: '#002140'\n };\n});","import _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 omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nexport const LayoutContext = /*#__PURE__*/React.createContext({\n siderHook: {\n addSider: () => null,\n removeSider: () => null\n }\n});\nfunction generator(_ref) {\n let {\n suffixCls,\n tagName,\n displayName\n } = _ref;\n return BasicComponent => {\n const Adapter = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(BasicComponent, Object.assign({\n ref: ref,\n suffixCls: suffixCls,\n tagName: tagName\n }, props)));\n if (process.env.NODE_ENV !== 'production') {\n Adapter.displayName = displayName;\n }\n return Adapter;\n };\n}\nconst Basic = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n suffixCls,\n className,\n tagName: TagName\n } = props,\n others = __rest(props, [\"prefixCls\", \"suffixCls\", \"className\", \"tagName\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('layout', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const prefixWithSuffixCls = suffixCls ? `${prefixCls}-${suffixCls}` : prefixCls;\n return wrapSSR( /*#__PURE__*/React.createElement(TagName, Object.assign({\n className: classNames(customizePrefixCls || prefixWithSuffixCls, className, hashId),\n ref: ref\n }, others)));\n});\nconst BasicLayout = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n direction\n } = React.useContext(ConfigContext);\n const [siders, setSiders] = React.useState([]);\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n children,\n hasSider,\n tagName: Tag,\n style\n } = props,\n others = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"children\", \"hasSider\", \"tagName\", \"style\"]);\n const passedProps = omit(others, ['suffixCls']);\n const {\n getPrefixCls,\n layout\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('layout', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const classString = classNames(prefixCls, {\n [`${prefixCls}-has-sider`]: typeof hasSider === 'boolean' ? hasSider : siders.length > 0,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, layout === null || layout === void 0 ? void 0 : layout.className, className, rootClassName, hashId);\n const contextValue = React.useMemo(() => ({\n siderHook: {\n addSider: id => {\n setSiders(prev => [].concat(_toConsumableArray(prev), [id]));\n },\n removeSider: id => {\n setSiders(prev => prev.filter(currentId => currentId !== id));\n }\n }\n }), []);\n return wrapSSR( /*#__PURE__*/React.createElement(LayoutContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Tag, Object.assign({\n ref: ref,\n className: classString,\n style: Object.assign(Object.assign({}, layout === null || layout === void 0 ? void 0 : layout.style), style)\n }, passedProps), children)));\n});\nconst Layout = generator({\n tagName: 'div',\n displayName: 'Layout'\n})(BasicLayout);\nconst Header = generator({\n suffixCls: 'header',\n tagName: 'header',\n displayName: 'Header'\n})(Basic);\nconst Footer = generator({\n suffixCls: 'footer',\n tagName: 'footer',\n displayName: 'Footer'\n})(Basic);\nconst Content = generator({\n suffixCls: 'content',\n tagName: 'main',\n displayName: 'Content'\n})(Basic);\nexport { Content, Footer, Header };\nexport default Layout;","import React from 'react';\nexport const ListContext = /*#__PURE__*/React.createContext({});\nexport const ListConsumer = ListContext.Consumer;","var __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 React, { Children, forwardRef, useContext } from 'react';\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport { Col } from '../grid';\nimport { ListContext } from './context';\nexport const Meta = _a => {\n var {\n prefixCls: customizePrefixCls,\n className,\n avatar,\n title,\n description\n } = _a,\n others = __rest(_a, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('list', customizePrefixCls);\n const classString = classNames(`${prefixCls}-item-meta`, className);\n const content = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-item-meta-content`\n }, title && /*#__PURE__*/React.createElement(\"h4\", {\n className: `${prefixCls}-item-meta-title`\n }, title), description && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-item-meta-description`\n }, description));\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classString\n }), avatar && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-item-meta-avatar`\n }, avatar), (title || description) && content);\n};\nconst InternalItem = (_a, ref) => {\n var {\n prefixCls: customizePrefixCls,\n children,\n actions,\n extra,\n className,\n colStyle\n } = _a,\n others = __rest(_a, [\"prefixCls\", \"children\", \"actions\", \"extra\", \"className\", \"colStyle\"]);\n const {\n grid,\n itemLayout\n } = useContext(ListContext);\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const isItemContainsTextNodeAndNotSingular = () => {\n let result;\n Children.forEach(children, element => {\n if (typeof element === 'string') {\n result = true;\n }\n });\n return result && Children.count(children) > 1;\n };\n const isFlexMode = () => {\n if (itemLayout === 'vertical') {\n return !!extra;\n }\n return !isItemContainsTextNodeAndNotSingular();\n };\n const prefixCls = getPrefixCls('list', customizePrefixCls);\n const actionsContent = actions && actions.length > 0 && /*#__PURE__*/React.createElement(\"ul\", {\n className: `${prefixCls}-item-action`,\n key: \"actions\"\n }, actions.map((action, i) =>\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: `${prefixCls}-item-action-${i}`\n }, action, i !== actions.length - 1 && /*#__PURE__*/React.createElement(\"em\", {\n className: `${prefixCls}-item-action-split`\n }))));\n const Element = grid ? 'div' : 'li';\n const itemChildren = /*#__PURE__*/React.createElement(Element, Object.assign({}, others, !grid ? {\n ref\n } : {}, {\n className: classNames(`${prefixCls}-item`, {\n [`${prefixCls}-item-no-flex`]: !isFlexMode()\n }, className)\n }), itemLayout === 'vertical' && extra ? [/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-item-main`,\n key: \"content\"\n }, children, actionsContent), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-item-extra`,\n key: \"extra\"\n }, extra)] : [children, actionsContent, cloneElement(extra, {\n key: 'extra'\n })]);\n return grid ? /*#__PURE__*/React.createElement(Col, {\n ref: ref,\n flex: 1,\n style: colStyle\n }, itemChildren) : itemChildren;\n};\nconst Item = /*#__PURE__*/forwardRef(InternalItem);\nItem.Meta = Meta;\nexport default Item;","import { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genBorderedStyle = token => {\n const {\n listBorderedCls,\n componentCls,\n paddingLG,\n margin,\n itemPaddingSM,\n itemPaddingLG,\n marginLG,\n borderRadiusLG\n } = token;\n return {\n [`${listBorderedCls}`]: {\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: borderRadiusLG,\n [`${componentCls}-header,${componentCls}-footer,${componentCls}-item`]: {\n paddingInline: paddingLG\n },\n [`${componentCls}-pagination`]: {\n margin: `${margin}px ${marginLG}px`\n }\n },\n [`${listBorderedCls}${componentCls}-sm`]: {\n [`${componentCls}-item,${componentCls}-header,${componentCls}-footer`]: {\n padding: itemPaddingSM\n }\n },\n [`${listBorderedCls}${componentCls}-lg`]: {\n [`${componentCls}-item,${componentCls}-header,${componentCls}-footer`]: {\n padding: itemPaddingLG\n }\n }\n };\n};\nconst genResponsiveStyle = token => {\n const {\n componentCls,\n screenSM,\n screenMD,\n marginLG,\n marginSM,\n margin\n } = token;\n return {\n [`@media screen and (max-width:${screenMD})`]: {\n [`${componentCls}`]: {\n [`${componentCls}-item`]: {\n [`${componentCls}-item-action`]: {\n marginInlineStart: marginLG\n }\n }\n },\n [`${componentCls}-vertical`]: {\n [`${componentCls}-item`]: {\n [`${componentCls}-item-extra`]: {\n marginInlineStart: marginLG\n }\n }\n }\n },\n [`@media screen and (max-width: ${screenSM})`]: {\n [`${componentCls}`]: {\n [`${componentCls}-item`]: {\n flexWrap: 'wrap',\n [`${componentCls}-action`]: {\n marginInlineStart: marginSM\n }\n }\n },\n [`${componentCls}-vertical`]: {\n [`${componentCls}-item`]: {\n flexWrap: 'wrap-reverse',\n [`${componentCls}-item-main`]: {\n minWidth: token.contentWidth\n },\n [`${componentCls}-item-extra`]: {\n margin: `auto auto ${margin}px`\n }\n }\n }\n }\n };\n};\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n antCls,\n controlHeight,\n minHeight,\n paddingSM,\n marginLG,\n padding,\n itemPadding,\n colorPrimary,\n itemPaddingSM,\n itemPaddingLG,\n paddingXS,\n margin,\n colorText,\n colorTextDescription,\n motionDurationSlow,\n lineWidth,\n headerBg,\n footerBg,\n emptyTextPadding,\n metaMarginBottom,\n avatarMarginRight,\n titleMarginBottom,\n descriptionFontSize\n } = token;\n const alignCls = {};\n ['start', 'center', 'end'].forEach(item => {\n alignCls[`&-align-${item}`] = {\n textAlign: item\n };\n });\n return {\n [`${componentCls}`]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n '*': {\n outline: 'none'\n },\n [`${componentCls}-header`]: {\n background: headerBg\n },\n [`${componentCls}-footer`]: {\n background: footerBg\n },\n [`${componentCls}-header, ${componentCls}-footer`]: {\n paddingBlock: paddingSM\n },\n [`${componentCls}-pagination`]: Object.assign(Object.assign({\n marginBlockStart: marginLG\n }, alignCls), {\n // https://github.com/ant-design/ant-design/issues/20037\n [`${antCls}-pagination-options`]: {\n textAlign: 'start'\n }\n }),\n [`${componentCls}-spin`]: {\n minHeight,\n textAlign: 'center'\n },\n [`${componentCls}-items`]: {\n margin: 0,\n padding: 0,\n listStyle: 'none'\n },\n [`${componentCls}-item`]: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: itemPadding,\n color: colorText,\n [`${componentCls}-item-meta`]: {\n display: 'flex',\n flex: 1,\n alignItems: 'flex-start',\n maxWidth: '100%',\n [`${componentCls}-item-meta-avatar`]: {\n marginInlineEnd: avatarMarginRight\n },\n [`${componentCls}-item-meta-content`]: {\n flex: '1 0',\n width: 0,\n color: colorText\n },\n [`${componentCls}-item-meta-title`]: {\n margin: `0 0 ${token.marginXXS}px 0`,\n color: colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n '> a': {\n color: colorText,\n transition: `all ${motionDurationSlow}`,\n [`&:hover`]: {\n color: colorPrimary\n }\n }\n },\n [`${componentCls}-item-meta-description`]: {\n color: colorTextDescription,\n fontSize: descriptionFontSize,\n lineHeight: token.lineHeight\n }\n },\n [`${componentCls}-item-action`]: {\n flex: '0 0 auto',\n marginInlineStart: token.marginXXL,\n padding: 0,\n fontSize: 0,\n listStyle: 'none',\n [`& > li`]: {\n position: 'relative',\n display: 'inline-block',\n padding: `0 ${paddingXS}px`,\n color: colorTextDescription,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n textAlign: 'center',\n [`&:first-child`]: {\n paddingInlineStart: 0\n }\n },\n [`${componentCls}-item-action-split`]: {\n position: 'absolute',\n insetBlockStart: '50%',\n insetInlineEnd: 0,\n width: lineWidth,\n height: Math.ceil(token.fontSize * token.lineHeight) - token.marginXXS * 2,\n transform: 'translateY(-50%)',\n backgroundColor: token.colorSplit\n }\n }\n },\n [`${componentCls}-empty`]: {\n padding: `${padding}px 0`,\n color: colorTextDescription,\n fontSize: token.fontSizeSM,\n textAlign: 'center'\n },\n [`${componentCls}-empty-text`]: {\n padding: emptyTextPadding,\n color: token.colorTextDisabled,\n fontSize: token.fontSize,\n textAlign: 'center'\n },\n // ============================ without flex ============================\n [`${componentCls}-item-no-flex`]: {\n display: 'block'\n }\n }),\n [`${componentCls}-grid ${antCls}-col > ${componentCls}-item`]: {\n display: 'block',\n maxWidth: '100%',\n marginBlockEnd: margin,\n paddingBlock: 0,\n borderBlockEnd: 'none'\n },\n [`${componentCls}-vertical ${componentCls}-item`]: {\n alignItems: 'initial',\n [`${componentCls}-item-main`]: {\n display: 'block',\n flex: 1\n },\n [`${componentCls}-item-extra`]: {\n marginInlineStart: marginLG\n },\n [`${componentCls}-item-meta`]: {\n marginBlockEnd: metaMarginBottom,\n [`${componentCls}-item-meta-title`]: {\n marginBlockStart: 0,\n marginBlockEnd: titleMarginBottom,\n color: colorText,\n fontSize: token.fontSizeLG,\n lineHeight: token.lineHeightLG\n }\n },\n [`${componentCls}-item-action`]: {\n marginBlockStart: padding,\n marginInlineStart: 'auto',\n '> li': {\n padding: `0 ${padding}px`,\n [`&:first-child`]: {\n paddingInlineStart: 0\n }\n }\n }\n },\n [`${componentCls}-split ${componentCls}-item`]: {\n borderBlockEnd: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n [`&:last-child`]: {\n borderBlockEnd: 'none'\n }\n },\n [`${componentCls}-split ${componentCls}-header`]: {\n borderBlockEnd: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`\n },\n [`${componentCls}-split${componentCls}-empty ${componentCls}-footer`]: {\n borderTop: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`\n },\n [`${componentCls}-loading ${componentCls}-spin-nested-loading`]: {\n minHeight: controlHeight\n },\n [`${componentCls}-split${componentCls}-something-after-last-item ${antCls}-spin-container > ${componentCls}-items > ${componentCls}-item:last-child`]: {\n borderBlockEnd: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`\n },\n [`${componentCls}-lg ${componentCls}-item`]: {\n padding: itemPaddingLG\n },\n [`${componentCls}-sm ${componentCls}-item`]: {\n padding: itemPaddingSM\n },\n // Horizontal\n [`${componentCls}:not(${componentCls}-vertical)`]: {\n [`${componentCls}-item-no-flex`]: {\n [`${componentCls}-item-action`]: {\n float: 'right'\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('List', token => {\n const listToken = mergeToken(token, {\n listBorderedCls: `${token.componentCls}-bordered`,\n minHeight: token.controlHeightLG\n });\n return [genBaseStyle(listToken), genBorderedStyle(listToken), genResponsiveStyle(listToken)];\n}, token => ({\n contentWidth: 220,\n itemPadding: `${token.paddingContentVertical}px 0`,\n itemPaddingSM: `${token.paddingContentVerticalSM}px ${token.paddingContentHorizontal}px`,\n itemPaddingLG: `${token.paddingContentVerticalLG}px ${token.paddingContentHorizontalLG}px`,\n headerBg: 'transparent',\n footerBg: 'transparent',\n emptyTextPadding: token.padding,\n metaMarginBottom: token.padding,\n avatarMarginRight: token.padding,\n titleMarginBottom: token.paddingSM,\n descriptionFontSize: token.fontSize\n}));","'use client';\n\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';\n// eslint-disable-next-line import/no-named-as-default\nimport * as React from 'react';\nimport extendsObject from '../_util/extendsObject';\nimport { responsiveArray } from '../_util/responsiveObserver';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport { Row } from '../grid';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport Pagination from '../pagination';\nimport Spin from '../spin';\nimport Item from './Item';\n// CSSINJS\nimport { ListContext } from './context';\nimport useStyle from './style';\nfunction List(_a) {\n var _b;\n var {\n pagination = false,\n prefixCls: customizePrefixCls,\n bordered = false,\n split = true,\n className,\n rootClassName,\n style,\n children,\n itemLayout,\n loadMore,\n grid,\n dataSource = [],\n size,\n header,\n footer,\n loading = false,\n rowKey,\n renderItem,\n locale\n } = _a,\n rest = __rest(_a, [\"pagination\", \"prefixCls\", \"bordered\", \"split\", \"className\", \"rootClassName\", \"style\", \"children\", \"itemLayout\", \"loadMore\", \"grid\", \"dataSource\", \"size\", \"header\", \"footer\", \"loading\", \"rowKey\", \"renderItem\", \"locale\"]);\n const paginationObj = pagination && typeof pagination === 'object' ? pagination : {};\n const [paginationCurrent, setPaginationCurrent] = React.useState(paginationObj.defaultCurrent || 1);\n const [paginationSize, setPaginationSize] = React.useState(paginationObj.defaultPageSize || 10);\n const {\n getPrefixCls,\n renderEmpty,\n direction,\n list\n } = React.useContext(ConfigContext);\n const defaultPaginationProps = {\n current: 1,\n total: 0\n };\n const triggerPaginationEvent = eventName => (page, pageSize) => {\n var _a;\n setPaginationCurrent(page);\n setPaginationSize(pageSize);\n if (pagination && pagination[eventName]) {\n (_a = pagination === null || pagination === void 0 ? void 0 : pagination[eventName]) === null || _a === void 0 ? void 0 : _a.call(pagination, page, pageSize);\n }\n };\n const onPaginationChange = triggerPaginationEvent('onChange');\n const onPaginationShowSizeChange = triggerPaginationEvent('onShowSizeChange');\n const renderInnerItem = (item, index) => {\n if (!renderItem) return null;\n let key;\n if (typeof rowKey === 'function') {\n key = rowKey(item);\n } else if (rowKey) {\n key = item[rowKey];\n } else {\n key = item.key;\n }\n if (!key) {\n key = `list-item-${index}`;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, renderItem(item, index));\n };\n const isSomethingAfterLastItem = () => !!(loadMore || pagination || footer);\n const prefixCls = getPrefixCls('list', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n let loadingProp = loading;\n if (typeof loadingProp === 'boolean') {\n loadingProp = {\n spinning: loadingProp\n };\n }\n const isLoading = loadingProp && loadingProp.spinning;\n // large => lg\n // small => sm\n let sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n default:\n break;\n }\n const classString = classNames(prefixCls, {\n [`${prefixCls}-vertical`]: itemLayout === 'vertical',\n [`${prefixCls}-${sizeCls}`]: sizeCls,\n [`${prefixCls}-split`]: split,\n [`${prefixCls}-bordered`]: bordered,\n [`${prefixCls}-loading`]: isLoading,\n [`${prefixCls}-grid`]: !!grid,\n [`${prefixCls}-something-after-last-item`]: isSomethingAfterLastItem(),\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, list === null || list === void 0 ? void 0 : list.className, className, rootClassName, hashId);\n const paginationProps = extendsObject(defaultPaginationProps, {\n total: dataSource.length,\n current: paginationCurrent,\n pageSize: paginationSize\n }, pagination || {});\n const largestPage = Math.ceil(paginationProps.total / paginationProps.pageSize);\n if (paginationProps.current > largestPage) {\n paginationProps.current = largestPage;\n }\n const paginationContent = pagination ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-pagination`, `${prefixCls}-pagination-align-${(_b = paginationProps === null || paginationProps === void 0 ? void 0 : paginationProps.align) !== null && _b !== void 0 ? _b : 'end'}`)\n }, /*#__PURE__*/React.createElement(Pagination, Object.assign({}, paginationProps, {\n onChange: onPaginationChange,\n onShowSizeChange: onPaginationShowSizeChange\n }))) : null;\n let splitDataSource = _toConsumableArray(dataSource);\n if (pagination) {\n if (dataSource.length > (paginationProps.current - 1) * paginationProps.pageSize) {\n splitDataSource = _toConsumableArray(dataSource).splice((paginationProps.current - 1) * paginationProps.pageSize, paginationProps.pageSize);\n }\n }\n const needResponsive = Object.keys(grid || {}).some(key => ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].includes(key));\n const screens = useBreakpoint(needResponsive);\n const currentBreakpoint = React.useMemo(() => {\n for (let i = 0; i < responsiveArray.length; i += 1) {\n const breakpoint = responsiveArray[i];\n if (screens[breakpoint]) {\n return breakpoint;\n }\n }\n return undefined;\n }, [screens]);\n const colStyle = React.useMemo(() => {\n if (!grid) {\n return undefined;\n }\n const columnCount = currentBreakpoint && grid[currentBreakpoint] ? grid[currentBreakpoint] : grid.column;\n if (columnCount) {\n return {\n width: `${100 / columnCount}%`,\n maxWidth: `${100 / columnCount}%`\n };\n }\n }, [grid === null || grid === void 0 ? void 0 : grid.column, currentBreakpoint]);\n let childrenContent = isLoading && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n minHeight: 53\n }\n });\n if (splitDataSource.length > 0) {\n const items = splitDataSource.map((item, index) => renderInnerItem(item, index));\n childrenContent = grid ? /*#__PURE__*/React.createElement(Row, {\n gutter: grid.gutter\n }, React.Children.map(items, child => /*#__PURE__*/React.createElement(\"div\", {\n key: child === null || child === void 0 ? void 0 : child.key,\n style: colStyle\n }, child))) : /*#__PURE__*/React.createElement(\"ul\", {\n className: `${prefixCls}-items`\n }, items);\n } else if (!children && !isLoading) {\n childrenContent = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-empty-text`\n }, locale && locale.emptyText || (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('List')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"List\"\n }));\n }\n const paginationPosition = paginationProps.position || 'bottom';\n const contextValue = React.useMemo(() => ({\n grid,\n itemLayout\n }), [JSON.stringify(grid), itemLayout]);\n return wrapSSR( /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n style: Object.assign(Object.assign({}, list === null || list === void 0 ? void 0 : list.style), style),\n className: classString\n }, rest), (paginationPosition === 'top' || paginationPosition === 'both') && paginationContent, header && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, header), /*#__PURE__*/React.createElement(Spin, Object.assign({}, loadingProp), childrenContent, children), footer && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-footer`\n }, footer), loadMore || (paginationPosition === 'bottom' || paginationPosition === 'both') && paginationContent)));\n}\nif (process.env.NODE_ENV !== 'production') {\n List.displayName = 'List';\n}\nList.Item = Item;\nexport default List;","import { createContext } from 'react';\nconst LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nconst typeTemplate = '${label} is not a valid ${type}';\nconst localeValues = {\n locale: 'en',\n Pagination,\n DatePicker,\n TimePicker,\n Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Tour: {\n Next: 'Next',\n Previous: 'Previous',\n Finish: 'Finish'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n default: 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n enum: '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n },\n QRCode: {\n expired: 'QR code expired',\n refresh: 'Refresh'\n },\n ColorPicker: {\n presetEmpty: 'Empty'\n }\n};\nexport default localeValues;","import * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './en_US';\nconst useLocale = (componentName, defaultLocale) => {\n const fullLocale = React.useContext(LocaleContext);\n const getLocale = React.useMemo(() => {\n var _a;\n const locale = defaultLocale || defaultLocaleData[componentName];\n const localeFromContext = (_a = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return Object.assign(Object.assign({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, fullLocale]);\n const getLocaleCode = React.useMemo(() => {\n const localeCode = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if ((fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.exist) && !localeCode) {\n return defaultLocaleData.locale;\n }\n return localeCode;\n }, [fullLocale]);\n return [getLocale, getLocaleCode];\n};\nexport default useLocale;","var locale = {\n locale: 'zh_CN',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '确定',\n timeSelect: '选择时间',\n dateSelect: '选择日期',\n weekSelect: '选择周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上个月 (翻页上键)',\n nextMonth: '下个月 (翻页下键)',\n monthSelect: '选择月份',\n yearSelect: '选择年份',\n decadeSelect: '选择年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH时mm分ss秒',\n previousYear: '上一年 (Control键加左方向键)',\n nextYear: '下一年 (Control键加右方向键)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世纪',\n nextCentury: '下一世纪'\n};\nexport default locale;","const locale = {\n placeholder: '请选择时间',\n rangePlaceholder: ['开始时间', '结束时间']\n};\nexport default locale;","import CalendarLocale from \"rc-picker/es/locale/zh_CN\";\nimport TimePickerLocale from '../../time-picker/locale/zh_CN';\n// 统一合并为完整的 Locale\nconst locale = {\n lang: Object.assign({\n placeholder: '请选择日期',\n yearPlaceholder: '请选择年份',\n quarterPlaceholder: '请选择季度',\n monthPlaceholder: '请选择月份',\n weekPlaceholder: '请选择周',\n rangePlaceholder: ['开始日期', '结束日期'],\n rangeYearPlaceholder: ['开始年份', '结束年份'],\n rangeMonthPlaceholder: ['开始月份', '结束月份'],\n rangeQuarterPlaceholder: ['开始季度', '结束季度'],\n rangeWeekPlaceholder: ['开始周', '结束周']\n }, CalendarLocale),\n timePickerLocale: Object.assign({}, TimePickerLocale)\n};\n// should add whitespace between char in Button\nlocale.lang.ok = '确定';\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","import zhCN from '../../date-picker/locale/zh_CN';\nexport default zhCN;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/zh_CN\";\nimport Calendar from '../calendar/locale/zh_CN';\nimport DatePicker from '../date-picker/locale/zh_CN';\nimport TimePicker from '../time-picker/locale/zh_CN';\nconst typeTemplate = '${label}不是一个有效的${type}';\nconst localeValues = {\n locale: 'zh-cn',\n Pagination,\n DatePicker,\n TimePicker,\n Calendar,\n // locales for all components\n global: {\n placeholder: '请选择'\n },\n Table: {\n filterTitle: '筛选',\n filterConfirm: '确定',\n filterReset: '重置',\n filterEmptyText: '无筛选项',\n filterCheckall: '全选',\n filterSearchPlaceholder: '在筛选项中搜索',\n selectAll: '全选当页',\n selectInvert: '反选当页',\n selectNone: '清空所有',\n selectionAll: '全选所有',\n sortTitle: '排序',\n expand: '展开行',\n collapse: '关闭行',\n triggerDesc: '点击降序',\n triggerAsc: '点击升序',\n cancelSort: '取消排序'\n },\n Modal: {\n okText: '确定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Tour: {\n Next: '下一步',\n Previous: '上一步',\n Finish: '结束导览'\n },\n Popconfirm: {\n cancelText: '取消',\n okText: '确定'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: '请输入搜索内容',\n itemUnit: '项',\n itemsUnit: '项',\n remove: '删除',\n selectCurrent: '全选当页',\n removeCurrent: '删除当页',\n selectAll: '全选所有',\n removeAll: '删除全部',\n selectInvert: '反选当页'\n },\n Upload: {\n uploading: '文件上传中',\n removeFile: '删除文件',\n uploadError: '上传错误',\n previewFile: '预览文件',\n downloadFile: '下载文件'\n },\n Empty: {\n description: '暂无数据'\n },\n Icon: {\n icon: '图标'\n },\n Text: {\n edit: '编辑',\n copy: '复制',\n copied: '复制成功',\n expand: '展开'\n },\n PageHeader: {\n back: '返回'\n },\n Form: {\n optional: '(可选)',\n defaultValidateMessages: {\n default: '字段验证错误${label}',\n required: '请输入${label}',\n enum: '${label}必须是其中一个[${enum}]',\n whitespace: '${label}不能为空字符',\n date: {\n format: '${label}日期格式无效',\n parse: '${label}不能转换为日期',\n invalid: '${label}是一个无效日期'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label}须为${len}个字符',\n min: '${label}最少${min}个字符',\n max: '${label}最多${max}个字符',\n range: '${label}须在${min}-${max}字符之间'\n },\n number: {\n len: '${label}必须等于${len}',\n min: '${label}最小值为${min}',\n max: '${label}最大值为${max}',\n range: '${label}须在${min}-${max}之间'\n },\n array: {\n len: '须为${len}个${label}',\n min: '最少${min}个${label}',\n max: '最多${max}个${label}',\n range: '${label}数量须在${min}-${max}之间'\n },\n pattern: {\n mismatch: '${label}与模式不匹配${pattern}'\n }\n }\n },\n Image: {\n preview: '预览'\n },\n QRCode: {\n expired: '二维码过期',\n refresh: '点击刷新'\n },\n ColorPicker: {\n presetEmpty: '暂无'\n }\n};\nexport default localeValues;","var __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 { NoCompactStyle } from '../space/Compact';\nimport { supportNodeRef } from 'rc-util';\nconst OverrideContext = /*#__PURE__*/React.createContext(null);\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport const OverrideProvider = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n children\n } = props,\n restProps = __rest(props, [\"children\"]);\n const override = React.useContext(OverrideContext);\n const context = React.useMemo(() => Object.assign(Object.assign({}, override), restProps), [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 }, /*#__PURE__*/React.createElement(NoCompactStyle, null, supportNodeRef(children) ? /*#__PURE__*/React.cloneElement(children, {\n ref\n }) : children));\n});\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport default OverrideContext;","var __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';\nconst MenuDivider = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n dashed\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"dashed\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu', customizePrefixCls);\n const classString = classNames({\n [`${prefixCls}-item-divider-dashed`]: !!dashed\n }, className);\n return /*#__PURE__*/React.createElement(Divider, Object.assign({\n className: classString\n }, restProps));\n};\nexport default MenuDivider;","import { createContext } from 'react';\nconst MenuContext = /*#__PURE__*/createContext({\n prefixCls: '',\n firstLevel: true,\n inlineCollapsed: false\n});\nexport default MenuContext;","import classNames from 'classnames';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { SiderContext } from '../layout/Sider';\nimport Tooltip from '../tooltip';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nconst MenuItem = props => {\n var _a;\n const {\n className,\n children,\n icon,\n title,\n danger\n } = props;\n const {\n prefixCls,\n firstLevel,\n direction,\n disableMenuItemTitleTooltip,\n inlineCollapsed: isInlineCollapsed\n } = React.useContext(MenuContext);\n const renderItemChildren = inlineCollapsed => {\n const wrapNode = /*#__PURE__*/React.createElement(\"span\", {\n className: `${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: `${prefixCls}-inline-collapsed-noicon`\n }, children.charAt(0));\n }\n }\n return wrapNode;\n };\n const {\n siderCollapsed\n } = React.useContext(SiderContext);\n let tooltipTitle = title;\n if (typeof title === 'undefined') {\n tooltipTitle = firstLevel ? children : '';\n } else if (title === false) {\n tooltipTitle = '';\n }\n const tooltipProps = {\n title: tooltipTitle\n };\n if (!siderCollapsed && !isInlineCollapsed) {\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 const childrenLength = toArray(children).length;\n let returnNode = /*#__PURE__*/React.createElement(Item, Object.assign({}, omit(props, ['title', 'icon', 'danger']), {\n className: classNames({\n [`${prefixCls}-item-danger`]: danger,\n [`${prefixCls}-item-only-child`]: (icon ? childrenLength + 1 : childrenLength) === 1\n }, 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 : '', `${prefixCls}-item-icon`)\n }), renderItemChildren(isInlineCollapsed));\n if (!disableMenuItemTitleTooltip) {\n returnNode = /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps, {\n placement: direction === 'rtl' ? 'left' : 'right',\n overlayClassName: `${prefixCls}-inline-collapsed-tooltip`\n }), returnNode);\n }\n return returnNode;\n};\nexport default MenuItem;","import 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';\nconst SubMenu = props => {\n var _a;\n const {\n popupClassName,\n icon,\n title,\n theme: customTheme\n } = props;\n const context = React.useContext(MenuContext);\n const {\n prefixCls,\n inlineCollapsed,\n theme: contextTheme\n } = context;\n const parentPath = useFullPath();\n let titleNode;\n if (!icon) {\n titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inline-collapsed-noicon`\n }, title.charAt(0)) : /*#__PURE__*/React.createElement(\"span\", {\n className: `${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 const 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 : '', `${prefixCls}-item-icon`)\n }), titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-title-content`\n }, title));\n }\n const contextValue = React.useMemo(() => Object.assign(Object.assign({}, context), {\n firstLevel: false\n }), [context]);\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcSubMenu, Object.assign({}, omit(props, ['icon']), {\n title: titleNode,\n popupClassName: classNames(prefixCls, popupClassName, `${prefixCls}-${customTheme || contextTheme}`)\n })));\n};\nexport default SubMenu;","var __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((opt, index) => {\n if (opt && typeof opt === 'object') {\n const _a = opt,\n {\n label,\n children,\n key,\n type\n } = _a,\n restProps = __rest(_a, [\"label\", \"children\", \"key\", \"type\"]);\n const mergedKey = key !== null && key !== void 0 ? key : `tmp-${index}`;\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(ItemGroup, Object.assign({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, Object.assign({\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, Object.assign({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, Object.assign({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(opt => opt);\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(() => {\n if (!items) {\n return items;\n }\n return convertItemsToNodes(items);\n }, [items]);\n}","const getHorizontalStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n horizontalLineHeight,\n colorSplit,\n lineWidth,\n lineType,\n itemPaddingInline\n } = token;\n return {\n [`${componentCls}-horizontal`]: {\n lineHeight: horizontalLineHeight,\n border: 0,\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`,\n boxShadow: 'none',\n '&::after': {\n display: 'block',\n clear: 'both',\n height: 0,\n content: '\"\\\\20\"'\n },\n // ======================= Item =======================\n [`${componentCls}-item, ${componentCls}-submenu`]: {\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'bottom',\n paddingInline: itemPaddingInline\n },\n [`> ${componentCls}-item:hover,\n > ${componentCls}-item-active,\n > ${componentCls}-submenu ${componentCls}-submenu-title:hover`]: {\n backgroundColor: 'transparent'\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`].join(',')\n },\n // ===================== Sub Menu =====================\n [`${componentCls}-submenu-arrow`]: {\n display: 'none'\n }\n }\n };\n};\nexport default getHorizontalStyle;","const getRTLStyle = _ref => {\n let {\n componentCls,\n menuArrowOffset\n } = _ref;\n return {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-submenu-rtl`]: {\n transformOrigin: '100% 0'\n },\n // Vertical Arrow\n [`${componentCls}-rtl${componentCls}-vertical,\n ${componentCls}-submenu-rtl ${componentCls}-vertical`]: {\n [`${componentCls}-submenu-arrow`]: {\n '&::before': {\n transform: `rotate(-45deg) translateY(-${menuArrowOffset})`\n },\n '&::after': {\n transform: `rotate(45deg) translateY(${menuArrowOffset})`\n }\n }\n }\n };\n};\nexport default getRTLStyle;","import { genFocusOutline } from '../../style';\nconst accessibilityFocus = token => Object.assign({}, genFocusOutline(token));\nconst getThemeStyle = (token, themeSuffix) => {\n const {\n componentCls,\n itemColor,\n itemSelectedColor,\n groupTitleColor,\n itemBg,\n subMenuItemBg,\n itemSelectedBg,\n activeBarHeight,\n activeBarWidth,\n activeBarBorderWidth,\n motionDurationSlow,\n motionEaseInOut,\n motionEaseOut,\n itemPaddingInline,\n motionDurationMid,\n itemHoverColor,\n lineType,\n colorSplit,\n // Disabled\n itemDisabledColor,\n // Danger\n dangerItemColor,\n dangerItemHoverColor,\n dangerItemSelectedColor,\n dangerItemActiveBg,\n dangerItemSelectedBg,\n itemHoverBg,\n itemActiveBg,\n menuSubMenuBg,\n // Horizontal\n horizontalItemSelectedColor,\n horizontalItemSelectedBg,\n horizontalItemBorderRadius,\n horizontalItemHoverBg,\n popupBg\n } = token;\n return {\n [`${componentCls}-${themeSuffix}, ${componentCls}-${themeSuffix} > ${componentCls}`]: {\n color: itemColor,\n background: itemBg,\n [`&${componentCls}-root:focus-visible`]: Object.assign({}, accessibilityFocus(token)),\n // ======================== Item ========================\n [`${componentCls}-item-group-title`]: {\n color: groupTitleColor\n },\n [`${componentCls}-submenu-selected`]: {\n [`> ${componentCls}-submenu-title`]: {\n color: itemSelectedColor\n }\n },\n // Disabled\n [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n color: `${itemDisabledColor} !important`\n },\n // Hover\n [`${componentCls}-item:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n [`&:hover, > ${componentCls}-submenu-title:hover`]: {\n color: itemHoverColor\n }\n },\n [`&:not(${componentCls}-horizontal)`]: {\n [`${componentCls}-item:not(${componentCls}-item-selected)`]: {\n '&:hover': {\n backgroundColor: itemHoverBg\n },\n '&:active': {\n backgroundColor: itemActiveBg\n }\n },\n [`${componentCls}-submenu-title`]: {\n '&:hover': {\n backgroundColor: itemHoverBg\n },\n '&:active': {\n backgroundColor: itemActiveBg\n }\n }\n },\n // Danger - only Item has\n [`${componentCls}-item-danger`]: {\n color: dangerItemColor,\n [`&${componentCls}-item:hover`]: {\n [`&:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n color: dangerItemHoverColor\n }\n },\n [`&${componentCls}-item:active`]: {\n background: dangerItemActiveBg\n }\n },\n [`${componentCls}-item a`]: {\n '&, &:hover': {\n color: 'inherit'\n }\n },\n [`${componentCls}-item-selected`]: {\n color: itemSelectedColor,\n // Danger\n [`&${componentCls}-item-danger`]: {\n color: dangerItemSelectedColor\n },\n [`a, a:hover`]: {\n color: 'inherit'\n }\n },\n [`& ${componentCls}-item-selected`]: {\n backgroundColor: itemSelectedBg,\n // Danger\n [`&${componentCls}-item-danger`]: {\n backgroundColor: dangerItemSelectedBg\n }\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n [`&:not(${componentCls}-item-disabled):focus-visible`]: Object.assign({}, accessibilityFocus(token))\n },\n [`&${componentCls}-submenu > ${componentCls}`]: {\n backgroundColor: menuSubMenuBg\n },\n [`&${componentCls}-popup > ${componentCls}`]: {\n backgroundColor: popupBg\n },\n // ====================== Horizontal ======================\n [`&${componentCls}-horizontal`]: Object.assign(Object.assign({}, themeSuffix === 'dark' ? {\n borderBottom: 0\n } : {}), {\n [`> ${componentCls}-item, > ${componentCls}-submenu`]: {\n top: activeBarBorderWidth,\n marginTop: -activeBarBorderWidth,\n marginBottom: 0,\n borderRadius: horizontalItemBorderRadius,\n '&::after': {\n position: 'absolute',\n insetInline: itemPaddingInline,\n bottom: 0,\n borderBottom: `${activeBarHeight}px solid transparent`,\n transition: `border-color ${motionDurationSlow} ${motionEaseInOut}`,\n content: '\"\"'\n },\n [`&:hover, &-active, &-open`]: {\n background: horizontalItemHoverBg,\n '&::after': {\n borderBottomWidth: activeBarHeight,\n borderBottomColor: horizontalItemSelectedColor\n }\n },\n [`&-selected`]: {\n color: horizontalItemSelectedColor,\n backgroundColor: horizontalItemSelectedBg,\n '&:hover': {\n backgroundColor: horizontalItemSelectedBg\n },\n '&::after': {\n borderBottomWidth: activeBarHeight,\n borderBottomColor: horizontalItemSelectedColor\n }\n }\n }\n }),\n // ================== Inline & Vertical ===================\n //\n [`&${componentCls}-root`]: {\n [`&${componentCls}-inline, &${componentCls}-vertical`]: {\n borderInlineEnd: `${activeBarBorderWidth}px ${lineType} ${colorSplit}`\n }\n },\n // ======================== Inline ========================\n [`&${componentCls}-inline`]: {\n // Sub\n [`${componentCls}-sub${componentCls}-inline`]: {\n background: subMenuItemBg\n },\n // Item\n [`${componentCls}-item, ${componentCls}-submenu-title`]: activeBarBorderWidth && activeBarWidth ? {\n width: `calc(100% + ${activeBarBorderWidth}px)`\n } : {},\n [`${componentCls}-item`]: {\n position: 'relative',\n '&::after': {\n position: 'absolute',\n insetBlock: 0,\n insetInlineEnd: 0,\n borderInlineEnd: `${activeBarWidth}px solid ${itemSelectedColor}`,\n transform: 'scaleY(0.0001)',\n opacity: 0,\n transition: [`transform ${motionDurationMid} ${motionEaseOut}`, `opacity ${motionDurationMid} ${motionEaseOut}`].join(','),\n content: '\"\"'\n },\n // Danger\n [`&${componentCls}-item-danger`]: {\n '&::after': {\n borderInlineEndColor: dangerItemSelectedColor\n }\n }\n },\n [`${componentCls}-selected, ${componentCls}-item-selected`]: {\n '&::after': {\n transform: 'scaleY(1)',\n opacity: 1,\n transition: [`transform ${motionDurationMid} ${motionEaseInOut}`, `opacity ${motionDurationMid} ${motionEaseInOut}`].join(',')\n }\n }\n }\n }\n };\n};\nexport default getThemeStyle;","import { textEllipsis } from '../../style';\nconst getVerticalInlineStyle = token => {\n const {\n componentCls,\n itemHeight,\n itemMarginInline,\n padding,\n menuArrowSize,\n marginXS,\n itemMarginBlock\n } = token;\n const paddingWithArrow = padding + menuArrowSize + marginXS;\n return {\n [`${componentCls}-item`]: {\n position: 'relative',\n overflow: 'hidden'\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n height: itemHeight,\n lineHeight: `${itemHeight}px`,\n paddingInline: padding,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginInline: itemMarginInline,\n marginBlock: itemMarginBlock,\n width: `calc(100% - ${itemMarginInline * 2}px)`\n },\n [`> ${componentCls}-item,\n > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n height: itemHeight,\n lineHeight: `${itemHeight}px`\n },\n [`${componentCls}-item-group-list ${componentCls}-submenu-title,\n ${componentCls}-submenu-title`]: {\n paddingInlineEnd: paddingWithArrow\n }\n };\n};\nconst getVerticalStyle = token => {\n const {\n componentCls,\n iconCls,\n itemHeight,\n colorTextLightSolid,\n dropdownWidth,\n controlHeightLG,\n motionDurationMid,\n motionEaseOut,\n paddingXL,\n itemMarginInline,\n fontSizeLG,\n motionDurationSlow,\n paddingXS,\n boxShadowSecondary,\n collapsedWidth,\n collapsedIconSize\n } = token;\n const inlineItemStyle = {\n height: itemHeight,\n lineHeight: `${itemHeight}px`,\n listStylePosition: 'inside',\n listStyleType: 'disc'\n };\n return [{\n [componentCls]: {\n [`&-inline, &-vertical`]: Object.assign({\n [`&${componentCls}-root`]: {\n boxShadow: 'none'\n }\n }, getVerticalInlineStyle(token))\n },\n [`${componentCls}-submenu-popup`]: {\n [`${componentCls}-vertical`]: Object.assign(Object.assign({}, getVerticalInlineStyle(token)), {\n boxShadow: boxShadowSecondary\n })\n }\n },\n // Vertical only\n {\n [`${componentCls}-submenu-popup ${componentCls}-vertical${componentCls}-sub`]: {\n minWidth: dropdownWidth,\n maxHeight: `calc(100vh - ${controlHeightLG * 2.5}px)`,\n padding: '0',\n overflow: 'hidden',\n borderInlineEnd: 0,\n // https://github.com/ant-design/ant-design/issues/22244\n // https://github.com/ant-design/ant-design/issues/26812\n \"&:not([class*='-active'])\": {\n overflowX: 'hidden',\n overflowY: 'auto'\n }\n }\n },\n // Inline Only\n {\n [`${componentCls}-inline`]: {\n width: '100%',\n // Motion enhance for first level\n [`&${componentCls}-root`]: {\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n display: 'flex',\n alignItems: 'center',\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding ${motionDurationMid} ${motionEaseOut}`].join(','),\n [`> ${componentCls}-title-content`]: {\n flex: 'auto',\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n '> *': {\n flex: 'none'\n }\n }\n },\n // >>>>> Sub\n [`${componentCls}-sub${componentCls}-inline`]: {\n padding: 0,\n border: 0,\n borderRadius: 0,\n boxShadow: 'none',\n [`& > ${componentCls}-submenu > ${componentCls}-submenu-title`]: inlineItemStyle,\n [`& ${componentCls}-item-group-title`]: {\n paddingInlineStart: paddingXL\n }\n },\n // >>>>> Item\n [`${componentCls}-item`]: inlineItemStyle\n }\n },\n // Inline Collapse Only\n {\n [`${componentCls}-inline-collapsed`]: {\n width: collapsedWidth,\n [`&${componentCls}-root`]: {\n [`${componentCls}-item, ${componentCls}-submenu ${componentCls}-submenu-title`]: {\n [`> ${componentCls}-inline-collapsed-noicon`]: {\n fontSize: fontSizeLG,\n textAlign: 'center'\n }\n }\n },\n [`> ${componentCls}-item,\n > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-item,\n > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-submenu > ${componentCls}-submenu-title,\n > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n insetInlineStart: 0,\n paddingInline: `calc(50% - ${fontSizeLG / 2}px - ${itemMarginInline}px)`,\n textOverflow: 'clip',\n [`\n ${componentCls}-submenu-arrow,\n ${componentCls}-submenu-expand-icon\n `]: {\n opacity: 0\n },\n [`${componentCls}-item-icon, ${iconCls}`]: {\n margin: 0,\n fontSize: collapsedIconSize,\n lineHeight: `${itemHeight}px`,\n '+ span': {\n display: 'inline-block',\n opacity: 0\n }\n }\n },\n [`${componentCls}-item-icon, ${iconCls}`]: {\n display: 'inline-block'\n },\n '&-tooltip': {\n pointerEvents: 'none',\n [`${componentCls}-item-icon, ${iconCls}`]: {\n display: 'none'\n },\n 'a, a:hover': {\n color: colorTextLightSolid\n }\n },\n [`${componentCls}-item-group-title`]: Object.assign(Object.assign({}, textEllipsis), {\n paddingInline: paddingXS\n })\n }\n }];\n};\nexport default getVerticalStyle;","import { TinyColor } from '@ctrl/tinycolor';\nimport { clearFix, resetComponent, resetIcon } from '../../style';\nimport { genCollapseMotion, initSlideMotion, initZoomMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport getHorizontalStyle from './horizontal';\nimport getRTLStyle from './rtl';\nimport getThemeStyle from './theme';\nimport getVerticalStyle from './vertical';\nconst genMenuItemStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOut,\n motionEaseOut,\n iconCls,\n iconSize,\n iconMarginInlineEnd\n } = token;\n return {\n // >>>>> Item\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n position: 'relative',\n display: 'block',\n margin: 0,\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding ${motionDurationSlow} ${motionEaseInOut}`].join(','),\n [`${componentCls}-item-icon, ${iconCls}`]: {\n minWidth: iconSize,\n fontSize: iconSize,\n transition: [`font-size ${motionDurationMid} ${motionEaseOut}`, `margin ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow}`].join(','),\n '+ span': {\n marginInlineStart: iconMarginInlineEnd,\n opacity: 1,\n transition: [`opacity ${motionDurationSlow} ${motionEaseInOut}`, `margin ${motionDurationSlow}`, `color ${motionDurationSlow}`].join(',')\n }\n },\n [`${componentCls}-item-icon`]: Object.assign({}, resetIcon()),\n [`&${componentCls}-item-only-child`]: {\n [`> ${iconCls}, > ${componentCls}-item-icon`]: {\n marginInlineEnd: 0\n }\n }\n },\n // Disabled state sets text to gray and nukes hover/tab effects\n [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n background: 'none !important',\n cursor: 'not-allowed',\n '&::after': {\n borderColor: 'transparent !important'\n },\n a: {\n color: 'inherit !important'\n },\n [`> ${componentCls}-submenu-title`]: {\n color: 'inherit !important',\n cursor: 'not-allowed'\n }\n }\n };\n};\nconst genSubMenuArrowStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n motionEaseInOut,\n borderRadius,\n menuArrowSize,\n menuArrowOffset\n } = token;\n return {\n [`${componentCls}-submenu`]: {\n [`&-expand-icon, &-arrow`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: token.margin,\n width: menuArrowSize,\n color: 'currentcolor',\n transform: 'translateY(-50%)',\n transition: `transform ${motionDurationSlow} ${motionEaseInOut}, opacity ${motionDurationSlow}`\n },\n '&-arrow': {\n // →\n '&::before, &::after': {\n position: 'absolute',\n width: menuArrowSize * 0.6,\n height: menuArrowSize * 0.15,\n backgroundColor: 'currentcolor',\n borderRadius,\n transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `transform ${motionDurationSlow} ${motionEaseInOut}`, `top ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow} ${motionEaseInOut}`].join(','),\n content: '\"\"'\n },\n '&::before': {\n transform: `rotate(45deg) translateY(-${menuArrowOffset})`\n },\n '&::after': {\n transform: `rotate(-45deg) translateY(${menuArrowOffset})`\n }\n }\n }\n };\n};\n// =============================== Base ===============================\nconst getBaseStyle = token => {\n const {\n antCls,\n componentCls,\n fontSize,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOut,\n paddingXS,\n padding,\n colorSplit,\n lineWidth,\n zIndexPopup,\n borderRadiusLG,\n subMenuItemBorderRadius,\n menuArrowSize,\n menuArrowOffset,\n lineType,\n menuPanelMaskInset,\n groupTitleLineHeight,\n groupTitleFontSize\n } = token;\n return [\n // Misc\n {\n '': {\n [`${componentCls}`]: Object.assign(Object.assign({}, clearFix()), {\n // Hidden\n [`&-hidden`]: {\n display: 'none'\n }\n })\n },\n [`${componentCls}-submenu-hidden`]: {\n display: 'none'\n }\n }, {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), clearFix()), {\n marginBottom: 0,\n paddingInlineStart: 0,\n // Override default ul/ol\n fontSize,\n lineHeight: 0,\n listStyle: 'none',\n outline: 'none',\n // Magic cubic here but smooth transition\n transition: `width ${motionDurationSlow} cubic-bezier(0.2, 0, 0, 1) 0s`,\n [`ul, ol`]: {\n margin: 0,\n padding: 0,\n listStyle: 'none'\n },\n // Overflow ellipsis\n [`&-overflow`]: {\n display: 'flex',\n [`${componentCls}-item`]: {\n flex: 'none'\n }\n },\n [`${componentCls}-item, ${componentCls}-submenu, ${componentCls}-submenu-title`]: {\n borderRadius: token.itemBorderRadius\n },\n [`${componentCls}-item-group-title`]: {\n padding: `${paddingXS}px ${padding}px`,\n fontSize: groupTitleFontSize,\n lineHeight: groupTitleLineHeight,\n transition: `all ${motionDurationSlow}`\n },\n [`&-horizontal ${componentCls}-submenu`]: {\n transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-submenu, ${componentCls}-submenu-inline`]: {\n transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationMid} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-submenu ${componentCls}-sub`]: {\n cursor: 'initial',\n transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-title-content`]: {\n transition: `color ${motionDurationSlow}`\n },\n [`${componentCls}-item a`]: {\n '&::before': {\n position: 'absolute',\n inset: 0,\n backgroundColor: 'transparent',\n content: '\"\"'\n }\n },\n // Removed a Badge related style seems it's safe\n // https://github.com/ant-design/ant-design/issues/19809\n // >>>>> Divider\n [`${componentCls}-item-divider`]: {\n overflow: 'hidden',\n lineHeight: 0,\n borderColor: colorSplit,\n borderStyle: lineType,\n borderWidth: 0,\n borderTopWidth: lineWidth,\n marginBlock: lineWidth,\n padding: 0,\n '&-dashed': {\n borderStyle: 'dashed'\n }\n }\n }), genMenuItemStyle(token)), {\n [`${componentCls}-item-group`]: {\n [`${componentCls}-item-group-list`]: {\n margin: 0,\n padding: 0,\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n paddingInline: `${fontSize * 2}px ${padding}px`\n }\n }\n },\n // ======================= Sub Menu =======================\n '&-submenu': {\n '&-popup': {\n position: 'absolute',\n zIndex: zIndexPopup,\n borderRadius: borderRadiusLG,\n boxShadow: 'none',\n transformOrigin: '0 0',\n [`&${componentCls}-submenu`]: {\n background: 'transparent'\n },\n // https://github.com/ant-design/ant-design/issues/13955\n '&::before': {\n position: 'absolute',\n inset: `${menuPanelMaskInset}px 0 0`,\n zIndex: -1,\n width: '100%',\n height: '100%',\n opacity: 0,\n content: '\"\"'\n }\n },\n // https://github.com/ant-design/ant-design/issues/13955\n '&-placement-rightTop::before': {\n top: 0,\n insetInlineStart: menuPanelMaskInset\n },\n [`\n &-placement-leftTop,\n &-placement-bottomRight,\n `]: {\n transformOrigin: '100% 0'\n },\n [`\n &-placement-leftBottom,\n &-placement-topRight,\n `]: {\n transformOrigin: '100% 100%'\n },\n [`\n &-placement-rightBottom,\n &-placement-topLeft,\n `]: {\n transformOrigin: '0 100%'\n },\n [`\n &-placement-bottomLeft,\n &-placement-rightTop,\n `]: {\n transformOrigin: '0 0'\n },\n [`\n &-placement-leftTop,\n &-placement-leftBottom\n `]: {\n paddingInlineEnd: token.paddingXS\n },\n [`\n &-placement-rightTop,\n &-placement-rightBottom\n `]: {\n paddingInlineStart: token.paddingXS\n },\n [`\n &-placement-topRight,\n &-placement-topLeft\n `]: {\n paddingBottom: token.paddingXS\n },\n [`\n &-placement-bottomRight,\n &-placement-bottomLeft\n `]: {\n paddingTop: token.paddingXS\n },\n [`> ${componentCls}`]: Object.assign(Object.assign(Object.assign({\n borderRadius: borderRadiusLG\n }, genMenuItemStyle(token)), genSubMenuArrowStyle(token)), {\n [`${componentCls}-item, ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n borderRadius: subMenuItemBorderRadius\n },\n [`${componentCls}-submenu-title::after`]: {\n transition: `transform ${motionDurationSlow} ${motionEaseInOut}`\n }\n })\n }\n }), genSubMenuArrowStyle(token)), {\n [`&-inline-collapsed ${componentCls}-submenu-arrow,\n &-inline ${componentCls}-submenu-arrow`]: {\n // ↓\n '&::before': {\n transform: `rotate(-45deg) translateX(${menuArrowOffset})`\n },\n '&::after': {\n transform: `rotate(45deg) translateX(-${menuArrowOffset})`\n }\n },\n [`${componentCls}-submenu-open${componentCls}-submenu-inline > ${componentCls}-submenu-title > ${componentCls}-submenu-arrow`]: {\n // ↑\n transform: `translateY(-${menuArrowSize * 0.2}px)`,\n '&::after': {\n transform: `rotate(-45deg) translateX(-${menuArrowOffset})`\n },\n '&::before': {\n transform: `rotate(45deg) translateX(${menuArrowOffset})`\n }\n }\n })\n },\n // Integration with header element so menu items have the same height\n {\n [`${antCls}-layout-header`]: {\n [componentCls]: {\n lineHeight: 'inherit'\n }\n }\n }];\n};\n// ============================== Export ==============================\nexport default ((prefixCls, injectStyle) => {\n const useOriginHook = genComponentStyleHook('Menu', token => {\n // Dropdown will handle menu style self. We do not need to handle this.\n if (injectStyle === false) {\n return [];\n }\n const {\n colorBgElevated,\n colorPrimary,\n colorTextLightSolid,\n controlHeightLG,\n fontSize,\n darkItemColor,\n darkDangerItemColor,\n darkItemBg,\n darkSubMenuItemBg,\n darkItemSelectedColor,\n darkItemSelectedBg,\n darkDangerItemSelectedBg,\n darkItemHoverBg,\n darkGroupTitleColor,\n darkItemHoverColor,\n darkItemDisabledColor,\n darkDangerItemHoverColor,\n darkDangerItemSelectedColor,\n darkDangerItemActiveBg\n } = token;\n const menuArrowSize = fontSize / 7 * 5;\n // Menu Token\n const menuToken = mergeToken(token, {\n menuArrowSize,\n menuHorizontalHeight: controlHeightLG * 1.15,\n menuArrowOffset: `${menuArrowSize * 0.25}px`,\n menuPanelMaskInset: -7,\n menuSubMenuBg: colorBgElevated\n });\n const menuDarkToken = mergeToken(menuToken, {\n itemColor: darkItemColor,\n itemHoverColor: darkItemHoverColor,\n groupTitleColor: darkGroupTitleColor,\n itemSelectedColor: darkItemSelectedColor,\n itemBg: darkItemBg,\n popupBg: darkItemBg,\n subMenuItemBg: darkSubMenuItemBg,\n itemActiveBg: 'transparent',\n itemSelectedBg: darkItemSelectedBg,\n activeBarHeight: 0,\n activeBarBorderWidth: 0,\n itemHoverBg: darkItemHoverBg,\n // Disabled\n itemDisabledColor: darkItemDisabledColor,\n // Danger\n dangerItemColor: darkDangerItemColor,\n dangerItemHoverColor: darkDangerItemHoverColor,\n dangerItemSelectedColor: darkDangerItemSelectedColor,\n dangerItemActiveBg: darkDangerItemActiveBg,\n dangerItemSelectedBg: darkDangerItemSelectedBg,\n menuSubMenuBg: darkSubMenuItemBg,\n // Horizontal\n horizontalItemSelectedColor: colorTextLightSolid,\n horizontalItemSelectedBg: colorPrimary\n });\n return [\n // Basic\n getBaseStyle(menuToken),\n // Horizontal\n getHorizontalStyle(menuToken),\n // Vertical\n getVerticalStyle(menuToken),\n // Theme\n getThemeStyle(menuToken, 'light'), getThemeStyle(menuDarkToken, 'dark'),\n // RTL\n getRTLStyle(menuToken),\n // Motion\n genCollapseMotion(menuToken), initSlideMotion(menuToken, 'slide-up'), initSlideMotion(menuToken, 'slide-down'), initZoomMotion(menuToken, 'zoom-big')];\n }, token => {\n const {\n colorPrimary,\n colorError,\n colorTextDisabled,\n colorErrorBg,\n colorText,\n colorTextDescription,\n colorBgContainer,\n colorFillAlter,\n colorFillContent,\n lineWidth,\n lineWidthBold,\n controlItemBgActive,\n colorBgTextHover,\n controlHeightLG,\n lineHeight,\n colorBgElevated,\n marginXXS,\n padding,\n fontSize,\n controlHeightSM,\n fontSizeLG,\n colorTextLightSolid,\n colorErrorHover\n } = token;\n const colorTextDark = new TinyColor(colorTextLightSolid).setAlpha(0.65).toRgbString();\n return {\n dropdownWidth: 160,\n zIndexPopup: token.zIndexPopupBase + 50,\n radiusItem: token.borderRadiusLG,\n itemBorderRadius: token.borderRadiusLG,\n radiusSubMenuItem: token.borderRadiusSM,\n subMenuItemBorderRadius: token.borderRadiusSM,\n colorItemText: colorText,\n itemColor: colorText,\n colorItemTextHover: colorText,\n itemHoverColor: colorText,\n colorItemTextHoverHorizontal: colorPrimary,\n horizontalItemHoverColor: colorPrimary,\n colorGroupTitle: colorTextDescription,\n groupTitleColor: colorTextDescription,\n colorItemTextSelected: colorPrimary,\n itemSelectedColor: colorPrimary,\n colorItemTextSelectedHorizontal: colorPrimary,\n horizontalItemSelectedColor: colorPrimary,\n colorItemBg: colorBgContainer,\n itemBg: colorBgContainer,\n colorItemBgHover: colorBgTextHover,\n itemHoverBg: colorBgTextHover,\n colorItemBgActive: colorFillContent,\n itemActiveBg: controlItemBgActive,\n colorSubItemBg: colorFillAlter,\n subMenuItemBg: colorFillAlter,\n colorItemBgSelected: controlItemBgActive,\n itemSelectedBg: controlItemBgActive,\n colorItemBgSelectedHorizontal: 'transparent',\n horizontalItemSelectedBg: 'transparent',\n colorActiveBarWidth: 0,\n activeBarWidth: 0,\n colorActiveBarHeight: lineWidthBold,\n activeBarHeight: lineWidthBold,\n colorActiveBarBorderSize: lineWidth,\n activeBarBorderWidth: lineWidth,\n // Disabled\n colorItemTextDisabled: colorTextDisabled,\n itemDisabledColor: colorTextDisabled,\n // Danger\n colorDangerItemText: colorError,\n dangerItemColor: colorError,\n colorDangerItemTextHover: colorError,\n dangerItemHoverColor: colorError,\n colorDangerItemTextSelected: colorError,\n dangerItemSelectedColor: colorError,\n colorDangerItemBgActive: colorErrorBg,\n dangerItemActiveBg: colorErrorBg,\n colorDangerItemBgSelected: colorErrorBg,\n dangerItemSelectedBg: colorErrorBg,\n itemMarginInline: token.marginXXS,\n horizontalItemBorderRadius: 0,\n horizontalItemHoverBg: 'transparent',\n itemHeight: controlHeightLG,\n groupTitleLineHeight: lineHeight,\n collapsedWidth: controlHeightLG * 2,\n popupBg: colorBgElevated,\n itemMarginBlock: marginXXS,\n itemPaddingInline: padding,\n horizontalLineHeight: `${controlHeightLG * 1.15}px`,\n iconSize: fontSize,\n iconMarginInlineEnd: controlHeightSM - fontSize,\n collapsedIconSize: fontSizeLG,\n groupTitleFontSize: fontSize,\n // Disabled\n darkItemDisabledColor: new TinyColor(colorTextLightSolid).setAlpha(0.25).toRgbString(),\n // Dark\n darkItemColor: colorTextDark,\n darkDangerItemColor: colorError,\n darkItemBg: '#001529',\n darkSubMenuItemBg: '#000c17',\n darkItemSelectedColor: colorTextLightSolid,\n darkItemSelectedBg: colorPrimary,\n darkDangerItemSelectedBg: colorError,\n darkItemHoverBg: 'transparent',\n darkGroupTitleColor: colorTextDark,\n darkItemHoverColor: colorTextLightSolid,\n darkDangerItemHoverColor: colorErrorHover,\n darkDangerItemSelectedColor: colorTextLightSolid,\n darkDangerItemActiveBg: colorError\n };\n }, {\n deprecatedTokens: [['colorGroupTitle', 'groupTitleColor'], ['radiusItem', 'itemBorderRadius'], ['radiusSubMenuItem', 'subMenuItemBorderRadius'], ['colorItemText', 'itemColor'], ['colorItemTextHover', 'itemHoverColor'], ['colorItemTextHoverHorizontal', 'horizontalItemHoverColor'], ['colorItemTextSelected', 'itemSelectedColor'], ['colorItemTextSelectedHorizontal', 'horizontalItemSelectedColor'], ['colorItemTextDisabled', 'itemDisabledColor'], ['colorDangerItemText', 'dangerItemColor'], ['colorDangerItemTextHover', 'dangerItemHoverColor'], ['colorDangerItemTextSelected', 'dangerItemSelectedColor'], ['colorDangerItemBgActive', 'dangerItemActiveBg'], ['colorDangerItemBgSelected', 'dangerItemSelectedBg'], ['colorItemBg', 'itemBg'], ['colorItemBgHover', 'itemHoverBg'], ['colorSubItemBg', 'subMenuItemBg'], ['colorItemBgActive', 'itemActiveBg'], ['colorItemBgSelectedHorizontal', 'horizontalItemSelectedBg'], ['colorActiveBarWidth', 'activeBarWidth'], ['colorActiveBarHeight', 'activeBarHeight'], ['colorActiveBarBorderSize', 'activeBarBorderWidth'], ['colorItemBgSelected', 'itemSelectedBg']]\n });\n return useOriginHook(prefixCls);\n});","var __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 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 initCollapseMotion from '../_util/motion';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport MenuContext from './MenuContext';\nimport OverrideContext from './OverrideContext';\nimport useItems from './hooks/useItems';\nimport useStyle from './style';\nconst InternalMenu = /*#__PURE__*/forwardRef((props, ref) => {\n var _a, _b;\n const override = React.useContext(OverrideContext);\n const overrideObj = override || {};\n const {\n getPrefixCls,\n getPopupContainer,\n direction,\n menu\n } = React.useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n theme = 'light',\n expandIcon,\n _internalDisableMenuItemTitleTooltip,\n inlineCollapsed,\n siderCollapsed,\n items,\n children,\n rootClassName,\n mode,\n selectable,\n onClick,\n overflowedIndicatorPopupClassName\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"theme\", \"expandIcon\", \"_internalDisableMenuItemTitleTooltip\", \"inlineCollapsed\", \"siderCollapsed\", \"items\", \"children\", \"rootClassName\", \"mode\", \"selectable\", \"onClick\", \"overflowedIndicatorPopupClassName\"]);\n const passedProps = omit(restProps, ['collapsedWidth']);\n // ========================= Items ===========================\n const 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 = overrideObj.validator) === null || _a === void 0 ? void 0 : _a.call(overrideObj, {\n mode\n });\n // ========================== Click ==========================\n // Tell dropdown that item clicked\n const onItemClick = useEvent(function () {\n var _a;\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, arguments);\n (_a = overrideObj.onClick) === null || _a === void 0 ? void 0 : _a.call(overrideObj);\n });\n // ========================== Mode ===========================\n const mergedMode = overrideObj.mode || mode;\n // ======================= Selectable ========================\n const mergedSelectable = selectable !== null && selectable !== void 0 ? selectable : overrideObj.selectable;\n // ======================== Collapsed ========================\n // Inline Collapsed\n const mergedInlineCollapsed = React.useMemo(() => {\n if (siderCollapsed !== undefined) {\n return siderCollapsed;\n }\n return inlineCollapsed;\n }, [inlineCollapsed, siderCollapsed]);\n const defaultMotions = {\n horizontal: {\n motionName: `${rootPrefixCls}-slide-up`\n },\n inline: initCollapseMotion(rootPrefixCls),\n other: {\n motionName: `${rootPrefixCls}-zoom-big`\n }\n };\n const prefixCls = getPrefixCls('menu', customizePrefixCls || overrideObj.prefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls, !override);\n const menuClassName = classNames(`${prefixCls}-${theme}`, menu === null || menu === void 0 ? void 0 : menu.className, className);\n // ====================== Expand Icon ========================\n let mergedExpandIcon;\n if (typeof expandIcon === 'function') {\n mergedExpandIcon = expandIcon;\n } else {\n const beClone = expandIcon || overrideObj.expandIcon;\n mergedExpandIcon = cloneElement(beClone, {\n className: classNames(`${prefixCls}-submenu-expand-icon`, isValidElement(beClone) ? (_b = beClone.props) === null || _b === void 0 ? void 0 : _b.className : '')\n });\n }\n // ======================== Context ==========================\n const contextValue = React.useMemo(() => ({\n prefixCls,\n inlineCollapsed: mergedInlineCollapsed || false,\n direction,\n firstLevel: true,\n theme,\n mode: mergedMode,\n disableMenuItemTitleTooltip: _internalDisableMenuItemTitleTooltip\n }), [prefixCls, mergedInlineCollapsed, direction, _internalDisableMenuItemTitleTooltip, theme]);\n // ========================= Render ==========================\n return wrapSSR( /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcMenu, Object.assign({\n getPopupContainer: getPopupContainer,\n overflowedIndicator: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n overflowedIndicatorPopupClassName: classNames(prefixCls, `${prefixCls}-${theme}`, overflowedIndicatorPopupClassName),\n mode: mergedMode,\n selectable: mergedSelectable,\n onClick: onItemClick\n }, passedProps, {\n inlineCollapsed: mergedInlineCollapsed,\n style: Object.assign(Object.assign({}, menu === null || menu === void 0 ? void 0 : menu.style), style),\n className: menuClassName,\n prefixCls: prefixCls,\n direction: direction,\n defaultMotions: defaultMotions,\n expandIcon: mergedExpandIcon,\n ref: ref,\n rootClassName: classNames(rootClassName, hashId)\n }), mergedChildren))));\n});\nexport default InternalMenu;","'use client';\n\nimport { ItemGroup } from 'rc-menu';\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { SiderContext } from '../layout/Sider';\nimport MenuDivider from './MenuDivider';\nimport Item from './MenuItem';\nimport SubMenu from './SubMenu';\nimport InternalMenu from './menu';\nconst Menu = /*#__PURE__*/forwardRef((props, ref) => {\n const menuRef = useRef(null);\n const context = React.useContext(SiderContext);\n useImperativeHandle(ref, () => ({\n menu: menuRef.current,\n focus: options => {\n var _a;\n (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.focus(options);\n }\n }));\n return /*#__PURE__*/React.createElement(InternalMenu, Object.assign({\n ref: menuRef\n }, props, context));\n});\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.Divider = MenuDivider;\nMenu.ItemGroup = ItemGroup;\nif (process.env.NODE_ENV !== 'production') {\n Menu.displayName = 'Menu';\n}\nexport default Menu;","var __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 CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport { Notice } from 'rc-notification';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nexport const TypeIcon = {\n info: /*#__PURE__*/React.createElement(InfoCircleFilled, null),\n success: /*#__PURE__*/React.createElement(CheckCircleFilled, null),\n error: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n warning: /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n loading: /*#__PURE__*/React.createElement(LoadingOutlined, null)\n};\nexport const PureContent = _ref => {\n let {\n prefixCls,\n type,\n icon,\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-custom-content`, `${prefixCls}-${type}`)\n }, icon || TypeIcon[type], /*#__PURE__*/React.createElement(\"span\", null, children));\n};\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n const {\n prefixCls: staticPrefixCls,\n className,\n type,\n icon,\n content\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"type\", \"icon\", \"content\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('message');\n const [, hashId] = useStyle(prefixCls);\n return /*#__PURE__*/React.createElement(Notice, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n className: classNames(className, hashId, `${prefixCls}-notice-pure-panel`),\n eventKey: \"pure\",\n duration: null,\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: prefixCls,\n type: type,\n icon: icon\n }, content)\n }));\n};\nexport default PurePanel;","'use client';\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { render } from \"rc-util/es/React/render\";\nimport ConfigProvider, { globalConfig, warnContext } from '../config-provider';\nimport PurePanel from './PurePanel';\nimport useMessage, { useInternalMessage } from './useMessage';\nimport { wrapPromiseFn } from './util';\nlet message = null;\nlet act = callback => callback();\nlet taskQueue = [];\nlet defaultGlobalConfig = {};\nfunction getGlobalContext() {\n const {\n prefixCls: globalPrefixCls,\n getContainer: globalGetContainer,\n duration,\n rtl,\n maxCount,\n top\n } = defaultGlobalConfig;\n const mergedPrefixCls = globalPrefixCls !== null && globalPrefixCls !== void 0 ? globalPrefixCls : globalConfig().getPrefixCls('message');\n const mergedContainer = (globalGetContainer === null || globalGetContainer === void 0 ? void 0 : globalGetContainer()) || document.body;\n return {\n prefixCls: mergedPrefixCls,\n getContainer: () => mergedContainer,\n duration,\n rtl,\n maxCount,\n top\n };\n}\nconst GlobalHolder = /*#__PURE__*/React.forwardRef((_, ref) => {\n const [messageConfig, setMessageConfig] = React.useState(getGlobalContext);\n const [api, holder] = useInternalMessage(messageConfig);\n const global = globalConfig();\n const rootPrefixCls = global.getRootPrefixCls();\n const rootIconPrefixCls = global.getIconPrefixCls();\n const theme = global.getTheme();\n const sync = () => {\n setMessageConfig(getGlobalContext);\n };\n React.useEffect(sync, []);\n React.useImperativeHandle(ref, () => {\n const instance = Object.assign({}, api);\n Object.keys(instance).forEach(method => {\n instance[method] = function () {\n sync();\n return api[method].apply(api, arguments);\n };\n });\n return {\n instance,\n sync\n };\n });\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: rootIconPrefixCls,\n theme: theme\n }, holder);\n});\nfunction flushNotice() {\n if (!message) {\n const holderFragment = document.createDocumentFragment();\n const newMessage = {\n fragment: holderFragment\n };\n message = newMessage;\n // Delay render to avoid sync issue\n act(() => {\n render( /*#__PURE__*/React.createElement(GlobalHolder, {\n ref: node => {\n const {\n instance,\n sync\n } = node || {};\n // React 18 test env will throw if call immediately in ref\n Promise.resolve().then(() => {\n if (!newMessage.instance && instance) {\n newMessage.instance = instance;\n newMessage.sync = sync;\n flushNotice();\n }\n });\n }\n }), holderFragment);\n });\n return;\n }\n // Notification not ready\n if (!message.instance) {\n return;\n }\n // >>> Execute task\n taskQueue.forEach(task => {\n const {\n type,\n skipped\n } = task;\n // Only `skipped` when user call notice but cancel it immediately\n // and instance not ready\n if (!skipped) {\n switch (type) {\n case 'open':\n {\n act(() => {\n const closeFn = message.instance.open(Object.assign(Object.assign({}, defaultGlobalConfig), task.config));\n closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n task.setCloseFn(closeFn);\n });\n break;\n }\n case 'destroy':\n act(() => {\n message === null || message === void 0 ? void 0 : message.instance.destroy(task.key);\n });\n break;\n // Other type open\n default:\n {\n act(() => {\n var _message$instance;\n const closeFn = (_message$instance = message.instance)[type].apply(_message$instance, _toConsumableArray(task.args));\n closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n task.setCloseFn(closeFn);\n });\n }\n }\n }\n });\n // Clean up\n taskQueue = [];\n}\n// ==============================================================================\n// == Export ==\n// ==============================================================================\nfunction setMessageGlobalConfig(config) {\n defaultGlobalConfig = Object.assign(Object.assign({}, defaultGlobalConfig), config);\n // Trigger sync for it\n act(() => {\n var _a;\n (_a = message === null || message === void 0 ? void 0 : message.sync) === null || _a === void 0 ? void 0 : _a.call(message);\n });\n}\nfunction open(config) {\n const result = wrapPromiseFn(resolve => {\n let closeFn;\n const task = {\n type: 'open',\n config,\n resolve,\n setCloseFn: fn => {\n closeFn = fn;\n }\n };\n taskQueue.push(task);\n return () => {\n if (closeFn) {\n act(() => {\n closeFn();\n });\n } else {\n task.skipped = true;\n }\n };\n });\n flushNotice();\n return result;\n}\nfunction typeOpen(type, args) {\n // Warning if exist theme\n if (process.env.NODE_ENV !== 'production') {\n warnContext('message');\n }\n const result = wrapPromiseFn(resolve => {\n let closeFn;\n const task = {\n type,\n args,\n resolve,\n setCloseFn: fn => {\n closeFn = fn;\n }\n };\n taskQueue.push(task);\n return () => {\n if (closeFn) {\n act(() => {\n closeFn();\n });\n } else {\n task.skipped = true;\n }\n };\n });\n flushNotice();\n return result;\n}\nfunction destroy(key) {\n taskQueue.push({\n type: 'destroy',\n key\n });\n flushNotice();\n}\nconst methods = ['success', 'info', 'warning', 'error', 'loading'];\nconst baseStaticMethods = {\n open,\n destroy,\n config: setMessageGlobalConfig,\n useMessage,\n _InternalPanelDoNotUseOrYouWillBeFired: PurePanel\n};\nconst staticMethods = baseStaticMethods;\nmethods.forEach(type => {\n staticMethods[type] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return typeOpen(type, args);\n };\n});\n// ==============================================================================\n// == Test ==\n// ==============================================================================\nconst noop = () => {};\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actWrapper = noop;\nif (process.env.NODE_ENV === 'test') {\n actWrapper = wrapper => {\n act = wrapper;\n };\n}\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actDestroy = noop;\nif (process.env.NODE_ENV === 'test') {\n actDestroy = () => {\n message = null;\n };\n}\nexport default staticMethods;","import { Keyframes } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genMessageStyle = token => {\n const {\n componentCls,\n iconCls,\n boxShadow,\n colorText,\n colorSuccess,\n colorError,\n colorWarning,\n colorInfo,\n fontSizeLG,\n motionEaseInOutCirc,\n motionDurationSlow,\n marginXS,\n paddingXS,\n borderRadiusLG,\n zIndexPopup,\n // Custom token\n contentPadding,\n contentBg\n } = token;\n const noticeCls = `${componentCls}-notice`;\n const messageMoveIn = new Keyframes('MessageMoveIn', {\n '0%': {\n padding: 0,\n transform: 'translateY(-100%)',\n opacity: 0\n },\n '100%': {\n padding: paddingXS,\n transform: 'translateY(0)',\n opacity: 1\n }\n });\n const messageMoveOut = new Keyframes('MessageMoveOut', {\n '0%': {\n maxHeight: token.height,\n padding: paddingXS,\n opacity: 1\n },\n '100%': {\n maxHeight: 0,\n padding: 0,\n opacity: 0\n }\n });\n const noticeStyle = {\n padding: paddingXS,\n textAlign: 'center',\n [`${componentCls}-custom-content > ${iconCls}`]: {\n verticalAlign: 'text-bottom',\n marginInlineEnd: marginXS,\n fontSize: fontSizeLG\n },\n [`${noticeCls}-content`]: {\n display: 'inline-block',\n padding: contentPadding,\n background: contentBg,\n borderRadius: borderRadiusLG,\n boxShadow,\n pointerEvents: 'all'\n },\n [`${componentCls}-success > ${iconCls}`]: {\n color: colorSuccess\n },\n [`${componentCls}-error > ${iconCls}`]: {\n color: colorError\n },\n [`${componentCls}-warning > ${iconCls}`]: {\n color: colorWarning\n },\n [`${componentCls}-info > ${iconCls},\n ${componentCls}-loading > ${iconCls}`]: {\n color: colorInfo\n }\n };\n return [\n // ============================ Holder ============================\n {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n color: colorText,\n position: 'fixed',\n top: marginXS,\n width: '100%',\n pointerEvents: 'none',\n zIndex: zIndexPopup,\n [`${componentCls}-move-up`]: {\n animationFillMode: 'forwards'\n },\n [`\n ${componentCls}-move-up-appear,\n ${componentCls}-move-up-enter\n `]: {\n animationName: messageMoveIn,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`\n ${componentCls}-move-up-appear${componentCls}-move-up-appear-active,\n ${componentCls}-move-up-enter${componentCls}-move-up-enter-active\n `]: {\n animationPlayState: 'running'\n },\n [`${componentCls}-move-up-leave`]: {\n animationName: messageMoveOut,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`${componentCls}-move-up-leave${componentCls}-move-up-leave-active`]: {\n animationPlayState: 'running'\n },\n '&-rtl': {\n direction: 'rtl',\n span: {\n direction: 'rtl'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [componentCls]: {\n [noticeCls]: Object.assign({}, noticeStyle)\n }\n },\n // ============================= Pure =============================\n {\n [`${componentCls}-notice-pure-panel`]: Object.assign(Object.assign({}, noticeStyle), {\n padding: 0,\n textAlign: 'start'\n })\n }];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Message', token => {\n // Gen-style functions here\n const combinedToken = mergeToken(token, {\n height: 150\n });\n return [genMessageStyle(combinedToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 10,\n contentBg: token.colorBgElevated,\n contentPadding: `${(token.controlHeightLG - token.fontSize * token.lineHeight) / 2}px ${token.paddingSM}px`\n}), {\n clientOnly: true\n});","var __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 { useNotification as useRcNotification } from 'rc-notification';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { PureContent } from './PurePanel';\nimport useStyle from './style';\nimport { getMotion, wrapPromiseFn } from './util';\nconst DEFAULT_OFFSET = 8;\nconst DEFAULT_DURATION = 3;\nconst Holder = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n top,\n prefixCls: staticPrefixCls,\n getContainer: staticGetContainer,\n maxCount,\n duration = DEFAULT_DURATION,\n rtl,\n transitionName,\n onAllRemoved\n } = props;\n const {\n getPrefixCls,\n getPopupContainer,\n message\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('message');\n const [, hashId] = useStyle(prefixCls);\n // =============================== Style ===============================\n const getStyle = () => ({\n left: '50%',\n transform: 'translateX(-50%)',\n top: top !== null && top !== void 0 ? top : DEFAULT_OFFSET\n });\n const getClassName = () => classNames(hashId, {\n [`${prefixCls}-rtl`]: rtl\n });\n // ============================== Motion ===============================\n const getNotificationMotion = () => getMotion(prefixCls, transitionName);\n // ============================ Close Icon =============================\n const mergedCloseIcon = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-x`\n }, /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n }));\n // ============================== Origin ===============================\n const [api, holder] = useRcNotification({\n prefixCls,\n style: getStyle,\n className: getClassName,\n motion: getNotificationMotion,\n closable: false,\n closeIcon: mergedCloseIcon,\n duration,\n getContainer: () => (staticGetContainer === null || staticGetContainer === void 0 ? void 0 : staticGetContainer()) || (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer()) || document.body,\n maxCount,\n onAllRemoved\n });\n // ================================ Ref ================================\n React.useImperativeHandle(ref, () => Object.assign(Object.assign({}, api), {\n prefixCls,\n hashId,\n message\n }));\n return holder;\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nlet keyIndex = 0;\nexport function useInternalMessage(messageConfig) {\n const holderRef = React.useRef(null);\n // ================================ API ================================\n const wrapAPI = React.useMemo(() => {\n // Wrap with notification content\n // >>> close\n const close = key => {\n var _a;\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.close(key);\n };\n // >>> Open\n const open = config => {\n if (!holderRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Message', 'You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead.') : void 0;\n const fakeResult = () => {};\n fakeResult.then = () => {};\n return fakeResult;\n }\n const {\n open: originOpen,\n prefixCls,\n hashId,\n message\n } = holderRef.current;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n content,\n icon,\n type,\n key,\n className,\n style,\n onClose\n } = config,\n restConfig = __rest(config, [\"content\", \"icon\", \"type\", \"key\", \"className\", \"style\", \"onClose\"]);\n let mergedKey = key;\n if (mergedKey === undefined || mergedKey === null) {\n keyIndex += 1;\n mergedKey = `antd-message-${keyIndex}`;\n }\n return wrapPromiseFn(resolve => {\n originOpen(Object.assign(Object.assign({}, restConfig), {\n key: mergedKey,\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: prefixCls,\n type: type,\n icon: icon\n }, content),\n placement: 'top',\n className: classNames(type && `${noticePrefixCls}-${type}`, hashId, className, message === null || message === void 0 ? void 0 : message.className),\n style: Object.assign(Object.assign({}, message === null || message === void 0 ? void 0 : message.style), style),\n onClose: () => {\n onClose === null || onClose === void 0 ? void 0 : onClose();\n resolve();\n }\n }));\n // Return close function\n return () => {\n close(mergedKey);\n };\n });\n };\n // >>> destroy\n const destroy = key => {\n var _a;\n if (key !== undefined) {\n close(key);\n } else {\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n };\n const clone = {\n open,\n destroy\n };\n const keys = ['info', 'success', 'warning', 'error', 'loading'];\n keys.forEach(type => {\n const typeOpen = (jointContent, duration, onClose) => {\n let config;\n if (jointContent && typeof jointContent === 'object' && 'content' in jointContent) {\n config = jointContent;\n } else {\n config = {\n content: jointContent\n };\n }\n // Params\n let mergedDuration;\n let mergedOnClose;\n if (typeof duration === 'function') {\n mergedOnClose = duration;\n } else {\n mergedDuration = duration;\n mergedOnClose = onClose;\n }\n const mergedConfig = Object.assign(Object.assign({\n onClose: mergedOnClose,\n duration: mergedDuration\n }, config), {\n type\n });\n return open(mergedConfig);\n };\n clone[type] = typeOpen;\n });\n return clone;\n }, []);\n // ============================== Return ===============================\n return [wrapAPI, /*#__PURE__*/React.createElement(Holder, Object.assign({\n key: \"message-holder\"\n }, messageConfig, {\n ref: holderRef\n }))];\n}\nexport default function useMessage(messageConfig) {\n return useInternalMessage(messageConfig);\n}","export function getMotion(prefixCls, transitionName) {\n return {\n motionName: transitionName !== null && transitionName !== void 0 ? transitionName : `${prefixCls}-move-up`\n };\n}\n/** Wrap message open with promise like function */\nexport function wrapPromiseFn(openFn) {\n let closeFn;\n const closePromise = new Promise(resolve => {\n closeFn = openFn(() => {\n resolve(true);\n });\n });\n const result = () => {\n closeFn === null || closeFn === void 0 ? void 0 : closeFn();\n };\n result.then = (filled, rejected) => closePromise.then(filled, rejected);\n result.promise = closePromise;\n return result;\n}","import CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport ActionButton from '../_util/ActionButton';\nimport { getTransitionName } from '../_util/motion';\nimport warning from '../_util/warning';\nimport ConfigProvider from '../config-provider';\nimport { useLocale } from '../locale';\nimport Dialog from './Modal';\nexport function ConfirmContent(props) {\n const {\n icon,\n onCancel,\n onOk,\n close,\n onConfirm,\n isSilent,\n okText,\n okButtonProps,\n cancelText,\n cancelButtonProps,\n confirmPrefixCls,\n rootPrefixCls,\n type,\n okCancel,\n footer,\n // Legacy for static function usage\n locale: staticLocale\n } = props;\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 \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n // Icon\n let mergedIcon = icon;\n // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon\n if (!icon && icon !== null) {\n switch (type) {\n case 'info':\n mergedIcon = /*#__PURE__*/React.createElement(InfoCircleFilled, null);\n break;\n case 'success':\n mergedIcon = /*#__PURE__*/React.createElement(CheckCircleFilled, null);\n break;\n case 'error':\n mergedIcon = /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n break;\n default:\n mergedIcon = /*#__PURE__*/React.createElement(ExclamationCircleFilled, null);\n }\n }\n const okType = props.okType || 'primary';\n // 默认为 true,保持向下兼容\n const mergedOkCancel = okCancel !== null && okCancel !== void 0 ? okCancel : type === 'confirm';\n const autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';\n const [locale] = useLocale('Modal');\n const mergedLocale = staticLocale || locale;\n const cancelButton = mergedOkCancel && /*#__PURE__*/React.createElement(ActionButton, {\n isSilent: isSilent,\n actionFn: onCancel,\n close: function () {\n close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(false);\n },\n autoFocus: autoFocusButton === 'cancel',\n buttonProps: cancelButtonProps,\n prefixCls: `${rootPrefixCls}-btn`\n }, cancelText || (mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.cancelText));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-body-wrapper`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-body`\n }, mergedIcon, props.title === undefined ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: `${confirmPrefixCls}-title`\n }, props.title), /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-content`\n }, props.content)), footer === undefined ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-btns`\n }, cancelButton, /*#__PURE__*/React.createElement(ActionButton, {\n isSilent: isSilent,\n type: okType,\n actionFn: onOk,\n close: function () {\n close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(true);\n },\n autoFocus: autoFocusButton === 'ok',\n buttonProps: okButtonProps,\n prefixCls: `${rootPrefixCls}-btn`\n }, okText || (mergedOkCancel ? mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.okText : mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.justOkText))) : footer);\n}\nconst ConfirmDialog = props => {\n const {\n close,\n zIndex,\n afterClose,\n visible,\n open,\n keyboard,\n centered,\n getContainer,\n maskStyle,\n direction,\n prefixCls,\n wrapClassName,\n rootPrefixCls,\n iconPrefixCls,\n theme,\n bodyStyle,\n closable = false,\n closeIcon,\n modalRender,\n focusTriggerAfterClose\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(visible === undefined, 'Modal', `\\`visible\\` is deprecated, please use \\`open\\` instead.`) : void 0;\n }\n const confirmPrefixCls = `${prefixCls}-confirm`;\n const width = props.width || 416;\n const style = props.style || {};\n const mask = props.mask === undefined ? true : props.mask;\n // 默认为 false,保持旧版默认行为\n const maskClosable = props.maskClosable === undefined ? false : props.maskClosable;\n const classString = classNames(confirmPrefixCls, `${confirmPrefixCls}-${props.type}`, {\n [`${confirmPrefixCls}-rtl`]: direction === 'rtl'\n }, props.className);\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n direction: direction,\n theme: theme\n }, /*#__PURE__*/React.createElement(Dialog, {\n prefixCls: prefixCls,\n className: classString,\n wrapClassName: classNames({\n [`${confirmPrefixCls}-centered`]: !!props.centered\n }, wrapClassName),\n onCancel: () => close === null || close === void 0 ? void 0 : close({\n triggerCancel: true\n }),\n open: open,\n title: \"\",\n footer: null,\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(ConfirmContent, Object.assign({}, props, {\n confirmPrefixCls: confirmPrefixCls\n }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n ConfirmDialog.displayName = 'ConfirmDialog';\n}\nexport default ConfirmDialog;","var __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 useClosable from '../_util/hooks/useClosable';\nimport { getTransitionName } from '../_util/motion';\nimport { canUseDocElement } from '../_util/styleChecker';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { NoFormStyle } from '../form/context';\nimport { NoCompactStyle } from '../space/Compact';\nimport { Footer, renderCloseIcon } from './shared';\nimport useStyle from './style';\nlet mousePosition;\n// ref: https://github.com/ant-design/ant-design/issues/15795\nconst getClickPosition = e => {\n mousePosition = {\n x: e.pageX,\n y: e.pageY\n };\n // 100ms 内发生过点击事件,则从点击位置动画展示\n // 否则直接 zoom 展示\n // 这样可以兼容非点击方式展开\n setTimeout(() => {\n mousePosition = null;\n }, 100);\n};\n// 只有点击事件支持从鼠标位置动画展开\nif (canUseDocElement()) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\nconst Modal = props => {\n var _a;\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction,\n modal\n } = React.useContext(ConfigContext);\n const handleCancel = e => {\n const {\n onCancel\n } = props;\n onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);\n };\n const handleOk = e => {\n const {\n onOk\n } = props;\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 const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n open,\n wrapClassName,\n centered,\n getContainer,\n closeIcon,\n closable,\n focusTriggerAfterClose = true,\n style,\n // Deprecated\n visible,\n width = 520,\n footer\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"open\", \"wrapClassName\", \"centered\", \"getContainer\", \"closeIcon\", \"closable\", \"focusTriggerAfterClose\", \"style\", \"visible\", \"width\", \"footer\"]);\n const prefixCls = getPrefixCls('modal', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const wrapClassNameExtended = classNames(wrapClassName, {\n [`${prefixCls}-centered`]: !!centered,\n [`${prefixCls}-wrap-rtl`]: direction === 'rtl'\n });\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('visible' in props), 'Modal', '`visible` is deprecated, please use `open` instead.') : void 0;\n }\n const dialogFooter = footer === undefined ? /*#__PURE__*/React.createElement(Footer, Object.assign({}, props, {\n onOk: handleOk,\n onCancel: handleCancel\n })) : footer;\n const [mergedClosable, mergedCloseIcon] = useClosable(closable, closeIcon, icon => renderCloseIcon(prefixCls, icon), /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n }), true);\n return wrapSSR( /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, /*#__PURE__*/React.createElement(Dialog, Object.assign({\n width: width\n }, restProps, {\n getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,\n prefixCls: prefixCls,\n rootClassName: classNames(hashId, rootClassName),\n wrapClassName: wrapClassNameExtended,\n footer: dialogFooter,\n visible: open !== null && open !== void 0 ? open : visible,\n mousePosition: (_a = restProps.mousePosition) !== null && _a !== void 0 ? _a : mousePosition,\n onClose: handleCancel,\n closable: mergedClosable,\n closeIcon: mergedCloseIcon,\n focusTriggerAfterClose: focusTriggerAfterClose,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName),\n className: classNames(hashId, className, modal === null || modal === void 0 ? void 0 : modal.className),\n style: Object.assign(Object.assign({}, modal === null || modal === void 0 ? void 0 : modal.style), style)\n })))));\n};\nexport default Modal;","import _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 { render as reactRender, unmount as reactUnmount } from \"rc-util/es/React/render\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { globalConfig, warnContext } from '../config-provider';\nimport ConfirmDialog from './ConfirmDialog';\nimport destroyFns from './destroyFns';\nimport { getConfirmLocale } from './locale';\nlet defaultRootPrefixCls = '';\nfunction getRootPrefixCls() {\n return defaultRootPrefixCls;\n}\nexport default function confirm(config) {\n // Warning if exist theme\n if (process.env.NODE_ENV !== 'production') {\n warnContext('Modal');\n }\n const container = document.createDocumentFragment();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n let currentConfig = Object.assign(Object.assign({}, config), {\n close,\n open: true\n });\n let 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 const triggerCancel = args.some(param => param && param.triggerCancel);\n if (config.onCancel && triggerCancel) {\n config.onCancel.apply(config, [() => {}].concat(_toConsumableArray(args.slice(1))));\n }\n for (let i = 0; i < destroyFns.length; i++) {\n const 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 {\n okText,\n cancelText,\n prefixCls: customizePrefixCls,\n getContainer\n } = _a,\n props = __rest(_a, [\"okText\", \"cancelText\", \"prefixCls\", \"getContainer\"]);\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(() => {\n const runtimeLocale = getConfirmLocale();\n const {\n getPrefixCls,\n getIconPrefixCls,\n getTheme\n } = globalConfig();\n // because Modal.config \b set rootPrefixCls, which is different from other components\n const rootPrefixCls = getPrefixCls(undefined, getRootPrefixCls());\n const prefixCls = customizePrefixCls || `${rootPrefixCls}-modal`;\n const iconPrefixCls = getIconPrefixCls();\n const theme = getTheme();\n let mergedGetContainer = getContainer;\n if (mergedGetContainer === false) {\n mergedGetContainer = undefined;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Modal', 'Static method not support `getContainer` to be `false` since it do not have context env.') : void 0;\n }\n }\n reactRender( /*#__PURE__*/React.createElement(ConfirmDialog, Object.assign({}, props, {\n getContainer: mergedGetContainer,\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n okText: okText,\n locale: runtimeLocale,\n theme: theme,\n cancelText: cancelText || runtimeLocale.cancelText\n })), container);\n });\n }\n function close() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n currentConfig = Object.assign(Object.assign({}, currentConfig), {\n open: false,\n 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 = Object.assign(Object.assign({}, currentConfig), configUpdate);\n }\n render(currentConfig);\n }\n render(currentConfig);\n destroyFns.push(close);\n return {\n destroy: close,\n update\n };\n}\nexport function withWarn(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'warning'\n });\n}\nexport function withInfo(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'info'\n });\n}\nexport function withSuccess(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'success'\n });\n}\nexport function withError(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'error'\n });\n}\nexport function withConfirm(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'confirm'\n });\n}\nexport function modalGlobalConfig(_ref) {\n let {\n rootPrefixCls\n } = _ref;\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Modal', 'Modal.config is deprecated. Please use ConfigProvider.config instead.') : void 0;\n defaultRootPrefixCls = rootPrefixCls;\n}","const destroyFns = [];\nexport default destroyFns;","/* eslint-disable react/jsx-no-useless-fragment */\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 { Panel } from 'rc-dialog';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { ConfirmContent } from './ConfirmDialog';\nimport { Footer, renderCloseIcon } from './shared';\nimport useStyle from './style';\nimport { withPureRenderTheme } from '../_util/PurePanel';\nconst PurePanel = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n closeIcon,\n closable,\n type,\n title,\n children\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"closeIcon\", \"closable\", \"type\", \"title\", \"children\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n const prefixCls = customizePrefixCls || getPrefixCls('modal');\n const [, hashId] = useStyle(prefixCls);\n const confirmPrefixCls = `${prefixCls}-confirm`;\n // Choose target props by confirm mark\n let additionalProps = {};\n if (type) {\n additionalProps = {\n closable: closable !== null && closable !== void 0 ? closable : false,\n title: '',\n footer: '',\n children: /*#__PURE__*/React.createElement(ConfirmContent, Object.assign({}, props, {\n confirmPrefixCls: confirmPrefixCls,\n rootPrefixCls: rootPrefixCls,\n content: children\n }))\n };\n } else {\n additionalProps = {\n closable: closable !== null && closable !== void 0 ? closable : true,\n title,\n footer: props.footer === undefined ? /*#__PURE__*/React.createElement(Footer, Object.assign({}, props)) : props.footer,\n children\n };\n }\n return /*#__PURE__*/React.createElement(Panel, Object.assign({\n prefixCls: prefixCls,\n className: classNames(hashId, `${prefixCls}-pure-panel`, type && confirmPrefixCls, type && `${confirmPrefixCls}-${type}`, className)\n }, restProps, {\n closeIcon: renderCloseIcon(prefixCls, closeIcon),\n closable: closable\n }, additionalProps));\n};\nexport default withPureRenderTheme(PurePanel);","'use client';\n\nimport confirm, { modalGlobalConfig, withConfirm, withError, withInfo, withSuccess, withWarn } from './confirm';\nimport destroyFns from './destroyFns';\nimport OriginModal from './Modal';\nimport PurePanel from './PurePanel';\nimport useModal from './useModal';\nfunction modalWarn(props) {\n return confirm(withWarn(props));\n}\nconst 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 const close = destroyFns.pop();\n if (close) {\n close();\n }\n }\n};\nModal.config = modalGlobalConfig;\nModal._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n Modal.displayName = 'Modal';\n}\nexport default Modal;","import defaultLocale from '../locale/en_US';\nlet runtimeLocale = Object.assign({}, defaultLocale.Modal);\nlet localeList = [];\nconst generateLocale = () => localeList.reduce((merged, locale) => Object.assign(Object.assign({}, merged), locale), defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n const cloneLocale = Object.assign({}, newLocale);\n localeList.push(cloneLocale);\n runtimeLocale = generateLocale();\n return () => {\n localeList = localeList.filter(locale => locale !== cloneLocale);\n runtimeLocale = generateLocale();\n };\n }\n runtimeLocale = Object.assign({}, defaultLocale.Modal);\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nimport { DisabledContextProvider } from '../config-provider/DisabledContext';\nimport { useLocale } from '../locale';\nimport { getConfirmLocale } from './locale';\nexport function renderCloseIcon(prefixCls, closeIcon) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-x`\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n }));\n}\nexport const Footer = props => {\n const {\n okText,\n okType = 'primary',\n cancelText,\n confirmLoading,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps\n } = props;\n const [locale] = useLocale('Modal', getConfirmLocale());\n return /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: false\n }, /*#__PURE__*/React.createElement(Button, Object.assign({\n onClick: onCancel\n }, cancelButtonProps), cancelText || (locale === null || locale === void 0 ? void 0 : locale.cancelText)), /*#__PURE__*/React.createElement(Button, Object.assign({}, convertLegacyProps(okType), {\n loading: confirmLoading,\n onClick: onOk\n }, okButtonProps), okText || (locale === null || locale === void 0 ? void 0 : locale.okText)));\n};","import { clearFix, genFocusStyle, resetComponent } from '../../style';\nimport { initFadeMotion, initZoomMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nfunction box(position) {\n return {\n position,\n inset: 0\n };\n}\nexport const genModalMaskStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n return [{\n [`${componentCls}-root`]: {\n [`${componentCls}${antCls}-zoom-enter, ${componentCls}${antCls}-zoom-appear`]: {\n // reset scale avoid mousePosition bug\n transform: 'none',\n opacity: 0,\n animationDuration: token.motionDurationSlow,\n // https://github.com/ant-design/ant-design/issues/11777\n userSelect: 'none'\n },\n // https://github.com/ant-design/ant-design/issues/37329\n // https://github.com/ant-design/ant-design/issues/40272\n [`${componentCls}${antCls}-zoom-leave ${componentCls}-content`]: {\n pointerEvents: 'none'\n },\n [`${componentCls}-mask`]: Object.assign(Object.assign({}, box('fixed')), {\n zIndex: token.zIndexPopupBase,\n height: '100%',\n backgroundColor: token.colorBgMask,\n pointerEvents: 'none',\n [`${componentCls}-hidden`]: {\n display: 'none'\n }\n }),\n [`${componentCls}-wrap`]: Object.assign(Object.assign({}, box('fixed')), {\n zIndex: token.zIndexPopupBase,\n overflow: 'auto',\n outline: 0,\n WebkitOverflowScrolling: 'touch',\n // Note: Firefox not support `:has` yet\n [`&:has(${componentCls}${antCls}-zoom-enter), &:has(${componentCls}${antCls}-zoom-appear)`]: {\n pointerEvents: 'none'\n }\n })\n }\n }, {\n [`${componentCls}-root`]: initFadeMotion(token)\n }];\n};\nconst genModalStyle = token => {\n const {\n componentCls\n } = token;\n return [\n // ======================== Root =========================\n {\n [`${componentCls}-root`]: {\n [`${componentCls}-wrap-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-centered`]: {\n textAlign: 'center',\n '&::before': {\n display: 'inline-block',\n width: 0,\n height: '100%',\n verticalAlign: 'middle',\n content: '\"\"'\n },\n [componentCls]: {\n top: 0,\n display: 'inline-block',\n paddingBottom: 0,\n textAlign: 'start',\n verticalAlign: 'middle'\n }\n },\n [`@media (max-width: ${token.screenSMMax})`]: {\n [componentCls]: {\n maxWidth: 'calc(100vw - 16px)',\n margin: `${token.marginXS} auto`\n },\n [`${componentCls}-centered`]: {\n [componentCls]: {\n flex: 1\n }\n }\n }\n }\n },\n // ======================== Modal ========================\n {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n pointerEvents: 'none',\n position: 'relative',\n top: 100,\n width: 'auto',\n maxWidth: `calc(100vw - ${token.margin * 2}px)`,\n margin: '0 auto',\n paddingBottom: token.paddingLG,\n [`${componentCls}-title`]: {\n margin: 0,\n color: token.titleColor,\n fontWeight: token.fontWeightStrong,\n fontSize: token.titleFontSize,\n lineHeight: token.titleLineHeight,\n wordWrap: 'break-word'\n },\n [`${componentCls}-content`]: {\n position: 'relative',\n backgroundColor: token.contentBg,\n backgroundClip: 'padding-box',\n border: 0,\n borderRadius: token.borderRadiusLG,\n boxShadow: token.boxShadow,\n pointerEvents: 'auto',\n padding: `${token.paddingMD}px ${token.paddingContentHorizontalLG}px`\n },\n [`${componentCls}-close`]: Object.assign({\n position: 'absolute',\n top: (token.modalHeaderHeight - token.modalCloseBtnSize) / 2,\n insetInlineEnd: (token.modalHeaderHeight - token.modalCloseBtnSize) / 2,\n zIndex: token.zIndexPopupBase + 10,\n padding: 0,\n color: token.modalCloseIconColor,\n fontWeight: token.fontWeightStrong,\n lineHeight: 1,\n textDecoration: 'none',\n background: 'transparent',\n borderRadius: token.borderRadiusSM,\n width: token.modalCloseBtnSize,\n height: token.modalCloseBtnSize,\n border: 0,\n outline: 0,\n cursor: 'pointer',\n transition: `color ${token.motionDurationMid}, background-color ${token.motionDurationMid}`,\n '&-x': {\n display: 'flex',\n fontSize: token.fontSizeLG,\n fontStyle: 'normal',\n lineHeight: `${token.modalCloseBtnSize}px`,\n justifyContent: 'center',\n textTransform: 'none',\n textRendering: 'auto'\n },\n '&:hover': {\n color: token.modalIconHoverColor,\n backgroundColor: token.wireframe ? 'transparent' : token.colorFillContent,\n textDecoration: 'none'\n },\n '&:active': {\n backgroundColor: token.wireframe ? 'transparent' : token.colorFillContentHover\n }\n }, genFocusStyle(token)),\n [`${componentCls}-header`]: {\n color: token.colorText,\n background: token.headerBg,\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`,\n marginBottom: token.marginXS\n },\n [`${componentCls}-body`]: {\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n wordWrap: 'break-word'\n },\n [`${componentCls}-footer`]: {\n textAlign: 'end',\n background: token.footerBg,\n marginTop: token.marginSM,\n [`${token.antCls}-btn + ${token.antCls}-btn:not(${token.antCls}-dropdown-trigger)`]: {\n marginBottom: 0,\n marginInlineStart: token.marginXS\n }\n },\n [`${componentCls}-open`]: {\n overflow: 'hidden'\n }\n })\n },\n // ======================== Pure =========================\n {\n [`${componentCls}-pure-panel`]: {\n top: 'auto',\n padding: 0,\n display: 'flex',\n flexDirection: 'column',\n [`${componentCls}-content,\n ${componentCls}-body,\n ${componentCls}-confirm-body-wrapper`]: {\n display: 'flex',\n flexDirection: 'column',\n flex: 'auto'\n },\n [`${componentCls}-confirm-body`]: {\n marginBottom: 'auto'\n }\n }\n }];\n};\nconst genModalConfirmStyle = token => {\n const {\n componentCls\n } = token;\n const confirmComponentCls = `${componentCls}-confirm`;\n return {\n [confirmComponentCls]: {\n '&-rtl': {\n direction: 'rtl'\n },\n [`${token.antCls}-modal-header`]: {\n display: 'none'\n },\n [`${confirmComponentCls}-body-wrapper`]: Object.assign({}, clearFix()),\n [`${confirmComponentCls}-body`]: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n [`${confirmComponentCls}-title`]: {\n flex: '0 0 100%',\n display: 'block',\n // create BFC to avoid\n // https://user-images.githubusercontent.com/507615/37702510-ba844e06-2d2d-11e8-9b67-8e19be57f445.png\n overflow: 'hidden',\n color: token.colorTextHeading,\n fontWeight: token.fontWeightStrong,\n fontSize: token.titleFontSize,\n lineHeight: token.titleLineHeight,\n [`+ ${confirmComponentCls}-content`]: {\n marginBlockStart: token.marginXS,\n flexBasis: '100%',\n maxWidth: `calc(100% - ${token.modalConfirmIconSize + token.marginSM}px)`\n }\n },\n [`${confirmComponentCls}-content`]: {\n color: token.colorText,\n fontSize: token.fontSize\n },\n [`> ${token.iconCls}`]: {\n flex: 'none',\n marginInlineEnd: token.marginSM,\n fontSize: token.modalConfirmIconSize,\n [`+ ${confirmComponentCls}-title`]: {\n flex: 1\n },\n // `content` after `icon` should set marginLeft\n [`+ ${confirmComponentCls}-title + ${confirmComponentCls}-content`]: {\n marginInlineStart: token.modalConfirmIconSize + token.marginSM\n }\n }\n },\n [`${confirmComponentCls}-btns`]: {\n textAlign: 'end',\n marginTop: token.marginSM,\n [`${token.antCls}-btn + ${token.antCls}-btn`]: {\n marginBottom: 0,\n marginInlineStart: token.marginXS\n }\n }\n },\n [`${confirmComponentCls}-error ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorError\n },\n [`${confirmComponentCls}-warning ${confirmComponentCls}-body > ${token.iconCls},\n ${confirmComponentCls}-confirm ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorWarning\n },\n [`${confirmComponentCls}-info ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorInfo\n },\n [`${confirmComponentCls}-success ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorSuccess\n }\n };\n};\nconst genRTLStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-root`]: {\n [`${componentCls}-wrap-rtl`]: {\n direction: 'rtl',\n [`${componentCls}-confirm-body`]: {\n direction: 'rtl'\n }\n }\n }\n };\n};\nconst genWireframeStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n const confirmComponentCls = `${componentCls}-confirm`;\n return {\n [componentCls]: {\n [`${componentCls}-content`]: {\n padding: 0\n },\n [`${componentCls}-header`]: {\n padding: token.modalHeaderPadding,\n borderBottom: `${token.modalHeaderBorderWidth}px ${token.modalHeaderBorderStyle} ${token.modalHeaderBorderColorSplit}`,\n marginBottom: 0\n },\n [`${componentCls}-body`]: {\n padding: token.modalBodyPadding\n },\n [`${componentCls}-footer`]: {\n padding: `${token.modalFooterPaddingVertical}px ${token.modalFooterPaddingHorizontal}px`,\n borderTop: `${token.modalFooterBorderWidth}px ${token.modalFooterBorderStyle} ${token.modalFooterBorderColorSplit}`,\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`,\n marginTop: 0\n }\n },\n [confirmComponentCls]: {\n [`${antCls}-modal-body`]: {\n padding: `${token.padding * 2}px ${token.padding * 2}px ${token.paddingLG}px`\n },\n [`${confirmComponentCls}-body`]: {\n [`> ${token.iconCls}`]: {\n marginInlineEnd: token.margin,\n // `content` after `icon` should set marginLeft\n [`+ ${confirmComponentCls}-title + ${confirmComponentCls}-content`]: {\n marginInlineStart: token.modalConfirmIconSize + token.margin\n }\n }\n },\n [`${confirmComponentCls}-btns`]: {\n marginTop: token.marginLG\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Modal', token => {\n const headerPaddingVertical = token.padding;\n const headerFontSize = token.fontSizeHeading5;\n const headerLineHeight = token.lineHeightHeading5;\n const modalToken = mergeToken(token, {\n modalBodyPadding: token.paddingLG,\n modalHeaderPadding: `${headerPaddingVertical}px ${token.paddingLG}px`,\n modalHeaderBorderWidth: token.lineWidth,\n modalHeaderBorderStyle: token.lineType,\n modalHeaderBorderColorSplit: token.colorSplit,\n modalHeaderHeight: headerLineHeight * headerFontSize + headerPaddingVertical * 2,\n modalFooterBorderColorSplit: token.colorSplit,\n modalFooterBorderStyle: token.lineType,\n modalFooterPaddingVertical: token.paddingXS,\n modalFooterPaddingHorizontal: token.padding,\n modalFooterBorderWidth: token.lineWidth,\n modalIconHoverColor: token.colorIconHover,\n modalCloseIconColor: token.colorIcon,\n modalCloseBtnSize: token.fontSize * token.lineHeight,\n modalConfirmIconSize: token.fontSize * token.lineHeight\n });\n return [genModalStyle(modalToken), genModalConfirmStyle(modalToken), genRTLStyle(modalToken), genModalMaskStyle(modalToken), token.wireframe && genWireframeStyle(modalToken), initZoomMotion(modalToken, 'zoom')];\n}, token => ({\n footerBg: 'transparent',\n headerBg: token.colorBgElevated,\n titleLineHeight: token.lineHeightHeading5,\n titleFontSize: token.fontSizeHeading5,\n contentBg: token.colorBgElevated,\n titleColor: token.colorTextHeading\n}));","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nexport default function usePatchElement() {\n const [elements, setElements] = React.useState([]);\n const patchElement = React.useCallback(element => {\n // append a new element to elements (and create a new ref)\n setElements(originElements => [].concat(_toConsumableArray(originElements), [element]));\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 () => {\n setElements(originElements => originElements.filter(ele => ele !== element));\n };\n }, []);\n return [elements, patchElement];\n}","import _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 * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport defaultLocale from '../../locale/en_US';\nimport useLocale from '../../locale/useLocale';\nimport ConfirmDialog from '../ConfirmDialog';\nconst HookModal = (_a, ref) => {\n var _b;\n var {\n afterClose: hookAfterClose,\n config\n } = _a,\n restProps = __rest(_a, [\"afterClose\", \"config\"]);\n const [open, setOpen] = React.useState(true);\n const [innerConfig, setInnerConfig] = React.useState(config);\n const {\n direction,\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('modal');\n const rootPrefixCls = getPrefixCls();\n const afterClose = () => {\n var _a;\n hookAfterClose();\n (_a = innerConfig.afterClose) === null || _a === void 0 ? void 0 : _a.call(innerConfig);\n };\n const close = function () {\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 const triggerCancel = args.some(param => param && param.triggerCancel);\n if (innerConfig.onCancel && triggerCancel) {\n innerConfig.onCancel.apply(innerConfig, [() => {}].concat(_toConsumableArray(args.slice(1))));\n }\n };\n React.useImperativeHandle(ref, () => ({\n destroy: close,\n update: newConfig => {\n setInnerConfig(originConfig => Object.assign(Object.assign({}, originConfig), newConfig));\n }\n }));\n const mergedOkCancel = (_b = innerConfig.okCancel) !== null && _b !== void 0 ? _b : innerConfig.type === 'confirm';\n const [contextLocale] = useLocale('Modal', defaultLocale.Modal);\n return /*#__PURE__*/React.createElement(ConfirmDialog, Object.assign({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls\n }, innerConfig, {\n close: close,\n open: open,\n afterClose: afterClose,\n okText: innerConfig.okText || (mergedOkCancel ? contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.okText : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.justOkText),\n direction: innerConfig.direction || direction,\n cancelText: innerConfig.cancelText || (contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.cancelText)\n }, restProps));\n};\nexport default /*#__PURE__*/React.forwardRef(HookModal);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport usePatchElement from '../../_util/hooks/usePatchElement';\nimport { withConfirm, withError, withInfo, withSuccess, withWarn } from '../confirm';\nimport destroyFns from '../destroyFns';\nimport HookModal from './HookModal';\nlet uuid = 0;\nconst ElementsHolder = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef((_props, ref) => {\n const [elements, patchElement] = usePatchElement();\n React.useImperativeHandle(ref, () => ({\n patchElement\n }), []);\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/React.createElement(React.Fragment, null, elements);\n}));\nfunction useModal() {\n const holderRef = React.useRef(null);\n // ========================== Effect ==========================\n const [actionQueue, setActionQueue] = React.useState([]);\n React.useEffect(() => {\n if (actionQueue.length) {\n const cloneQueue = _toConsumableArray(actionQueue);\n cloneQueue.forEach(action => {\n action();\n });\n setActionQueue([]);\n }\n }, [actionQueue]);\n // =========================== Hook ===========================\n const getConfirmFunc = React.useCallback(withFunc => function hookConfirm(config) {\n var _a;\n uuid += 1;\n const modalRef = /*#__PURE__*/React.createRef();\n // Proxy to promise with `onClose`\n let resolvePromise;\n const promise = new Promise(resolve => {\n resolvePromise = resolve;\n });\n let silent = false;\n let closeFunc;\n const modal = /*#__PURE__*/React.createElement(HookModal, {\n key: `modal-${uuid}`,\n config: withFunc(config),\n ref: modalRef,\n afterClose: () => {\n closeFunc === null || closeFunc === void 0 ? void 0 : closeFunc();\n },\n isSilent: () => silent,\n onConfirm: confirmed => {\n resolvePromise(confirmed);\n }\n });\n closeFunc = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.patchElement(modal);\n if (closeFunc) {\n destroyFns.push(closeFunc);\n }\n const instance = {\n 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(prev => [].concat(_toConsumableArray(prev), [destroyAction]));\n }\n },\n 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(prev => [].concat(_toConsumableArray(prev), [updateAction]));\n }\n },\n then: resolve => {\n silent = true;\n return promise.then(resolve);\n }\n };\n return instance;\n }, []);\n const fns = React.useMemo(() => ({\n info: getConfirmFunc(withInfo),\n success: getConfirmFunc(withSuccess),\n error: getConfirmFunc(withError),\n warning: getConfirmFunc(withWarn),\n confirm: getConfirmFunc(withConfirm)\n }), []);\n return [fns, /*#__PURE__*/React.createElement(ElementsHolder, {\n key: \"modal-holder\",\n ref: holderRef\n })];\n}\nexport default useModal;","var __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 CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport { Notice } from 'rc-notification';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nexport const TypeIcon = {\n info: /*#__PURE__*/React.createElement(InfoCircleFilled, null),\n success: /*#__PURE__*/React.createElement(CheckCircleFilled, null),\n error: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n warning: /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n loading: /*#__PURE__*/React.createElement(LoadingOutlined, null)\n};\nexport function getCloseIcon(prefixCls, closeIcon) {\n if (closeIcon === null || closeIcon === false) {\n return null;\n }\n return closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-x`\n }, /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n }));\n}\nconst typeToIcon = {\n success: CheckCircleFilled,\n info: InfoCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled\n};\nexport const PureContent = props => {\n const {\n prefixCls,\n icon,\n type,\n message,\n description,\n btn,\n role = 'alert'\n } = props;\n let iconNode = null;\n if (icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-icon`\n }, icon);\n } else if (type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n className: classNames(`${prefixCls}-icon`, `${prefixCls}-icon-${type}`)\n });\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames({\n [`${prefixCls}-with-icon`]: iconNode\n }),\n role: role\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-message`\n }, message), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, description), btn && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-btn`\n }, btn));\n};\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n const {\n prefixCls: staticPrefixCls,\n className,\n icon,\n type,\n message,\n description,\n btn,\n closable = true,\n closeIcon\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"icon\", \"type\", \"message\", \"description\", \"btn\", \"closable\", \"closeIcon\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('notification');\n const noticePrefixCls = `${prefixCls}-notice`;\n const [, hashId] = useStyle(prefixCls);\n return /*#__PURE__*/React.createElement(Notice, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n className: classNames(className, hashId, `${noticePrefixCls}-pure-panel`),\n eventKey: \"pure\",\n duration: null,\n closable: closable,\n closeIcon: getCloseIcon(prefixCls, closeIcon),\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: noticePrefixCls,\n icon: icon,\n type: type,\n message: message,\n description: description,\n btn: btn\n })\n }));\n};\nexport default PurePanel;","'use client';\n\nimport * as React from 'react';\nimport { render } from \"rc-util/es/React/render\";\nimport ConfigProvider, { globalConfig, warnContext } from '../config-provider';\nimport PurePanel from './PurePanel';\nimport useNotification, { useInternalNotification } from './useNotification';\nlet notification = null;\nlet act = callback => callback();\nlet taskQueue = [];\nlet defaultGlobalConfig = {};\nfunction getGlobalContext() {\n const {\n prefixCls: globalPrefixCls,\n getContainer: globalGetContainer,\n rtl,\n maxCount,\n top,\n bottom\n } = defaultGlobalConfig;\n const mergedPrefixCls = globalPrefixCls !== null && globalPrefixCls !== void 0 ? globalPrefixCls : globalConfig().getPrefixCls('notification');\n const mergedContainer = (globalGetContainer === null || globalGetContainer === void 0 ? void 0 : globalGetContainer()) || document.body;\n return {\n prefixCls: mergedPrefixCls,\n getContainer: () => mergedContainer,\n rtl,\n maxCount,\n top,\n bottom\n };\n}\nconst GlobalHolder = /*#__PURE__*/React.forwardRef((_, ref) => {\n const [notificationConfig, setNotificationConfig] = React.useState(getGlobalContext);\n const [api, holder] = useInternalNotification(notificationConfig);\n const global = globalConfig();\n const rootPrefixCls = global.getRootPrefixCls();\n const rootIconPrefixCls = global.getIconPrefixCls();\n const theme = global.getTheme();\n const sync = () => {\n setNotificationConfig(getGlobalContext);\n };\n React.useEffect(sync, []);\n React.useImperativeHandle(ref, () => {\n const instance = Object.assign({}, api);\n Object.keys(instance).forEach(method => {\n instance[method] = function () {\n sync();\n return api[method].apply(api, arguments);\n };\n });\n return {\n instance,\n sync\n };\n });\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: rootIconPrefixCls,\n theme: theme\n }, holder);\n});\nfunction flushNotice() {\n if (!notification) {\n const holderFragment = document.createDocumentFragment();\n const newNotification = {\n fragment: holderFragment\n };\n notification = newNotification;\n // Delay render to avoid sync issue\n act(() => {\n render( /*#__PURE__*/React.createElement(GlobalHolder, {\n ref: node => {\n const {\n instance,\n sync\n } = node || {};\n Promise.resolve().then(() => {\n if (!newNotification.instance && instance) {\n newNotification.instance = instance;\n newNotification.sync = sync;\n flushNotice();\n }\n });\n }\n }), holderFragment);\n });\n return;\n }\n // Notification not ready\n if (!notification.instance) {\n return;\n }\n // >>> Execute task\n taskQueue.forEach(task => {\n // eslint-disable-next-line default-case\n switch (task.type) {\n case 'open':\n {\n act(() => {\n notification.instance.open(Object.assign(Object.assign({}, defaultGlobalConfig), task.config));\n });\n break;\n }\n case 'destroy':\n act(() => {\n notification === null || notification === void 0 ? void 0 : notification.instance.destroy(task.key);\n });\n break;\n }\n });\n // Clean up\n taskQueue = [];\n}\n// ==============================================================================\n// == Export ==\n// ==============================================================================\nfunction setNotificationGlobalConfig(config) {\n defaultGlobalConfig = Object.assign(Object.assign({}, defaultGlobalConfig), config);\n // Trigger sync for it\n act(() => {\n var _a;\n (_a = notification === null || notification === void 0 ? void 0 : notification.sync) === null || _a === void 0 ? void 0 : _a.call(notification);\n });\n}\nfunction open(config) {\n // Warning if exist theme\n if (process.env.NODE_ENV !== 'production') {\n warnContext('notification');\n }\n taskQueue.push({\n type: 'open',\n config\n });\n flushNotice();\n}\nfunction destroy(key) {\n taskQueue.push({\n type: 'destroy',\n key\n });\n flushNotice();\n}\nconst methods = ['success', 'info', 'warning', 'error'];\nconst baseStaticMethods = {\n open,\n destroy,\n config: setNotificationGlobalConfig,\n useNotification,\n _InternalPanelDoNotUseOrYouWillBeFired: PurePanel\n};\nconst staticMethods = baseStaticMethods;\nmethods.forEach(type => {\n staticMethods[type] = config => open(Object.assign(Object.assign({}, config), {\n type\n }));\n});\n// ==============================================================================\n// == Test ==\n// ==============================================================================\nconst noop = () => {};\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actWrapper = noop;\nif (process.env.NODE_ENV === 'test') {\n actWrapper = wrapper => {\n act = wrapper;\n };\n}\nexport default staticMethods;","import { Keyframes } from '@ant-design/cssinjs';\nconst genNotificationPlacementStyle = token => {\n const {\n componentCls,\n width,\n notificationMarginEdge\n } = token;\n const notificationTopFadeIn = new Keyframes('antNotificationTopFadeIn', {\n '0%': {\n marginTop: '-100%',\n opacity: 0\n },\n '100%': {\n marginTop: 0,\n opacity: 1\n }\n });\n const notificationBottomFadeIn = new Keyframes('antNotificationBottomFadeIn', {\n '0%': {\n marginBottom: '-100%',\n opacity: 0\n },\n '100%': {\n marginBottom: 0,\n opacity: 1\n }\n });\n const notificationLeftFadeIn = new Keyframes('antNotificationLeftFadeIn', {\n '0%': {\n right: {\n _skip_check_: true,\n value: width\n },\n opacity: 0\n },\n '100%': {\n right: {\n _skip_check_: true,\n value: 0\n },\n opacity: 1\n }\n });\n return {\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n marginInline: 0\n },\n [`&${componentCls}-top`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationTopFadeIn\n }\n },\n [`&${componentCls}-bottom`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationBottomFadeIn\n }\n },\n [`&${componentCls}-topLeft, &${componentCls}-bottomLeft`]: {\n marginInlineEnd: 0,\n marginInlineStart: notificationMarginEdge,\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationLeftFadeIn\n }\n }\n };\n};\nexport default genNotificationPlacementStyle;","import { Keyframes } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genNotificationPlacementStyle from './placement';\nconst genNotificationStyle = token => {\n const {\n iconCls,\n componentCls,\n // .ant-notification\n boxShadow,\n fontSizeLG,\n notificationMarginBottom,\n borderRadiusLG,\n colorSuccess,\n colorInfo,\n colorWarning,\n colorError,\n colorTextHeading,\n notificationBg,\n notificationPadding,\n notificationMarginEdge,\n motionDurationMid,\n motionEaseInOut,\n fontSize,\n lineHeight,\n width,\n notificationIconSize,\n colorText\n } = token;\n const noticeCls = `${componentCls}-notice`;\n const notificationFadeIn = new Keyframes('antNotificationFadeIn', {\n '0%': {\n left: {\n _skip_check_: true,\n value: width\n },\n opacity: 0\n },\n '100%': {\n left: {\n _skip_check_: true,\n value: 0\n },\n opacity: 1\n }\n });\n const notificationFadeOut = new Keyframes('antNotificationFadeOut', {\n '0%': {\n maxHeight: token.animationMaxHeight,\n marginBottom: notificationMarginBottom,\n opacity: 1\n },\n '100%': {\n maxHeight: 0,\n marginBottom: 0,\n paddingTop: 0,\n paddingBottom: 0,\n opacity: 0\n }\n });\n const noticeStyle = {\n position: 'relative',\n width,\n maxWidth: `calc(100vw - ${notificationMarginEdge * 2}px)`,\n marginBottom: notificationMarginBottom,\n marginInlineStart: 'auto',\n padding: notificationPadding,\n overflow: 'hidden',\n lineHeight,\n wordWrap: 'break-word',\n background: notificationBg,\n borderRadius: borderRadiusLG,\n boxShadow,\n [`${componentCls}-close-icon`]: {\n fontSize,\n cursor: 'pointer'\n },\n [`${noticeCls}-message`]: {\n marginBottom: token.marginXS,\n color: colorTextHeading,\n fontSize: fontSizeLG,\n lineHeight: token.lineHeightLG\n },\n [`${noticeCls}-description`]: {\n fontSize,\n color: colorText\n },\n [`&${noticeCls}-closable ${noticeCls}-message`]: {\n paddingInlineEnd: token.paddingLG\n },\n [`${noticeCls}-with-icon ${noticeCls}-message`]: {\n marginBottom: token.marginXS,\n marginInlineStart: token.marginSM + notificationIconSize,\n fontSize: fontSizeLG\n },\n [`${noticeCls}-with-icon ${noticeCls}-description`]: {\n marginInlineStart: token.marginSM + notificationIconSize,\n fontSize\n },\n // Icon & color style in different selector level\n // https://github.com/ant-design/ant-design/issues/16503\n // https://github.com/ant-design/ant-design/issues/15512\n [`${noticeCls}-icon`]: {\n position: 'absolute',\n fontSize: notificationIconSize,\n lineHeight: 0,\n // icon-font\n [`&-success${iconCls}`]: {\n color: colorSuccess\n },\n [`&-info${iconCls}`]: {\n color: colorInfo\n },\n [`&-warning${iconCls}`]: {\n color: colorWarning\n },\n [`&-error${iconCls}`]: {\n color: colorError\n }\n },\n [`${noticeCls}-close`]: {\n position: 'absolute',\n top: token.notificationPaddingVertical,\n insetInlineEnd: token.notificationPaddingHorizontal,\n color: token.colorIcon,\n outline: 'none',\n width: token.notificationCloseButtonSize,\n height: token.notificationCloseButtonSize,\n borderRadius: token.borderRadiusSM,\n transition: `background-color ${token.motionDurationMid}, color ${token.motionDurationMid}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n '&:hover': {\n color: token.colorIconHover,\n backgroundColor: token.wireframe ? 'transparent' : token.colorFillContent\n }\n },\n [`${noticeCls}-btn`]: {\n float: 'right',\n marginTop: token.marginSM\n }\n };\n return [\n // ============================ Holder ============================\n {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'fixed',\n zIndex: token.zIndexPopup,\n marginInlineEnd: notificationMarginEdge,\n [`${componentCls}-hook-holder`]: {\n position: 'relative'\n },\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n [noticeCls]: {\n marginInline: 'auto auto'\n }\n },\n [`&${componentCls}-topLeft, &${componentCls}-bottomLeft`]: {\n [noticeCls]: {\n marginInlineEnd: 'auto',\n marginInlineStart: 0\n }\n },\n // animation\n [`${componentCls}-fade-enter, ${componentCls}-fade-appear`]: {\n animationDuration: token.motionDurationMid,\n animationTimingFunction: motionEaseInOut,\n animationFillMode: 'both',\n opacity: 0,\n animationPlayState: 'paused'\n },\n [`${componentCls}-fade-leave`]: {\n animationTimingFunction: motionEaseInOut,\n animationFillMode: 'both',\n animationDuration: motionDurationMid,\n animationPlayState: 'paused'\n },\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: notificationFadeIn,\n animationPlayState: 'running'\n },\n [`${componentCls}-fade-leave${componentCls}-fade-leave-active`]: {\n animationName: notificationFadeOut,\n animationPlayState: 'running'\n }\n }), genNotificationPlacementStyle(token)), {\n // RTL\n '&-rtl': {\n direction: 'rtl',\n [`${noticeCls}-btn`]: {\n float: 'left'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [componentCls]: {\n [noticeCls]: Object.assign({}, noticeStyle)\n }\n },\n // ============================= Pure =============================\n {\n [`${noticeCls}-pure-panel`]: Object.assign(Object.assign({}, noticeStyle), {\n margin: 0\n })\n }];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Notification', token => {\n const notificationPaddingVertical = token.paddingMD;\n const notificationPaddingHorizontal = token.paddingLG;\n const notificationToken = mergeToken(token, {\n // index.less variables\n notificationBg: token.colorBgElevated,\n notificationPaddingVertical,\n notificationPaddingHorizontal,\n notificationIconSize: token.fontSizeLG * token.lineHeightLG,\n notificationCloseButtonSize: token.controlHeightLG * 0.55,\n notificationMarginBottom: token.margin,\n notificationPadding: `${token.paddingMD}px ${token.paddingContentHorizontalLG}px`,\n notificationMarginEdge: token.marginLG,\n animationMaxHeight: 150\n });\n return [genNotificationStyle(notificationToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 50,\n width: 384\n}), {\n clientOnly: true\n});","export function getPlacementStyle(placement, top, bottom) {\n let style;\n switch (placement) {\n case 'top':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top,\n bottom: 'auto'\n };\n break;\n case 'topLeft':\n style = {\n left: 0,\n top,\n bottom: 'auto'\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top,\n bottom: 'auto'\n };\n break;\n case 'bottom':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: 'auto',\n bottom\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom\n };\n break;\n }\n return style;\n}\nexport function getMotion(prefixCls) {\n return {\n motionName: `${prefixCls}-fade`\n };\n}","var __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 classNames from 'classnames';\nimport { useNotification as useRcNotification } from 'rc-notification';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { getCloseIcon, PureContent } from './PurePanel';\nimport useStyle from './style';\nimport { getMotion, getPlacementStyle } from './util';\nconst DEFAULT_OFFSET = 24;\nconst DEFAULT_DURATION = 4.5;\nconst DEFAULT_PLACEMENT = 'topRight';\nconst Holder = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n top,\n bottom,\n prefixCls: staticPrefixCls,\n getContainer: staticGetContainer,\n maxCount,\n rtl,\n onAllRemoved\n } = props;\n const {\n getPrefixCls,\n getPopupContainer,\n notification\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('notification');\n // =============================== Style ===============================\n const getStyle = placement => getPlacementStyle(placement, top !== null && top !== void 0 ? top : DEFAULT_OFFSET, bottom !== null && bottom !== void 0 ? bottom : DEFAULT_OFFSET);\n // Style\n const [, hashId] = useStyle(prefixCls);\n const getClassName = () => classNames(hashId, {\n [`${prefixCls}-rtl`]: rtl\n });\n // ============================== Motion ===============================\n const getNotificationMotion = () => getMotion(prefixCls);\n // ============================== Origin ===============================\n const [api, holder] = useRcNotification({\n prefixCls,\n style: getStyle,\n className: getClassName,\n motion: getNotificationMotion,\n closable: true,\n closeIcon: getCloseIcon(prefixCls),\n duration: DEFAULT_DURATION,\n getContainer: () => (staticGetContainer === null || staticGetContainer === void 0 ? void 0 : staticGetContainer()) || (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer()) || document.body,\n maxCount,\n onAllRemoved\n });\n // ================================ Ref ================================\n React.useImperativeHandle(ref, () => Object.assign(Object.assign({}, api), {\n prefixCls,\n hashId,\n notification\n }));\n return holder;\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nexport function useInternalNotification(notificationConfig) {\n const holderRef = React.useRef(null);\n // ================================ API ================================\n const wrapAPI = React.useMemo(() => {\n // Wrap with notification content\n // >>> Open\n const open = config => {\n var _a;\n if (!holderRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Notification', 'You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead.') : void 0;\n return;\n }\n const {\n open: originOpen,\n prefixCls,\n hashId,\n notification\n } = holderRef.current;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n message,\n description,\n icon,\n type,\n btn,\n className,\n style,\n role = 'alert',\n closeIcon\n } = config,\n restConfig = __rest(config, [\"message\", \"description\", \"icon\", \"type\", \"btn\", \"className\", \"style\", \"role\", \"closeIcon\"]);\n const realCloseIcon = getCloseIcon(noticePrefixCls, closeIcon);\n return originOpen(Object.assign(Object.assign({\n // use placement from props instead of hard-coding \"topRight\"\n placement: (_a = notificationConfig === null || notificationConfig === void 0 ? void 0 : notificationConfig.placement) !== null && _a !== void 0 ? _a : DEFAULT_PLACEMENT\n }, restConfig), {\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: noticePrefixCls,\n icon: icon,\n type: type,\n message: message,\n description: description,\n btn: btn,\n role: role\n }),\n className: classNames(type && `${noticePrefixCls}-${type}`, hashId, className, notification === null || notification === void 0 ? void 0 : notification.className),\n style: Object.assign(Object.assign({}, notification === null || notification === void 0 ? void 0 : notification.style), style),\n closeIcon: realCloseIcon,\n closable: !!realCloseIcon\n }));\n };\n // >>> destroy\n const destroy = key => {\n var _a, _b;\n if (key !== undefined) {\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.close(key);\n } else {\n (_b = holderRef.current) === null || _b === void 0 ? void 0 : _b.destroy();\n }\n };\n const clone = {\n open,\n destroy\n };\n const keys = ['success', 'info', 'warning', 'error'];\n keys.forEach(type => {\n clone[type] = config => open(Object.assign(Object.assign({}, config), {\n type\n }));\n });\n return clone;\n }, []);\n // ============================== Return ===============================\n return [wrapAPI, /*#__PURE__*/React.createElement(Holder, Object.assign({\n key: \"notification-holder\"\n }, notificationConfig, {\n ref: holderRef\n }))];\n}\nexport default function useNotification(notificationConfig) {\n return useInternalNotification(notificationConfig);\n}","// This icon file is generated automatically.\nvar DoubleLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\" } }] }, \"name\": \"double-left\", \"theme\": \"outlined\" };\nexport default DoubleLeftOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DoubleLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleLeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DoubleLeftOutlined = function DoubleLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DoubleLeftOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n DoubleLeftOutlined.displayName = 'DoubleLeftOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(DoubleLeftOutlined);","// This icon file is generated automatically.\nvar DoubleRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\" } }] }, \"name\": \"double-right\", \"theme\": \"outlined\" };\nexport default DoubleRightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DoubleRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DoubleRightOutlined = function DoubleRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DoubleRightOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n DoubleRightOutlined.displayName = 'DoubleRightOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(DoubleRightOutlined);","var KeyCode = {\n ZERO: 48,\n NINE: 57,\n NUMPAD_ZERO: 96,\n NUMPAD_NINE: 105,\n BACKSPACE: 8,\n DELETE: 46,\n ENTER: 13,\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};\nexport default KeyCode;","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\";\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport KEYCODE from './KeyCode';\nvar Options = /*#__PURE__*/function (_React$Component) {\n _inherits(Options, _React$Component);\n var _super = _createSuper(Options);\n function Options() {\n var _this;\n _classCallCheck(this, Options);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n goInputText: ''\n };\n _this.getValidValue = function () {\n var goInputText = _this.state.goInputText;\n // eslint-disable-next-line no-restricted-globals\n return !goInputText || Number.isNaN(goInputText) ? undefined : Number(goInputText);\n };\n _this.buildOptionText = function (value) {\n return \"\".concat(value, \" \").concat(_this.props.locale.items_per_page);\n };\n _this.changeSize = function (value) {\n _this.props.changeSize(Number(value));\n };\n _this.handleChange = function (e) {\n _this.setState({\n goInputText: e.target.value\n });\n };\n _this.handleBlur = function (e) {\n var _this$props = _this.props,\n goButton = _this$props.goButton,\n quickGo = _this$props.quickGo,\n rootPrefixCls = _this$props.rootPrefixCls;\n var goInputText = _this.state.goInputText;\n if (goButton || goInputText === '') {\n return;\n }\n _this.setState({\n goInputText: ''\n });\n if (e.relatedTarget && (e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item-link\")) >= 0 || e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item\")) >= 0)) {\n return;\n }\n quickGo(_this.getValidValue());\n };\n _this.go = function (e) {\n var goInputText = _this.state.goInputText;\n if (goInputText === '') {\n return;\n }\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.setState({\n goInputText: ''\n });\n _this.props.quickGo(_this.getValidValue());\n }\n };\n return _this;\n }\n _createClass(Options, [{\n key: \"getPageSizeOptions\",\n value: function getPageSizeOptions() {\n var _this$props2 = this.props,\n pageSize = _this$props2.pageSize,\n pageSizeOptions = _this$props2.pageSizeOptions;\n if (pageSizeOptions.some(function (option) {\n return option.toString() === pageSize.toString();\n })) {\n return pageSizeOptions;\n }\n return pageSizeOptions.concat([pageSize.toString()]).sort(function (a, b) {\n // eslint-disable-next-line no-restricted-globals\n var numberA = Number.isNaN(Number(a)) ? 0 : Number(a);\n // eslint-disable-next-line no-restricted-globals\n var numberB = Number.isNaN(Number(b)) ? 0 : Number(b);\n return numberA - numberB;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props3 = this.props,\n pageSize = _this$props3.pageSize,\n locale = _this$props3.locale,\n rootPrefixCls = _this$props3.rootPrefixCls,\n changeSize = _this$props3.changeSize,\n quickGo = _this$props3.quickGo,\n goButton = _this$props3.goButton,\n selectComponentClass = _this$props3.selectComponentClass,\n buildOptionText = _this$props3.buildOptionText,\n selectPrefixCls = _this$props3.selectPrefixCls,\n disabled = _this$props3.disabled;\n var goInputText = this.state.goInputText;\n var prefixCls = \"\".concat(rootPrefixCls, \"-options\");\n var Select = selectComponentClass;\n var changeSelect = null;\n var goInput = null;\n var gotoButton = null;\n if (!changeSize && !quickGo) {\n return null;\n }\n var pageSizeOptions = this.getPageSizeOptions();\n if (changeSize && Select) {\n var options = pageSizeOptions.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(Select.Option, {\n key: i,\n value: opt.toString()\n }, (buildOptionText || _this2.buildOptionText)(opt));\n });\n changeSelect = /*#__PURE__*/React.createElement(Select, {\n disabled: disabled,\n prefixCls: selectPrefixCls,\n showSearch: false,\n className: \"\".concat(prefixCls, \"-size-changer\"),\n optionLabelProp: \"children\",\n popupMatchSelectWidth: false,\n value: (pageSize || pageSizeOptions[0]).toString(),\n onChange: this.changeSize,\n getPopupContainer: function getPopupContainer(triggerNode) {\n return triggerNode.parentNode;\n },\n \"aria-label\": locale.page_size,\n defaultOpen: false\n }, options);\n }\n if (quickGo) {\n if (goButton) {\n gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.go,\n onKeyUp: this.go,\n disabled: disabled,\n className: \"\".concat(prefixCls, \"-quick-jumper-button\")\n }, locale.jump_to_confirm) : /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.go,\n onKeyUp: this.go\n }, goButton);\n }\n goInput = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-quick-jumper\")\n }, locale.jump_to, /*#__PURE__*/React.createElement(\"input\", {\n disabled: disabled,\n type: \"text\",\n value: goInputText,\n onChange: this.handleChange,\n onKeyUp: this.go,\n onBlur: this.handleBlur,\n \"aria-label\": locale.page\n }), locale.page, gotoButton);\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls)\n }, changeSelect, goInput);\n }\n }]);\n return Options;\n}(React.Component);\nOptions.defaultProps = {\n pageSizeOptions: ['10', '20', '50', '100']\n};\nexport default Options;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint react/prop-types: 0 */\nimport classNames from 'classnames';\nimport React from 'react';\nvar Pager = function Pager(props) {\n var _classNames;\n var rootPrefixCls = props.rootPrefixCls,\n page = props.page,\n active = props.active,\n className = props.className,\n showTitle = props.showTitle,\n onClick = props.onClick,\n onKeyPress = props.onKeyPress,\n itemRender = props.itemRender;\n var prefixCls = \"\".concat(rootPrefixCls, \"-item\");\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(page), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), !page), _defineProperty(_classNames, props.className, className), _classNames));\n var handleClick = function handleClick() {\n onClick(page);\n };\n var handleKeyPress = function handleKeyPress(e) {\n onKeyPress(e, onClick, page);\n };\n var pager = itemRender(page, 'page', /*#__PURE__*/React.createElement(\"a\", {\n rel: \"nofollow\"\n }, page));\n if (!pager) return null;\n return /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? page.toString() : null,\n className: cls,\n onClick: handleClick,\n onKeyPress: handleKeyPress,\n tabIndex: 0\n }, pager);\n};\nexport default Pager;","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 _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 classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport React, { cloneElement, isValidElement } from 'react';\nimport KEYCODE from './KeyCode';\nimport LOCALE from './locale/zh_CN';\nimport Options from './Options';\nimport Pager from './Pager';\nfunction noop() {}\nfunction isInteger(v) {\n var value = Number(v);\n return (\n // eslint-disable-next-line no-restricted-globals\n typeof value === 'number' && !Number.isNaN(value) && isFinite(value) && Math.floor(value) === value\n );\n}\nvar defaultItemRender = function defaultItemRender(page, type, element) {\n return element;\n};\nfunction calculatePage(p, state, props) {\n var pageSize = typeof p === 'undefined' ? state.pageSize : p;\n return Math.floor((props.total - 1) / pageSize) + 1;\n}\nvar Pagination = /*#__PURE__*/function (_React$Component) {\n _inherits(Pagination, _React$Component);\n var _super = _createSuper(Pagination);\n function Pagination(props) {\n var _this;\n _classCallCheck(this, Pagination);\n _this = _super.call(this, props);\n _this.paginationNode = /*#__PURE__*/React.createRef();\n _this.getJumpPrevPage = function () {\n return Math.max(1, _this.state.current - (_this.props.showLessItems ? 3 : 5));\n };\n _this.getJumpNextPage = function () {\n return Math.min(calculatePage(undefined, _this.state, _this.props), _this.state.current + (_this.props.showLessItems ? 3 : 5));\n };\n _this.getItemIcon = function (icon, label) {\n var prefixCls = _this.props.prefixCls;\n var iconNode = icon || /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: \"\".concat(prefixCls, \"-item-link\")\n });\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, _this.props));\n }\n return iconNode;\n };\n _this.isValid = function (page) {\n var total = _this.props.total;\n return isInteger(page) && page !== _this.state.current && isInteger(total) && total > 0;\n };\n _this.shouldDisplayQuickJumper = function () {\n var _this$props = _this.props,\n showQuickJumper = _this$props.showQuickJumper,\n total = _this$props.total;\n var pageSize = _this.state.pageSize;\n if (total <= pageSize) {\n return false;\n }\n return showQuickJumper;\n };\n _this.handleKeyDown = function (e) {\n if (e.keyCode === KEYCODE.ARROW_UP || e.keyCode === KEYCODE.ARROW_DOWN) {\n e.preventDefault();\n }\n };\n _this.handleKeyUp = function (e) {\n var value = _this.getValidValue(e);\n var currentInputValue = _this.state.currentInputValue;\n if (value !== currentInputValue) {\n _this.setState({\n currentInputValue: value\n });\n }\n if (e.keyCode === KEYCODE.ENTER) {\n _this.handleChange(value);\n } else if (e.keyCode === KEYCODE.ARROW_UP) {\n _this.handleChange(value - 1);\n } else if (e.keyCode === KEYCODE.ARROW_DOWN) {\n _this.handleChange(value + 1);\n }\n };\n _this.handleBlur = function (e) {\n var value = _this.getValidValue(e);\n _this.handleChange(value);\n };\n _this.changePageSize = function (size) {\n var current = _this.state.current;\n var newCurrent = calculatePage(size, _this.state, _this.props);\n current = current > newCurrent ? newCurrent : current;\n // fix the issue:\n // Once 'total' is 0, 'current' in 'onShowSizeChange' is 0, which is not correct.\n if (newCurrent === 0) {\n // eslint-disable-next-line prefer-destructuring\n current = _this.state.current;\n }\n if (typeof size === 'number') {\n if (!('pageSize' in _this.props)) {\n _this.setState({\n pageSize: size\n });\n }\n if (!('current' in _this.props)) {\n _this.setState({\n current: current,\n currentInputValue: current\n });\n }\n }\n _this.props.onShowSizeChange(current, size);\n if ('onChange' in _this.props && _this.props.onChange) {\n _this.props.onChange(current, size);\n }\n };\n _this.handleChange = function (page) {\n var _this$props2 = _this.props,\n disabled = _this$props2.disabled,\n onChange = _this$props2.onChange;\n var _this$state = _this.state,\n pageSize = _this$state.pageSize,\n current = _this$state.current,\n currentInputValue = _this$state.currentInputValue;\n if (_this.isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, _this.state, _this.props);\n var newPage = page;\n if (page > currentPage) {\n newPage = currentPage;\n } else if (page < 1) {\n newPage = 1;\n }\n if (!('current' in _this.props)) {\n _this.setState({\n current: newPage\n });\n }\n if (newPage !== currentInputValue) {\n _this.setState({\n currentInputValue: newPage\n });\n }\n onChange(newPage, pageSize);\n return newPage;\n }\n return current;\n };\n _this.prev = function () {\n if (_this.hasPrev()) {\n _this.handleChange(_this.state.current - 1);\n }\n };\n _this.next = function () {\n if (_this.hasNext()) {\n _this.handleChange(_this.state.current + 1);\n }\n };\n _this.jumpPrev = function () {\n _this.handleChange(_this.getJumpPrevPage());\n };\n _this.jumpNext = function () {\n _this.handleChange(_this.getJumpNextPage());\n };\n _this.hasPrev = function () {\n return _this.state.current > 1;\n };\n _this.hasNext = function () {\n return _this.state.current < calculatePage(undefined, _this.state, _this.props);\n };\n _this.runIfEnter = function (event, callback) {\n if (event.key === 'Enter' || event.charCode === 13) {\n for (var _len = arguments.length, restParams = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n callback.apply(void 0, restParams);\n }\n };\n _this.runIfEnterPrev = function (e) {\n _this.runIfEnter(e, _this.prev);\n };\n _this.runIfEnterNext = function (e) {\n _this.runIfEnter(e, _this.next);\n };\n _this.runIfEnterJumpPrev = function (e) {\n _this.runIfEnter(e, _this.jumpPrev);\n };\n _this.runIfEnterJumpNext = function (e) {\n _this.runIfEnter(e, _this.jumpNext);\n };\n _this.handleGoTO = function (e) {\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.handleChange(_this.state.currentInputValue);\n }\n };\n _this.renderPrev = function (prevPage) {\n var _this$props3 = _this.props,\n prevIcon = _this$props3.prevIcon,\n itemRender = _this$props3.itemRender;\n var prevButton = itemRender(prevPage, 'prev', _this.getItemIcon(prevIcon, 'prev page'));\n var disabled = !_this.hasPrev();\n return /*#__PURE__*/isValidElement(prevButton) ? /*#__PURE__*/cloneElement(prevButton, {\n disabled: disabled\n }) : prevButton;\n };\n _this.renderNext = function (nextPage) {\n var _this$props4 = _this.props,\n nextIcon = _this$props4.nextIcon,\n itemRender = _this$props4.itemRender;\n var nextButton = itemRender(nextPage, 'next', _this.getItemIcon(nextIcon, 'next page'));\n var disabled = !_this.hasNext();\n return /*#__PURE__*/isValidElement(nextButton) ? /*#__PURE__*/cloneElement(nextButton, {\n disabled: disabled\n }) : nextButton;\n };\n var hasOnChange = props.onChange !== noop;\n var hasCurrent = ('current' in props);\n if (hasCurrent && !hasOnChange) {\n // eslint-disable-next-line no-console\n console.warn('Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');\n }\n var _current = props.defaultCurrent;\n if ('current' in props) {\n // eslint-disable-next-line prefer-destructuring\n _current = props.current;\n }\n var _pageSize = props.defaultPageSize;\n if ('pageSize' in props) {\n // eslint-disable-next-line prefer-destructuring\n _pageSize = props.pageSize;\n }\n _current = Math.min(_current, calculatePage(_pageSize, undefined, props));\n _this.state = {\n current: _current,\n currentInputValue: _current,\n pageSize: _pageSize\n };\n return _this;\n }\n _createClass(Pagination, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(_, prevState) {\n // When current page change, fix focused style of prev item\n // A hacky solution of https://github.com/ant-design/ant-design/issues/8948\n var prefixCls = this.props.prefixCls;\n if (prevState.current !== this.state.current && this.paginationNode.current) {\n var lastCurrentNode = this.paginationNode.current.querySelector(\".\".concat(prefixCls, \"-item-\").concat(prevState.current));\n if (lastCurrentNode && document.activeElement === lastCurrentNode) {\n var _lastCurrentNode$blur;\n lastCurrentNode === null || lastCurrentNode === void 0 ? void 0 : (_lastCurrentNode$blur = lastCurrentNode.blur) === null || _lastCurrentNode$blur === void 0 ? void 0 : _lastCurrentNode$blur.call(lastCurrentNode);\n }\n }\n }\n }, {\n key: \"getValidValue\",\n value: function getValidValue(e) {\n var inputValue = e.target.value;\n var allPages = calculatePage(undefined, this.state, this.props);\n var currentInputValue = this.state.currentInputValue;\n var value;\n if (inputValue === '') {\n value = inputValue;\n // eslint-disable-next-line no-restricted-globals\n } else if (Number.isNaN(Number(inputValue))) {\n value = currentInputValue;\n } else if (inputValue >= allPages) {\n value = allPages;\n } else {\n value = Number(inputValue);\n }\n return value;\n }\n }, {\n key: \"getShowSizeChanger\",\n value: function getShowSizeChanger() {\n var _this$props5 = this.props,\n showSizeChanger = _this$props5.showSizeChanger,\n total = _this$props5.total,\n totalBoundaryShowSizeChanger = _this$props5.totalBoundaryShowSizeChanger;\n if (typeof showSizeChanger !== 'undefined') {\n return showSizeChanger;\n }\n return total > totalBoundaryShowSizeChanger;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n prefixCls = _this$props6.prefixCls,\n className = _this$props6.className,\n style = _this$props6.style,\n disabled = _this$props6.disabled,\n hideOnSinglePage = _this$props6.hideOnSinglePage,\n total = _this$props6.total,\n locale = _this$props6.locale,\n showQuickJumper = _this$props6.showQuickJumper,\n showLessItems = _this$props6.showLessItems,\n showTitle = _this$props6.showTitle,\n showTotal = _this$props6.showTotal,\n simple = _this$props6.simple,\n itemRender = _this$props6.itemRender,\n showPrevNextJumpers = _this$props6.showPrevNextJumpers,\n jumpPrevIcon = _this$props6.jumpPrevIcon,\n jumpNextIcon = _this$props6.jumpNextIcon,\n selectComponentClass = _this$props6.selectComponentClass,\n selectPrefixCls = _this$props6.selectPrefixCls,\n pageSizeOptions = _this$props6.pageSizeOptions;\n var _this$state2 = this.state,\n current = _this$state2.current,\n pageSize = _this$state2.pageSize,\n currentInputValue = _this$state2.currentInputValue;\n // When hideOnSinglePage is true and there is only 1 page, hide the pager\n if (hideOnSinglePage === true && total <= pageSize) {\n return null;\n }\n var allPages = calculatePage(undefined, this.state, this.props);\n var pagerList = [];\n var jumpPrev = null;\n var jumpNext = null;\n var firstPager = null;\n var lastPager = null;\n var gotoButton = null;\n var goButton = showQuickJumper && showQuickJumper.goButton;\n var pageBufferSize = showLessItems ? 1 : 2;\n var prevPage = current - 1 > 0 ? current - 1 : 0;\n var nextPage = current + 1 < allPages ? current + 1 : allPages;\n var dataOrAriaAttributeProps = pickAttrs(this.props, {\n aria: true,\n data: true\n });\n var totalText = showTotal && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-total-text\")\n }, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));\n if (simple) {\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, locale.jump_to_confirm);\n } else {\n gotoButton = /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, goButton);\n }\n gotoButton = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(locale.jump_to).concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, gotoButton);\n }\n var _prev = this.renderPrev(prevPage);\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-simple\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), className),\n style: style,\n ref: this.paginationNode\n }, dataOrAriaAttributeProps), totalText, _prev ? /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasPrev())),\n \"aria-disabled\": !this.hasPrev()\n }, _prev) : null, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n value: currentInputValue,\n disabled: disabled,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onChange: this.handleKeyUp,\n onBlur: this.handleBlur,\n size: 3\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-slash\")\n }, \"/\"), allPages), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasNext())),\n \"aria-disabled\": !this.hasNext()\n }, this.renderNext(nextPage)), gotoButton);\n }\n if (allPages <= 3 + pageBufferSize * 2) {\n var pagerProps = {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n showTitle: showTitle,\n itemRender: itemRender\n };\n if (!allPages) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: \"noPager\",\n page: 1,\n className: \"\".concat(prefixCls, \"-item-disabled\")\n })));\n }\n for (var i = 1; i <= allPages; i += 1) {\n var active = current === i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: i,\n page: i,\n active: active\n })));\n }\n } else {\n var prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;\n var jumpPrevContent = itemRender(this.getJumpPrevPage(), 'jump-prev', this.getItemIcon(jumpPrevIcon, 'prev page'));\n var jumpNextContent = itemRender(this.getJumpNextPage(), 'jump-next', this.getItemIcon(jumpNextIcon, 'next page'));\n if (showPrevNextJumpers) {\n jumpPrev = jumpPrevContent ? /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? prevItemTitle : null,\n key: \"prev\",\n onClick: this.jumpPrev,\n tabIndex: 0,\n onKeyPress: this.runIfEnterJumpPrev,\n className: classNames(\"\".concat(prefixCls, \"-jump-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-prev-custom-icon\"), !!jumpPrevIcon))\n }, jumpPrevContent) : null;\n jumpNext = jumpNextContent ? /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? nextItemTitle : null,\n key: \"next\",\n tabIndex: 0,\n onClick: this.jumpNext,\n onKeyPress: this.runIfEnterJumpNext,\n className: classNames(\"\".concat(prefixCls, \"-jump-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-next-custom-icon\"), !!jumpNextIcon))\n }, jumpNextContent) : null;\n }\n lastPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n last: true,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: allPages,\n page: allPages,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n firstPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: 1,\n page: 1,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n var left = Math.max(1, current - pageBufferSize);\n var right = Math.min(current + pageBufferSize, allPages);\n if (current - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n if (allPages - current <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n for (var _i = left; _i <= right; _i += 1) {\n var _active = current === _i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: _i,\n page: _i,\n active: _active,\n showTitle: showTitle,\n itemRender: itemRender\n }));\n }\n if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n pagerList[0] = /*#__PURE__*/cloneElement(pagerList[0], {\n className: \"\".concat(prefixCls, \"-item-after-jump-prev\")\n });\n pagerList.unshift(jumpPrev);\n }\n if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {\n pagerList[pagerList.length - 1] = /*#__PURE__*/cloneElement(pagerList[pagerList.length - 1], {\n className: \"\".concat(prefixCls, \"-item-before-jump-next\")\n });\n pagerList.push(jumpNext);\n }\n if (left !== 1) {\n pagerList.unshift(firstPager);\n }\n if (right !== allPages) {\n pagerList.push(lastPager);\n }\n }\n var prevDisabled = !this.hasPrev() || !allPages;\n var nextDisabled = !this.hasNext() || !allPages;\n var prev = this.renderPrev(prevPage);\n var next = this.renderNext(nextPage);\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n style: style,\n ref: this.paginationNode\n }, dataOrAriaAttributeProps), totalText, prev ? /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: prevDisabled ? null : 0,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), prevDisabled)),\n \"aria-disabled\": prevDisabled\n }, prev) : null, pagerList, next ? /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: nextDisabled ? null : 0,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), nextDisabled)),\n \"aria-disabled\": nextDisabled\n }, next) : null, /*#__PURE__*/React.createElement(Options, {\n disabled: disabled,\n locale: locale,\n rootPrefixCls: prefixCls,\n selectComponentClass: selectComponentClass,\n selectPrefixCls: selectPrefixCls,\n changeSize: this.getShowSizeChanger() ? this.changePageSize : null,\n current: current,\n pageSize: pageSize,\n pageSizeOptions: pageSizeOptions,\n quickGo: this.shouldDisplayQuickJumper() ? this.handleChange : null,\n goButton: goButton\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var newState = {};\n if ('current' in props) {\n newState.current = props.current;\n if (props.current !== prevState.current) {\n newState.currentInputValue = newState.current;\n }\n }\n if ('pageSize' in props && props.pageSize !== prevState.pageSize) {\n var current = prevState.current;\n var newCurrent = calculatePage(props.pageSize, prevState, props);\n current = current > newCurrent ? newCurrent : current;\n if (!('current' in props)) {\n newState.current = current;\n newState.currentInputValue = current;\n }\n newState.pageSize = props.pageSize;\n }\n return newState;\n }\n }]);\n return Pagination;\n}(React.Component);\nPagination.defaultProps = {\n defaultCurrent: 1,\n total: 0,\n defaultPageSize: 10,\n onChange: noop,\n className: '',\n selectPrefixCls: 'rc-select',\n prefixCls: 'rc-pagination',\n selectComponentClass: null,\n hideOnSinglePage: false,\n showPrevNextJumpers: true,\n showQuickJumper: false,\n showLessItems: false,\n showTitle: true,\n onShowSizeChange: noop,\n locale: LOCALE,\n style: {},\n itemRender: defaultItemRender,\n totalBoundaryShowSizeChanger: 50\n};\nexport default Pagination;","import * as React from 'react';\nimport Select from '../select';\nconst MiniSelect = props => /*#__PURE__*/React.createElement(Select, Object.assign({}, props, {\n showSearch: true,\n size: \"small\"\n}));\nconst MiddleSelect = props => /*#__PURE__*/React.createElement(Select, Object.assign({}, props, {\n showSearch: true,\n size: \"middle\"\n}));\nMiniSelect.Option = Select.Option;\nMiddleSelect.Option = Select.Option;\nexport { MiniSelect, MiddleSelect };","import { genBasicInputStyle, genInputSmallStyle, initInputToken } from '../../input/style';\nimport { genFocusOutline, genFocusStyle, resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genPaginationDisabledStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-disabled`]: {\n '&, &:hover': {\n cursor: 'not-allowed',\n [`${componentCls}-item-link`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n '&:focus-visible': {\n cursor: 'not-allowed',\n [`${componentCls}-item-link`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n }\n },\n [`&${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [`${componentCls}-item`]: {\n cursor: 'not-allowed',\n '&:hover, &:active': {\n backgroundColor: 'transparent'\n },\n a: {\n color: token.colorTextDisabled,\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'not-allowed'\n },\n '&-active': {\n borderColor: token.colorBorder,\n backgroundColor: token.itemActiveBgDisabled,\n '&:hover, &:active': {\n backgroundColor: token.itemActiveBgDisabled\n },\n a: {\n color: token.itemActiveColorDisabled\n }\n }\n },\n [`${componentCls}-item-link`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover, &:active': {\n backgroundColor: 'transparent'\n },\n [`${componentCls}-simple&`]: {\n backgroundColor: 'transparent',\n '&:hover, &:active': {\n backgroundColor: 'transparent'\n }\n }\n },\n [`${componentCls}-simple-pager`]: {\n color: token.colorTextDisabled\n },\n [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n [`${componentCls}-item-link-icon`]: {\n opacity: 0\n },\n [`${componentCls}-item-ellipsis`]: {\n opacity: 1\n }\n }\n },\n [`&${componentCls}-simple`]: {\n [`${componentCls}-prev, ${componentCls}-next`]: {\n [`&${componentCls}-disabled ${componentCls}-item-link`]: {\n '&:hover, &:active': {\n backgroundColor: 'transparent'\n }\n }\n }\n }\n };\n};\nconst genPaginationMiniStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`&${componentCls}-mini ${componentCls}-total-text, &${componentCls}-mini ${componentCls}-simple-pager`]: {\n height: token.itemSizeSM,\n lineHeight: `${token.itemSizeSM}px`\n },\n [`&${componentCls}-mini ${componentCls}-item`]: {\n minWidth: token.itemSizeSM,\n height: token.itemSizeSM,\n margin: 0,\n lineHeight: `${token.itemSizeSM - 2}px`\n },\n [`&${componentCls}-mini:not(${componentCls}-disabled) ${componentCls}-item:not(${componentCls}-item-active)`]: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n '&:hover': {\n backgroundColor: token.colorBgTextHover\n },\n '&:active': {\n backgroundColor: token.colorBgTextActive\n }\n },\n [`&${componentCls}-mini ${componentCls}-prev, &${componentCls}-mini ${componentCls}-next`]: {\n minWidth: token.itemSizeSM,\n height: token.itemSizeSM,\n margin: 0,\n lineHeight: `${token.itemSizeSM}px`\n },\n [`&${componentCls}-mini:not(${componentCls}-disabled)`]: {\n [`${componentCls}-prev, ${componentCls}-next`]: {\n [`&:hover ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgTextHover\n },\n [`&:active ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgTextActive\n },\n [`&${componentCls}-disabled:hover ${componentCls}-item-link`]: {\n backgroundColor: 'transparent'\n }\n }\n },\n [`\n &${componentCls}-mini ${componentCls}-prev ${componentCls}-item-link,\n &${componentCls}-mini ${componentCls}-next ${componentCls}-item-link\n `]: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n '&::after': {\n height: token.itemSizeSM,\n lineHeight: `${token.itemSizeSM}px`\n }\n },\n [`&${componentCls}-mini ${componentCls}-jump-prev, &${componentCls}-mini ${componentCls}-jump-next`]: {\n height: token.itemSizeSM,\n marginInlineEnd: 0,\n lineHeight: `${token.itemSizeSM}px`\n },\n [`&${componentCls}-mini ${componentCls}-options`]: {\n marginInlineStart: token.paginationMiniOptionsMarginInlineStart,\n [`&-size-changer`]: {\n top: token.miniOptionsSizeChangerTop\n },\n [`&-quick-jumper`]: {\n height: token.itemSizeSM,\n lineHeight: `${token.itemSizeSM}px`,\n input: Object.assign(Object.assign({}, genInputSmallStyle(token)), {\n width: token.paginationMiniQuickJumperInputWidth,\n height: token.controlHeightSM\n })\n }\n }\n };\n};\nconst genPaginationSimpleStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`\n &${componentCls}-simple ${componentCls}-prev,\n &${componentCls}-simple ${componentCls}-next\n `]: {\n height: token.itemSizeSM,\n lineHeight: `${token.itemSizeSM}px`,\n verticalAlign: 'top',\n [`${componentCls}-item-link`]: {\n height: token.itemSizeSM,\n backgroundColor: 'transparent',\n border: 0,\n '&:hover': {\n backgroundColor: token.colorBgTextHover\n },\n '&:active': {\n backgroundColor: token.colorBgTextActive\n },\n '&::after': {\n height: token.itemSizeSM,\n lineHeight: `${token.itemSizeSM}px`\n }\n }\n },\n [`&${componentCls}-simple ${componentCls}-simple-pager`]: {\n display: 'inline-block',\n height: token.itemSizeSM,\n marginInlineEnd: token.marginXS,\n input: {\n boxSizing: 'border-box',\n height: '100%',\n marginInlineEnd: token.marginXS,\n padding: `0 ${token.paginationItemPaddingInline}px`,\n textAlign: 'center',\n backgroundColor: token.itemInputBg,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadius,\n outline: 'none',\n transition: `border-color ${token.motionDurationMid}`,\n color: 'inherit',\n '&:hover': {\n borderColor: token.colorPrimary\n },\n '&:focus': {\n borderColor: token.colorPrimaryHover,\n boxShadow: `${token.inputOutlineOffset}px 0 ${token.controlOutlineWidth}px ${token.controlOutline}`\n },\n '&[disabled]': {\n color: token.colorTextDisabled,\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n cursor: 'not-allowed'\n }\n }\n }\n };\n};\nconst genPaginationJumpStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n outline: 0,\n [`${componentCls}-item-container`]: {\n position: 'relative',\n [`${componentCls}-item-link-icon`]: {\n color: token.colorPrimary,\n fontSize: token.fontSizeSM,\n opacity: 0,\n transition: `all ${token.motionDurationMid}`,\n '&-svg': {\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n margin: 'auto'\n }\n },\n [`${componentCls}-item-ellipsis`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n display: 'block',\n margin: 'auto',\n color: token.colorTextDisabled,\n fontFamily: 'Arial, Helvetica, sans-serif',\n letterSpacing: token.paginationEllipsisLetterSpacing,\n textAlign: 'center',\n textIndent: token.paginationEllipsisTextIndent,\n opacity: 1,\n transition: `all ${token.motionDurationMid}`\n }\n },\n '&:hover': {\n [`${componentCls}-item-link-icon`]: {\n opacity: 1\n },\n [`${componentCls}-item-ellipsis`]: {\n opacity: 0\n }\n }\n },\n [`\n ${componentCls}-prev,\n ${componentCls}-jump-prev,\n ${componentCls}-jump-next\n `]: {\n marginInlineEnd: token.marginXS\n },\n [`\n ${componentCls}-prev,\n ${componentCls}-next,\n ${componentCls}-jump-prev,\n ${componentCls}-jump-next\n `]: {\n display: 'inline-block',\n minWidth: token.itemSize,\n height: token.itemSize,\n color: token.colorText,\n fontFamily: token.fontFamily,\n lineHeight: `${token.itemSize}px`,\n textAlign: 'center',\n verticalAlign: 'middle',\n listStyle: 'none',\n borderRadius: token.borderRadius,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`\n },\n [`${componentCls}-prev, ${componentCls}-next`]: {\n fontFamily: 'Arial, Helvetica, sans-serif',\n outline: 0,\n button: {\n color: token.colorText,\n cursor: 'pointer',\n userSelect: 'none'\n },\n [`${componentCls}-item-link`]: {\n display: 'block',\n width: '100%',\n height: '100%',\n padding: 0,\n fontSize: token.fontSizeSM,\n textAlign: 'center',\n backgroundColor: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n borderRadius: token.borderRadius,\n outline: 'none',\n transition: `all ${token.motionDurationMid}`\n },\n [`&:hover ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgTextHover\n },\n [`&:active ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgTextActive\n },\n [`&${componentCls}-disabled:hover`]: {\n [`${componentCls}-item-link`]: {\n backgroundColor: 'transparent'\n }\n }\n },\n [`${componentCls}-slash`]: {\n marginInlineEnd: token.paginationSlashMarginInlineEnd,\n marginInlineStart: token.paginationSlashMarginInlineStart\n },\n [`${componentCls}-options`]: {\n display: 'inline-block',\n marginInlineStart: token.margin,\n verticalAlign: 'middle',\n '&-size-changer.-select': {\n display: 'inline-block',\n width: 'auto'\n },\n '&-quick-jumper': {\n display: 'inline-block',\n height: token.controlHeight,\n marginInlineStart: token.marginXS,\n lineHeight: `${token.controlHeight}px`,\n verticalAlign: 'top',\n input: Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n width: token.controlHeightLG * 1.25,\n height: token.controlHeight,\n boxSizing: 'border-box',\n margin: 0,\n marginInlineStart: token.marginXS,\n marginInlineEnd: token.marginXS\n })\n }\n }\n };\n};\nconst genPaginationItemStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-item`]: {\n display: 'inline-block',\n minWidth: token.itemSize,\n height: token.itemSize,\n marginInlineEnd: token.marginXS,\n fontFamily: token.fontFamily,\n lineHeight: `${token.itemSize - 2}px`,\n textAlign: 'center',\n verticalAlign: 'middle',\n listStyle: 'none',\n backgroundColor: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n borderRadius: token.borderRadius,\n outline: 0,\n cursor: 'pointer',\n userSelect: 'none',\n a: {\n display: 'block',\n padding: `0 ${token.paginationItemPaddingInline}px`,\n color: token.colorText,\n '&:hover': {\n textDecoration: 'none'\n }\n },\n [`&:not(${componentCls}-item-active)`]: {\n '&:hover': {\n transition: `all ${token.motionDurationMid}`,\n backgroundColor: token.colorBgTextHover\n },\n '&:active': {\n backgroundColor: token.colorBgTextActive\n }\n },\n '&-active': {\n fontWeight: token.fontWeightStrong,\n backgroundColor: token.itemActiveBg,\n borderColor: token.colorPrimary,\n a: {\n color: token.colorPrimary\n },\n '&:hover': {\n borderColor: token.colorPrimaryHover\n },\n '&:hover a': {\n color: token.colorPrimaryHover\n }\n }\n }\n };\n};\nconst genPaginationStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n 'ul, ol': {\n margin: 0,\n padding: 0,\n listStyle: 'none'\n },\n '&::after': {\n display: 'block',\n clear: 'both',\n height: 0,\n overflow: 'hidden',\n visibility: 'hidden',\n content: '\"\"'\n },\n [`${componentCls}-total-text`]: {\n display: 'inline-block',\n height: token.itemSize,\n marginInlineEnd: token.marginXS,\n lineHeight: `${token.itemSize - 2}px`,\n verticalAlign: 'middle'\n }\n }), genPaginationItemStyle(token)), genPaginationJumpStyle(token)), genPaginationSimpleStyle(token)), genPaginationMiniStyle(token)), genPaginationDisabledStyle(token)), {\n // media query style\n [`@media only screen and (max-width: ${token.screenLG}px)`]: {\n [`${componentCls}-item`]: {\n '&-after-jump-prev, &-before-jump-next': {\n display: 'none'\n }\n }\n },\n [`@media only screen and (max-width: ${token.screenSM}px)`]: {\n [`${componentCls}-options`]: {\n display: 'none'\n }\n }\n }),\n // rtl style\n [`&${token.componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\nconst genBorderedStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}${componentCls}-disabled:not(${componentCls}-mini)`]: {\n '&, &:hover': {\n [`${componentCls}-item-link`]: {\n borderColor: token.colorBorder\n }\n },\n '&:focus-visible': {\n [`${componentCls}-item-link`]: {\n borderColor: token.colorBorder\n }\n },\n [`${componentCls}-item, ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n [`&:hover:not(${componentCls}-item-active)`]: {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n a: {\n color: token.colorTextDisabled\n }\n },\n [`&${componentCls}-item-active`]: {\n backgroundColor: token.itemActiveBgDisabled\n }\n },\n [`${componentCls}-prev, ${componentCls}-next`]: {\n '&:hover button': {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n color: token.colorTextDisabled\n },\n [`${componentCls}-item-link`]: {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder\n }\n }\n },\n [`${componentCls}:not(${componentCls}-mini)`]: {\n [`${componentCls}-prev, ${componentCls}-next`]: {\n '&:hover button': {\n borderColor: token.colorPrimaryHover,\n backgroundColor: token.itemBg\n },\n [`${componentCls}-item-link`]: {\n backgroundColor: token.itemLinkBg,\n borderColor: token.colorBorder\n },\n [`&:hover ${componentCls}-item-link`]: {\n borderColor: token.colorPrimary,\n backgroundColor: token.itemBg,\n color: token.colorPrimary\n },\n [`&${componentCls}-disabled`]: {\n [`${componentCls}-item-link`]: {\n borderColor: token.colorBorder,\n color: token.colorTextDisabled\n }\n }\n },\n [`${componentCls}-item`]: {\n backgroundColor: token.itemBg,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n [`&:hover:not(${componentCls}-item-active)`]: {\n borderColor: token.colorPrimary,\n backgroundColor: token.itemBg,\n a: {\n color: token.colorPrimary\n }\n },\n '&-active': {\n borderColor: token.colorPrimary\n }\n }\n }\n };\n};\nconst genPaginationFocusStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}:not(${componentCls}-disabled)`]: {\n [`${componentCls}-item`]: Object.assign({}, genFocusStyle(token)),\n [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n '&:focus-visible': Object.assign({\n [`${componentCls}-item-link-icon`]: {\n opacity: 1\n },\n [`${componentCls}-item-ellipsis`]: {\n opacity: 0\n }\n }, genFocusOutline(token))\n },\n [`${componentCls}-prev, ${componentCls}-next`]: {\n [`&:focus-visible ${componentCls}-item-link`]: Object.assign({}, genFocusOutline(token))\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Pagination', token => {\n const paginationToken = mergeToken(token, {\n inputOutlineOffset: 0,\n paginationMiniOptionsMarginInlineStart: token.marginXXS / 2,\n paginationMiniQuickJumperInputWidth: token.controlHeightLG * 1.1,\n paginationItemPaddingInline: token.marginXXS * 1.5,\n paginationEllipsisLetterSpacing: token.marginXXS / 2,\n paginationSlashMarginInlineStart: token.marginXXS,\n paginationSlashMarginInlineEnd: token.marginSM,\n paginationEllipsisTextIndent: '0.13em' // magic for ui experience\n }, initInputToken(token));\n return [genPaginationStyle(paginationToken), genPaginationFocusStyle(paginationToken), token.wireframe && genBorderedStyle(paginationToken)];\n}, token => ({\n itemBg: token.colorBgContainer,\n itemSize: token.controlHeight,\n itemSizeSM: token.controlHeightSM,\n itemActiveBg: token.colorBgContainer,\n itemLinkBg: token.colorBgContainer,\n itemActiveColorDisabled: token.colorTextDisabled,\n itemActiveBgDisabled: token.controlItemBgActiveDisabled,\n itemInputBg: token.colorBgContainer,\n miniOptionsSizeChangerTop: 0\n}));","var __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 DoubleLeftOutlined from \"@ant-design/icons/es/icons/DoubleLeftOutlined\";\nimport DoubleRightOutlined from \"@ant-design/icons/es/icons/DoubleRightOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcPagination from 'rc-pagination';\nimport enUS from \"rc-pagination/es/locale/en_US\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport { useLocale } from '../locale';\nimport { MiddleSelect, MiniSelect } from './Select';\nimport useStyle from './style';\nconst Pagination = props => {\n const {\n prefixCls: customizePrefixCls,\n selectPrefixCls: customizeSelectPrefixCls,\n className,\n rootClassName,\n style,\n size: customizeSize,\n locale: customLocale,\n selectComponentClass,\n responsive,\n showSizeChanger\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"selectPrefixCls\", \"className\", \"rootClassName\", \"style\", \"size\", \"locale\", \"selectComponentClass\", \"responsive\", \"showSizeChanger\"]);\n const {\n xs\n } = useBreakpoint(responsive);\n const {\n getPrefixCls,\n direction,\n pagination = {}\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('pagination', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedShowSizeChanger = showSizeChanger !== null && showSizeChanger !== void 0 ? showSizeChanger : pagination.showSizeChanger;\n const iconsProps = React.useMemo(() => {\n const ellipsis = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-item-ellipsis`\n }, \"\\u2022\\u2022\\u2022\");\n const prevIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: `${prefixCls}-item-link`,\n type: \"button\",\n tabIndex: -1\n }, direction === 'rtl' ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null));\n const nextIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: `${prefixCls}-item-link`,\n type: \"button\",\n tabIndex: -1\n }, direction === 'rtl' ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null));\n const jumpPrevIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: `${prefixCls}-item-link`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-item-container`\n }, direction === 'rtl' ? /*#__PURE__*/React.createElement(DoubleRightOutlined, {\n className: `${prefixCls}-item-link-icon`\n }) : /*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n className: `${prefixCls}-item-link-icon`\n }), ellipsis));\n const jumpNextIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: `${prefixCls}-item-link`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-item-container`\n }, direction === 'rtl' ? /*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n className: `${prefixCls}-item-link-icon`\n }) : /*#__PURE__*/React.createElement(DoubleRightOutlined, {\n className: `${prefixCls}-item-link-icon`\n }), ellipsis));\n return {\n prevIcon,\n nextIcon,\n jumpPrevIcon,\n jumpNextIcon\n };\n }, [direction, prefixCls]);\n const [contextLocale] = useLocale('Pagination', enUS);\n const locale = Object.assign(Object.assign({}, contextLocale), customLocale);\n const mergedSize = useSize(customizeSize);\n const isSmall = mergedSize === 'small' || !!(xs && !mergedSize && responsive);\n const selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n const extendedClassName = classNames({\n [`${prefixCls}-mini`]: isSmall,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, pagination === null || pagination === void 0 ? void 0 : pagination.className, className, rootClassName, hashId);\n const mergedStyle = Object.assign(Object.assign({}, pagination === null || pagination === void 0 ? void 0 : pagination.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(RcPagination, Object.assign({}, iconsProps, restProps, {\n style: mergedStyle,\n prefixCls: prefixCls,\n selectPrefixCls: selectPrefixCls,\n className: extendedClassName,\n selectComponentClass: selectComponentClass || (isSmall ? MiniSelect : MiddleSelect),\n locale: locale,\n showSizeChanger: mergedShowSizeChanger\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n Pagination.displayName = 'Pagination';\n}\nexport default Pagination;","'use client';\n\nimport Pagination from './Pagination';\nexport default Pagination;","var __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 { Popup } from 'rc-tooltip';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport useStyle from './style';\nexport const getOverlay = (prefixCls, title, content) => {\n if (!title && !content) return undefined;\n return /*#__PURE__*/React.createElement(React.Fragment, null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, getRenderPropValue(title)), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner-content`\n }, getRenderPropValue(content)));\n};\nexport const RawPurePanel = props => {\n const {\n hashId,\n prefixCls,\n className,\n style,\n placement = 'top',\n title,\n content,\n children\n } = props;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(hashId, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className),\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-arrow`\n }), /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n className: hashId,\n prefixCls: prefixCls\n }), children || getOverlay(prefixCls, title, content)));\n};\nconst PurePanel = props => {\n const {\n prefixCls: customizePrefixCls\n } = props,\n restProps = __rest(props, [\"prefixCls\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('popover', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(RawPurePanel, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n hashId: hashId\n })));\n};\nexport default PurePanel;","'use client';\n\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 { getRenderPropValue } from '../_util/getRenderPropValue';\nimport { getTransitionName } from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport Tooltip from '../tooltip';\nimport PurePanel from './PurePanel';\n// CSSINJS\nimport useStyle from './style';\nconst Overlay = _ref => {\n let {\n title,\n content,\n prefixCls\n } = _ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, getRenderPropValue(title)), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner-content`\n }, getRenderPropValue(content)));\n};\nconst Popover = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n title,\n content,\n overlayClassName,\n placement = 'top',\n trigger = 'hover',\n mouseEnterDelay = 0.1,\n mouseLeaveDelay = 0.1,\n overlayStyle = {}\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"title\", \"content\", \"overlayClassName\", \"placement\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('popover', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const rootPrefixCls = getPrefixCls();\n const overlayCls = classNames(overlayClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(Tooltip, Object.assign({\n placement: placement,\n trigger: trigger,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayStyle: overlayStyle\n }, otherProps, {\n prefixCls: prefixCls,\n overlayClassName: overlayCls,\n ref: ref,\n overlay: title || content ? /*#__PURE__*/React.createElement(Overlay, {\n prefixCls: prefixCls,\n title: title,\n content: content\n }) : null,\n transitionName: getTransitionName(rootPrefixCls, 'zoom-big', otherProps.transitionName),\n \"data-popover-inject\": true\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popover.displayName = 'Popover';\n}\nPopover._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Popover;","import { resetComponent } from '../../style';\nimport { initZoomMotion } from '../../style/motion';\nimport getArrowStyle from '../../style/placementArrow';\nimport { PresetColors, genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genBaseStyle = token => {\n const {\n componentCls,\n popoverColor,\n minWidth,\n fontWeightStrong,\n popoverPadding,\n boxShadowSecondary,\n colorTextHeading,\n borderRadiusLG: borderRadius,\n zIndexPopup,\n marginXS,\n colorBgElevated,\n popoverBg\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: 0,\n // use `left` to fix https://github.com/ant-design/ant-design/issues/39195\n left: {\n _skip_check_: true,\n value: 0\n },\n zIndex: zIndexPopup,\n fontWeight: 'normal',\n whiteSpace: 'normal',\n textAlign: 'start',\n cursor: 'auto',\n userSelect: 'text',\n transformOrigin: `var(--arrow-x, 50%) var(--arrow-y, 50%)`,\n '--antd-arrow-background-color': colorBgElevated,\n '&-rtl': {\n direction: 'rtl'\n },\n '&-hidden': {\n display: 'none'\n },\n [`${componentCls}-content`]: {\n position: 'relative'\n },\n [`${componentCls}-inner`]: {\n backgroundColor: popoverBg,\n backgroundClip: 'padding-box',\n borderRadius,\n boxShadow: boxShadowSecondary,\n padding: popoverPadding\n },\n [`${componentCls}-title`]: {\n minWidth,\n marginBottom: marginXS,\n color: colorTextHeading,\n fontWeight: fontWeightStrong\n },\n [`${componentCls}-inner-content`]: {\n color: popoverColor\n }\n })\n },\n // Arrow Style\n getArrowStyle(token, {\n colorBg: 'var(--antd-arrow-background-color)'\n }),\n // Pure Render\n {\n [`${componentCls}-pure`]: {\n position: 'relative',\n maxWidth: 'none',\n margin: token.sizePopupArrow,\n display: 'inline-block',\n [`${componentCls}-content`]: {\n display: 'inline-block'\n }\n }\n }];\n};\nconst genColorStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: PresetColors.map(colorKey => {\n const lightColor = token[`${colorKey}6`];\n return {\n [`&${componentCls}-${colorKey}`]: {\n '--antd-arrow-background-color': lightColor,\n [`${componentCls}-inner`]: {\n backgroundColor: lightColor\n },\n [`${componentCls}-arrow`]: {\n background: 'transparent'\n }\n }\n };\n })\n };\n};\nconst genWireframeStyle = token => {\n const {\n componentCls,\n lineWidth,\n lineType,\n colorSplit,\n paddingSM,\n controlHeight,\n fontSize,\n lineHeight,\n padding\n } = token;\n const titlePaddingBlockDist = controlHeight - Math.round(fontSize * lineHeight);\n const popoverTitlePaddingBlockTop = titlePaddingBlockDist / 2;\n const popoverTitlePaddingBlockBottom = titlePaddingBlockDist / 2 - lineWidth;\n const popoverPaddingHorizontal = padding;\n return {\n [componentCls]: {\n [`${componentCls}-inner`]: {\n padding: 0\n },\n [`${componentCls}-title`]: {\n margin: 0,\n padding: `${popoverTitlePaddingBlockTop}px ${popoverPaddingHorizontal}px ${popoverTitlePaddingBlockBottom}px`,\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n [`${componentCls}-inner-content`]: {\n padding: `${paddingSM}px ${popoverPaddingHorizontal}px`\n }\n }\n };\n};\nexport default genComponentStyleHook('Popover', token => {\n const {\n colorBgElevated,\n colorText,\n wireframe\n } = token;\n const popoverToken = mergeToken(token, {\n popoverPadding: 12,\n popoverBg: colorBgElevated,\n popoverColor: colorText\n });\n return [genBaseStyle(popoverToken), genColorStyle(popoverToken), wireframe && genWireframeStyle(popoverToken), initZoomMotion(popoverToken, 'zoom-big')];\n}, token => ({\n width: 177,\n minWidth: 177,\n zIndexPopup: token.zIndexPopupBase + 30\n}), {\n deprecatedTokens: [['width', 'minWidth']]\n});","import { useRef, useEffect } from 'react';\nexport var defaultProps = {\n percent: 0,\n prefixCls: 'rc-progress',\n strokeColor: '#2db7f5',\n strokeLinecap: 'round',\n strokeWidth: 1,\n trailColor: '#D9D9D9',\n trailWidth: 1,\n gapPosition: 'bottom'\n};\nexport var useTransitionDuration = function useTransitionDuration() {\n var pathsRef = useRef([]);\n var prevTimeStamp = useRef(null);\n useEffect(function () {\n var now = Date.now();\n var updated = false;\n pathsRef.current.forEach(function (path) {\n if (!path) {\n return;\n }\n updated = true;\n var pathStyle = path.style;\n pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';\n if (prevTimeStamp.current && now - prevTimeStamp.current < 100) {\n pathStyle.transitionDuration = '0s, 0s';\n }\n });\n if (updated) {\n prevTimeStamp.current = Date.now();\n }\n });\n return pathsRef.current;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"percent\", \"prefixCls\", \"strokeColor\", \"strokeLinecap\", \"strokeWidth\", \"style\", \"trailColor\", \"trailWidth\", \"transition\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useTransitionDuration, defaultProps } from './common';\nvar Line = function Line(props) {\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n className = _defaultProps$props.className,\n percent = _defaultProps$props.percent,\n prefixCls = _defaultProps$props.prefixCls,\n strokeColor = _defaultProps$props.strokeColor,\n strokeLinecap = _defaultProps$props.strokeLinecap,\n strokeWidth = _defaultProps$props.strokeWidth,\n style = _defaultProps$props.style,\n trailColor = _defaultProps$props.trailColor,\n trailWidth = _defaultProps$props.trailWidth,\n transition = _defaultProps$props.transition,\n restProps = _objectWithoutProperties(_defaultProps$props, _excluded);\n // eslint-disable-next-line no-param-reassign\n delete restProps.gapPosition;\n var percentList = Array.isArray(percent) ? percent : [percent];\n var strokeColorList = Array.isArray(strokeColor) ? strokeColor : [strokeColor];\n var paths = useTransitionDuration();\n var center = strokeWidth / 2;\n var right = 100 - strokeWidth / 2;\n var pathString = \"M \".concat(strokeLinecap === 'round' ? center : 0, \",\").concat(center, \"\\n L \").concat(strokeLinecap === 'round' ? right : 100, \",\").concat(center);\n var viewBoxString = \"0 0 100 \".concat(strokeWidth);\n var stackPtg = 0;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-line\"), className),\n viewBox: viewBoxString,\n preserveAspectRatio: \"none\",\n style: style\n }, restProps), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-line-trail\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: trailColor,\n strokeWidth: trailWidth || strokeWidth,\n fillOpacity: \"0\"\n }), percentList.map(function (ptg, index) {\n var dashPercent = 1;\n switch (strokeLinecap) {\n case 'round':\n dashPercent = 1 - strokeWidth / 100;\n break;\n case 'square':\n dashPercent = 1 - strokeWidth / 2 / 100;\n break;\n default:\n dashPercent = 1;\n break;\n }\n var pathStyle = {\n strokeDasharray: \"\".concat(ptg * dashPercent, \"px, 100px\"),\n strokeDashoffset: \"-\".concat(stackPtg, \"px\"),\n transition: transition || 'stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear'\n };\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"path\", {\n key: index,\n className: \"\".concat(prefixCls, \"-line-path\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: color,\n strokeWidth: strokeWidth,\n fillOpacity: \"0\",\n ref: function ref(elem) {\n // https://reactjs.org/docs/refs-and-the-dom.html#callback-refs\n // React will call the ref callback with the DOM element when the component mounts,\n // and call it with `null` when it unmounts.\n // Refs are guaranteed to be up-to-date before componentDidMount or componentDidUpdate fires.\n paths[index] = elem;\n },\n style: pathStyle\n });\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n Line.displayName = 'Line';\n}\nexport default Line;","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/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n/** Get unique id for accessibility usage */\nfunction getUUID() {\n var retId;\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 (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_progress_\".concat(getUUID()));\n }, []);\n return id || innerId;\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\";\nvar _excluded = [\"id\", \"prefixCls\", \"steps\", \"strokeWidth\", \"trailWidth\", \"gapDegree\", \"gapPosition\", \"trailColor\", \"strokeLinecap\", \"style\", \"className\", \"strokeColor\", \"percent\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { defaultProps, useTransitionDuration } from './common';\nimport useId from './hooks/useId';\nfunction stripPercentToNumber(percent) {\n return +percent.replace('%', '');\n}\nfunction toArray(value) {\n var mergedValue = value !== null && value !== void 0 ? value : [];\n return Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n}\nvar VIEW_BOX_SIZE = 100;\nvar getCircleStyle = function getCircleStyle(perimeter, perimeterWithoutGap, offset, percent, rotateDeg, gapDegree, gapPosition, strokeColor, strokeLinecap, strokeWidth) {\n var stepSpace = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : 0;\n var offsetDeg = offset / 100 * 360 * ((360 - gapDegree) / 360);\n var positionDeg = gapDegree === 0 ? 0 : {\n bottom: 0,\n top: 180,\n left: 90,\n right: -90\n }[gapPosition];\n var strokeDashoffset = (100 - percent) / 100 * perimeterWithoutGap;\n // Fix percent accuracy when strokeLinecap is round\n // https://github.com/ant-design/ant-design/issues/35009\n if (strokeLinecap === 'round' && percent !== 100) {\n strokeDashoffset += strokeWidth / 2;\n // when percent is small enough (<= 1%), keep smallest value to avoid it's disappearance\n if (strokeDashoffset >= perimeterWithoutGap) {\n strokeDashoffset = perimeterWithoutGap - 0.01;\n }\n }\n return {\n stroke: typeof strokeColor === 'string' ? strokeColor : undefined,\n strokeDasharray: \"\".concat(perimeterWithoutGap, \"px \").concat(perimeter),\n strokeDashoffset: strokeDashoffset + stepSpace,\n transform: \"rotate(\".concat(rotateDeg + offsetDeg + positionDeg, \"deg)\"),\n transformOrigin: '0 0',\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s',\n fillOpacity: 0\n };\n};\nvar Circle = function Circle(props) {\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n id = _defaultProps$props.id,\n prefixCls = _defaultProps$props.prefixCls,\n steps = _defaultProps$props.steps,\n strokeWidth = _defaultProps$props.strokeWidth,\n trailWidth = _defaultProps$props.trailWidth,\n _defaultProps$props$g = _defaultProps$props.gapDegree,\n gapDegree = _defaultProps$props$g === void 0 ? 0 : _defaultProps$props$g,\n gapPosition = _defaultProps$props.gapPosition,\n trailColor = _defaultProps$props.trailColor,\n strokeLinecap = _defaultProps$props.strokeLinecap,\n style = _defaultProps$props.style,\n className = _defaultProps$props.className,\n strokeColor = _defaultProps$props.strokeColor,\n percent = _defaultProps$props.percent,\n restProps = _objectWithoutProperties(_defaultProps$props, _excluded);\n var mergedId = useId(id);\n var gradientId = \"\".concat(mergedId, \"-gradient\");\n var radius = VIEW_BOX_SIZE / 2 - strokeWidth / 2;\n var perimeter = Math.PI * 2 * radius;\n var rotateDeg = gapDegree > 0 ? 90 + gapDegree / 2 : -90;\n var perimeterWithoutGap = perimeter * ((360 - gapDegree) / 360);\n var _ref = _typeof(steps) === 'object' ? steps : {\n count: steps,\n space: 2\n },\n stepCount = _ref.count,\n stepSpace = _ref.space;\n var circleStyle = getCircleStyle(perimeter, perimeterWithoutGap, 0, 100, rotateDeg, gapDegree, gapPosition, trailColor, strokeLinecap, strokeWidth);\n var percentList = toArray(percent);\n var strokeColorList = toArray(strokeColor);\n var gradient = strokeColorList.find(function (color) {\n return color && _typeof(color) === 'object';\n });\n var paths = useTransitionDuration();\n var getStokeList = function getStokeList() {\n var stackPtg = 0;\n return percentList.map(function (ptg, index) {\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n var stroke = color && _typeof(color) === 'object' ? \"url(#\".concat(gradientId, \")\") : undefined;\n var circleStyleForStack = getCircleStyle(perimeter, perimeterWithoutGap, stackPtg, ptg, rotateDeg, gapDegree, gapPosition, color, strokeLinecap, strokeWidth);\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"circle\", {\n key: index,\n className: \"\".concat(prefixCls, \"-circle-path\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: stroke,\n strokeLinecap: strokeLinecap,\n strokeWidth: strokeWidth,\n opacity: ptg === 0 ? 0 : 1,\n style: circleStyleForStack,\n ref: function ref(elem) {\n // https://reactjs.org/docs/refs-and-the-dom.html#callback-refs\n // React will call the ref callback with the DOM element when the component mounts,\n // and call it with `null` when it unmounts.\n // Refs are guaranteed to be up-to-date before componentDidMount or componentDidUpdate fires.\n paths[index] = elem;\n }\n });\n }).reverse();\n };\n var getStepStokeList = function getStepStokeList() {\n // only show the first percent when pass steps\n var current = Math.round(stepCount * (percentList[0] / 100));\n var stepPtg = 100 / stepCount;\n var stackPtg = 0;\n return new Array(stepCount).fill(null).map(function (_, index) {\n var color = index <= current - 1 ? strokeColorList[0] : trailColor;\n var stroke = color && _typeof(color) === 'object' ? \"url(#\".concat(gradientId, \")\") : undefined;\n var circleStyleForStack = getCircleStyle(perimeter, perimeterWithoutGap, stackPtg, stepPtg, rotateDeg, gapDegree, gapPosition, color, 'butt', strokeWidth, stepSpace);\n stackPtg += (perimeterWithoutGap - circleStyleForStack.strokeDashoffset + stepSpace) * 100 / perimeterWithoutGap;\n return /*#__PURE__*/React.createElement(\"circle\", {\n key: index,\n className: \"\".concat(prefixCls, \"-circle-path\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: stroke\n // strokeLinecap={strokeLinecap}\n ,\n strokeWidth: strokeWidth,\n opacity: 1,\n style: circleStyleForStack,\n ref: function ref(elem) {\n paths[index] = elem;\n }\n });\n });\n };\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-circle\"), className),\n viewBox: \"\".concat(-VIEW_BOX_SIZE / 2, \" \").concat(-VIEW_BOX_SIZE / 2, \" \").concat(VIEW_BOX_SIZE, \" \").concat(VIEW_BOX_SIZE),\n style: style,\n id: id,\n role: \"presentation\"\n }, restProps), gradient && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: gradientId,\n x1: \"100%\",\n y1: \"0%\",\n x2: \"0%\",\n y2: \"0%\"\n }, Object.keys(gradient).sort(function (a, b) {\n return stripPercentToNumber(a) - stripPercentToNumber(b);\n }).map(function (key, index) {\n return /*#__PURE__*/React.createElement(\"stop\", {\n key: index,\n offset: key,\n stopColor: gradient[key]\n });\n }))), !stepCount && /*#__PURE__*/React.createElement(\"circle\", {\n className: \"\".concat(prefixCls, \"-circle-trail\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: trailColor,\n strokeLinecap: strokeLinecap,\n strokeWidth: trailWidth || strokeWidth,\n style: circleStyle\n }), stepCount ? getStepStokeList() : getStokeList());\n};\nif (process.env.NODE_ENV !== 'production') {\n Circle.displayName = 'Circle';\n}\nexport default Circle;","import Line from './Line';\nimport Circle from './Circle';\nexport { Line, Circle };\nexport default {\n Line: Line,\n Circle: Circle\n};","import { presetPrimaryColors } from '@ant-design/colors';\nimport warning from '../_util/warning';\nexport function validProgress(progress) {\n if (!progress || progress < 0) {\n return 0;\n }\n if (progress > 100) {\n return 100;\n }\n return progress;\n}\nexport function getSuccessPercent(_ref) {\n let {\n success,\n successPercent\n } = _ref;\n let percent = successPercent;\n /** @deprecated Use `percent` instead */\n if (success && 'progress' in success) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Progress', '`success.progress` is deprecated. Please use `success.percent` instead.') : void 0;\n percent = success.progress;\n }\n if (success && 'percent' in success) {\n percent = success.percent;\n }\n return percent;\n}\nexport const getPercentage = _ref2 => {\n let {\n percent,\n success,\n successPercent\n } = _ref2;\n const realSuccessPercent = validProgress(getSuccessPercent({\n success,\n successPercent\n }));\n return [realSuccessPercent, validProgress(validProgress(percent) - realSuccessPercent)];\n};\nexport const getStrokeColor = _ref3 => {\n let {\n success = {},\n strokeColor\n } = _ref3;\n const {\n strokeColor: successColor\n } = success;\n return [successColor || presetPrimaryColors.green, strokeColor || null];\n};\nexport const getSize = (size, type, extra) => {\n var _a, _b, _c, _d;\n let width = -1;\n let height = -1;\n if (type === 'step') {\n const steps = extra.steps;\n const strokeWidth = extra.strokeWidth;\n if (typeof size === 'string' || typeof size === 'undefined') {\n width = size === 'small' ? 2 : 14;\n height = strokeWidth !== null && strokeWidth !== void 0 ? strokeWidth : 8;\n } else if (typeof size === 'number') {\n [width, height] = [size, size];\n } else {\n [width = 14, height = 8] = size;\n }\n width *= steps;\n } else if (type === 'line') {\n const strokeWidth = extra === null || extra === void 0 ? void 0 : extra.strokeWidth;\n if (typeof size === 'string' || typeof size === 'undefined') {\n height = strokeWidth || (size === 'small' ? 6 : 8);\n } else if (typeof size === 'number') {\n [width, height] = [size, size];\n } else {\n [width = -1, height = 8] = size;\n }\n } else if (type === 'circle' || type === 'dashboard') {\n if (typeof size === 'string' || typeof size === 'undefined') {\n [width, height] = size === 'small' ? [60, 60] : [120, 120];\n } else if (typeof size === 'number') {\n [width, height] = [size, size];\n } else {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Progress', 'Type \"circle\" and \"dashbord\" do not accept array as `size`, please use number or preset size instead.') : void 0;\n }\n width = (_b = (_a = size[0]) !== null && _a !== void 0 ? _a : size[1]) !== null && _b !== void 0 ? _b : 120;\n height = (_d = (_c = size[0]) !== null && _c !== void 0 ? _c : size[1]) !== null && _d !== void 0 ? _d : 120;\n }\n }\n return [width, height];\n};","import classNames from 'classnames';\nimport { Circle as RCCircle } from 'rc-progress';\nimport * as React from 'react';\nimport Tooltip from '../tooltip';\nimport { getPercentage, getSize, getStrokeColor } from './utils';\nconst CIRCLE_MIN_STROKE_WIDTH = 3;\nconst getMinPercent = width => CIRCLE_MIN_STROKE_WIDTH / width * 100;\nconst Circle = props => {\n const {\n prefixCls,\n trailColor = null,\n strokeLinecap = 'round',\n gapPosition,\n gapDegree,\n width: originWidth = 120,\n type,\n children,\n success,\n size = originWidth\n } = props;\n const [width, height] = getSize(size, 'circle');\n let {\n strokeWidth\n } = props;\n if (strokeWidth === undefined) {\n strokeWidth = Math.max(getMinPercent(width), 6);\n }\n const circleStyle = {\n width,\n height,\n fontSize: width * 0.15 + 6\n };\n const realGapDegree = React.useMemo(() => {\n // Support gapDeg = 0 when type = 'dashboard'\n if (gapDegree || gapDegree === 0) {\n return gapDegree;\n }\n if (type === 'dashboard') {\n return 75;\n }\n return undefined;\n }, [gapDegree, type]);\n const gapPos = gapPosition || type === 'dashboard' && 'bottom' || undefined;\n // using className to style stroke color\n const isGradient = Object.prototype.toString.call(props.strokeColor) === '[object Object]';\n const strokeColor = getStrokeColor({\n success,\n strokeColor: props.strokeColor\n });\n const wrapperClassName = classNames(`${prefixCls}-inner`, {\n [`${prefixCls}-circle-gradient`]: isGradient\n });\n const circleContent = /*#__PURE__*/React.createElement(RCCircle, {\n percent: getPercentage(props),\n strokeWidth: strokeWidth,\n trailWidth: strokeWidth,\n strokeColor: strokeColor,\n strokeLinecap: strokeLinecap,\n trailColor: trailColor,\n prefixCls: prefixCls,\n gapDegree: realGapDegree,\n gapPosition: gapPos\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName,\n style: circleStyle\n }, width <= 20 ? /*#__PURE__*/React.createElement(Tooltip, {\n title: children\n }, /*#__PURE__*/React.createElement(\"span\", null, circleContent)) : /*#__PURE__*/React.createElement(React.Fragment, null, circleContent, children));\n};\nexport default Circle;","var __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 { presetPrimaryColors } from '@ant-design/colors';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { getSize, getSuccessPercent, validProgress } from './utils';\n/**\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"75%\": \"#009900\",\n * \"50%\": \"green\", // ====> '#afc163 0%, #66FF00 25%, #00CC00 50%, #009900 75%, #ffffff 100%'\n * \"25%\": \"#66FF00\",\n * \"100%\": \"#ffffff\"\n * }\n */\nexport const sortGradient = gradients => {\n let tempArr = [];\n Object.keys(gradients).forEach(key => {\n const formattedKey = parseFloat(key.replace(/%/g, ''));\n if (!isNaN(formattedKey)) {\n tempArr.push({\n key: formattedKey,\n value: gradients[key]\n });\n }\n });\n tempArr = tempArr.sort((a, b) => a.key - b.key);\n return tempArr.map(_ref => {\n let {\n key,\n value\n } = _ref;\n return `${value} ${key}%`;\n }).join(', ');\n};\n/**\n * Then this man came to realize the truth: Besides six pence, there is the moon. Besides bread and\n * butter, there is the bug. And... Besides women, there is the code.\n *\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"25%\": \"#66FF00\",\n * \"50%\": \"#00CC00\", // ====> linear-gradient(to right, #afc163 0%, #66FF00 25%,\n * \"75%\": \"#009900\", // #00CC00 50%, #009900 75%, #ffffff 100%)\n * \"100%\": \"#ffffff\"\n * }\n */\nexport const handleGradient = (strokeColor, directionConfig) => {\n const {\n from = presetPrimaryColors.blue,\n to = presetPrimaryColors.blue,\n direction = directionConfig === 'rtl' ? 'to left' : 'to right'\n } = strokeColor,\n rest = __rest(strokeColor, [\"from\", \"to\", \"direction\"]);\n if (Object.keys(rest).length !== 0) {\n const sortedGradients = sortGradient(rest);\n return {\n backgroundImage: `linear-gradient(${direction}, ${sortedGradients})`\n };\n }\n return {\n backgroundImage: `linear-gradient(${direction}, ${from}, ${to})`\n };\n};\nconst Line = props => {\n const {\n prefixCls,\n direction: directionConfig,\n percent,\n size,\n strokeWidth,\n strokeColor,\n strokeLinecap = 'round',\n children,\n trailColor = null,\n success\n } = props;\n const backgroundProps = strokeColor && typeof strokeColor !== 'string' ? handleGradient(strokeColor, directionConfig) : {\n backgroundColor: strokeColor\n };\n const borderRadius = strokeLinecap === 'square' || strokeLinecap === 'butt' ? 0 : undefined;\n const trailStyle = {\n backgroundColor: trailColor || undefined,\n borderRadius\n };\n const mergedSize = size !== null && size !== void 0 ? size : [-1, strokeWidth || (size === 'small' ? 6 : 8)];\n const [width, height] = getSize(mergedSize, 'line', {\n strokeWidth\n });\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('strokeWidth' in props), 'Progress', '`strokeWidth` is deprecated. Please use `size` instead.') : void 0;\n }\n const percentStyle = Object.assign({\n width: `${validProgress(percent)}%`,\n height,\n borderRadius\n }, backgroundProps);\n const successPercent = getSuccessPercent(props);\n const successPercentStyle = {\n width: `${validProgress(successPercent)}%`,\n height,\n borderRadius,\n backgroundColor: success === null || success === void 0 ? void 0 : success.strokeColor\n };\n const outerStyle = {\n width: width < 0 ? '100%' : width,\n height\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-outer`,\n style: outerStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner`,\n style: trailStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-bg`,\n style: percentStyle\n }), successPercent !== undefined ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-success-bg`,\n style: successPercentStyle\n }) : null)), children);\n};\nexport default Line;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { getSize } from './utils';\nconst Steps = props => {\n const {\n size,\n steps,\n percent = 0,\n strokeWidth = 8,\n strokeColor,\n trailColor = null,\n prefixCls,\n children\n } = props;\n const current = Math.round(steps * (percent / 100));\n const stepWidth = size === 'small' ? 2 : 14;\n const mergedSize = size !== null && size !== void 0 ? size : [stepWidth, strokeWidth];\n const [width, height] = getSize(mergedSize, 'step', {\n steps,\n strokeWidth\n });\n const unitWidth = width / steps;\n const styledSteps = new Array(steps);\n for (let i = 0; i < steps; i++) {\n const color = Array.isArray(strokeColor) ? strokeColor[i] : strokeColor;\n styledSteps[i] = /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n className: classNames(`${prefixCls}-steps-item`, {\n [`${prefixCls}-steps-item-active`]: i <= current - 1\n }),\n style: {\n backgroundColor: i <= current - 1 ? color : trailColor,\n width: unitWidth,\n height\n }\n });\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-steps-outer`\n }, styledSteps, children);\n};\nexport default Steps;","import { Keyframes } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genAntProgressActive = isRtl => {\n const direction = isRtl ? '100%' : '-100%';\n return new Keyframes(`antProgress${isRtl ? 'RTL' : 'LTR'}Active`, {\n '0%': {\n transform: `translateX(${direction}) scaleX(0)`,\n opacity: 0.1\n },\n '20%': {\n transform: `translateX(${direction}) scaleX(0)`,\n opacity: 0.5\n },\n to: {\n transform: 'translateX(0) scaleX(1)',\n opacity: 0\n }\n });\n};\nconst genBaseStyle = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n '&-rtl': {\n direction: 'rtl'\n },\n '&-line': {\n position: 'relative',\n width: '100%',\n fontSize: token.fontSize,\n marginInlineEnd: token.marginXS,\n marginBottom: token.marginXS\n },\n [`${progressCls}-outer`]: {\n display: 'inline-block',\n width: '100%'\n },\n [`&${progressCls}-show-info`]: {\n [`${progressCls}-outer`]: {\n marginInlineEnd: `calc(-2em - ${token.marginXS}px)`,\n paddingInlineEnd: `calc(2em + ${token.paddingXS}px)`\n }\n },\n [`${progressCls}-inner`]: {\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n overflow: 'hidden',\n verticalAlign: 'middle',\n backgroundColor: token.progressRemainingColor,\n borderRadius: token.progressLineRadius\n },\n [`${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.colorInfo\n }\n },\n [`${progressCls}-success-bg, ${progressCls}-bg`]: {\n position: 'relative',\n backgroundColor: token.colorInfo,\n borderRadius: token.progressLineRadius,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOutCirc}`\n },\n [`${progressCls}-success-bg`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n backgroundColor: token.colorSuccess\n },\n [`${progressCls}-text`]: {\n display: 'inline-block',\n width: '2em',\n marginInlineStart: token.marginXS,\n color: token.progressInfoTextColor,\n lineHeight: 1,\n whiteSpace: 'nowrap',\n textAlign: 'start',\n verticalAlign: 'middle',\n wordBreak: 'normal',\n [iconPrefixCls]: {\n fontSize: token.fontSize\n }\n },\n [`&${progressCls}-status-active`]: {\n [`${progressCls}-bg::before`]: {\n position: 'absolute',\n inset: 0,\n backgroundColor: token.colorBgContainer,\n borderRadius: token.progressLineRadius,\n opacity: 0,\n animationName: genAntProgressActive(),\n animationDuration: token.progressActiveMotionDuration,\n animationTimingFunction: token.motionEaseOutQuint,\n animationIterationCount: 'infinite',\n content: '\"\"'\n }\n },\n [`&${progressCls}-rtl${progressCls}-status-active`]: {\n [`${progressCls}-bg::before`]: {\n animationName: genAntProgressActive(true)\n }\n },\n [`&${progressCls}-status-exception`]: {\n [`${progressCls}-bg`]: {\n backgroundColor: token.colorError\n },\n [`${progressCls}-text`]: {\n color: token.colorError\n }\n },\n [`&${progressCls}-status-exception ${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.colorError\n }\n },\n [`&${progressCls}-status-success`]: {\n [`${progressCls}-bg`]: {\n backgroundColor: token.colorSuccess\n },\n [`${progressCls}-text`]: {\n color: token.colorSuccess\n }\n },\n [`&${progressCls}-status-success ${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.colorSuccess\n }\n }\n })\n };\n};\nconst genCircleStyle = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-circle-trail`]: {\n stroke: token.progressRemainingColor\n },\n [`&${progressCls}-circle ${progressCls}-inner`]: {\n position: 'relative',\n lineHeight: 1,\n backgroundColor: 'transparent'\n },\n [`&${progressCls}-circle ${progressCls}-text`]: {\n position: 'absolute',\n insetBlockStart: '50%',\n insetInlineStart: 0,\n width: '100%',\n margin: 0,\n padding: 0,\n color: token.colorText,\n lineHeight: 1,\n whiteSpace: 'normal',\n textAlign: 'center',\n transform: 'translateY(-50%)',\n [iconPrefixCls]: {\n fontSize: `${token.fontSize / token.fontSizeSM}em`\n }\n },\n [`${progressCls}-circle&-status-exception`]: {\n [`${progressCls}-text`]: {\n color: token.colorError\n }\n },\n [`${progressCls}-circle&-status-success`]: {\n [`${progressCls}-text`]: {\n color: token.colorSuccess\n }\n }\n },\n [`${progressCls}-inline-circle`]: {\n lineHeight: 1,\n [`${progressCls}-inner`]: {\n verticalAlign: 'bottom'\n }\n }\n };\n};\nconst genStepStyle = token => {\n const {\n componentCls: progressCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-steps`]: {\n display: 'inline-block',\n '&-outer': {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n '&-item': {\n flexShrink: 0,\n minWidth: token.progressStepMinWidth,\n marginInlineEnd: token.progressStepMarginInlineEnd,\n backgroundColor: token.progressRemainingColor,\n transition: `all ${token.motionDurationSlow}`,\n '&-active': {\n backgroundColor: token.colorInfo\n }\n }\n }\n }\n };\n};\nconst genSmallLine = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-small&-line, ${progressCls}-small&-line ${progressCls}-text ${iconPrefixCls}`]: {\n fontSize: token.fontSizeSM\n }\n }\n };\n};\nexport default genComponentStyleHook('Progress', token => {\n const progressStepMarginInlineEnd = token.marginXXS / 2;\n const progressToken = mergeToken(token, {\n progressLineRadius: 100,\n progressInfoTextColor: token.colorText,\n progressDefaultColor: token.colorInfo,\n progressRemainingColor: token.colorFillSecondary,\n progressStepMarginInlineEnd,\n progressStepMinWidth: progressStepMarginInlineEnd,\n progressActiveMotionDuration: '2.4s'\n });\n return [genBaseStyle(progressToken), genCircleStyle(progressToken), genStepStyle(progressToken), genSmallLine(progressToken)];\n});","var __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 CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport 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 classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport Circle from './Circle';\nimport Line from './Line';\nimport Steps from './Steps';\nimport useStyle from './style';\nimport { getSize, getSuccessPercent, validProgress } from './utils';\nexport const ProgressTypes = ['line', 'circle', 'dashboard'];\nconst ProgressStatuses = ['normal', 'exception', 'active', 'success'];\nconst Progress = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n steps,\n strokeColor,\n percent = 0,\n size = 'default',\n showInfo = true,\n type = 'line',\n status,\n format,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"steps\", \"strokeColor\", \"percent\", \"size\", \"showInfo\", \"type\", \"status\", \"format\", \"style\"]);\n const percentNumber = React.useMemo(() => {\n var _a, _b;\n const successPercent = getSuccessPercent(props);\n return parseInt(successPercent !== undefined ? (_a = successPercent !== null && successPercent !== void 0 ? successPercent : 0) === null || _a === void 0 ? void 0 : _a.toString() : (_b = percent !== null && percent !== void 0 ? percent : 0) === null || _b === void 0 ? void 0 : _b.toString(), 10);\n }, [percent, props.success, props.successPercent]);\n const progressStatus = React.useMemo(() => {\n if (!ProgressStatuses.includes(status) && percentNumber >= 100) {\n return 'success';\n }\n return status || 'normal';\n }, [status, percentNumber]);\n const {\n getPrefixCls,\n direction,\n progress: progressStyle\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('progress', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const progressInfo = React.useMemo(() => {\n if (!showInfo) {\n return null;\n }\n const successPercent = getSuccessPercent(props);\n let text;\n const textFormatter = format || (number => `${number}%`);\n const isLineType = type === 'line';\n if (format || progressStatus !== 'exception' && progressStatus !== 'success') {\n text = textFormatter(validProgress(percent), validProgress(successPercent));\n } else if (progressStatus === 'exception') {\n text = isLineType ? /*#__PURE__*/React.createElement(CloseCircleFilled, null) : /*#__PURE__*/React.createElement(CloseOutlined, null);\n } else if (progressStatus === 'success') {\n text = isLineType ? /*#__PURE__*/React.createElement(CheckCircleFilled, null) : /*#__PURE__*/React.createElement(CheckOutlined, null);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-text`,\n title: typeof text === 'string' ? text : undefined\n }, text);\n }, [showInfo, percent, percentNumber, progressStatus, type, prefixCls, format]);\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('successPercent' in props), 'Progress', '`successPercent` is deprecated. Please use `success.percent` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!('width' in props), 'Progress', '`width` is deprecated. Please use `size` instead.') : void 0;\n }\n const strokeColorNotArray = Array.isArray(strokeColor) ? strokeColor[0] : strokeColor;\n const strokeColorNotGradient = typeof strokeColor === 'string' || Array.isArray(strokeColor) ? strokeColor : undefined;\n let progress;\n // Render progress shape\n if (type === 'line') {\n progress = steps ? /*#__PURE__*/React.createElement(Steps, Object.assign({}, props, {\n strokeColor: strokeColorNotGradient,\n prefixCls: prefixCls,\n steps: steps\n }), progressInfo) : /*#__PURE__*/React.createElement(Line, Object.assign({}, props, {\n strokeColor: strokeColorNotArray,\n prefixCls: prefixCls,\n direction: direction\n }), progressInfo);\n } else if (type === 'circle' || type === 'dashboard') {\n progress = /*#__PURE__*/React.createElement(Circle, Object.assign({}, props, {\n strokeColor: strokeColorNotArray,\n prefixCls: prefixCls,\n progressStatus: progressStatus\n }), progressInfo);\n }\n const classString = classNames(prefixCls, `${prefixCls}-status-${progressStatus}`, `${prefixCls}-${type === 'dashboard' && 'circle' || steps && 'steps' || type}`, {\n [`${prefixCls}-inline-circle`]: type === 'circle' && getSize(size, 'circle')[0] <= 20,\n [`${prefixCls}-show-info`]: showInfo,\n [`${prefixCls}-${size}`]: typeof size === 'string',\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, progressStyle === null || progressStyle === void 0 ? void 0 : progressStyle.className, className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: ref,\n style: Object.assign(Object.assign({}, progressStyle === null || progressStyle === void 0 ? void 0 : progressStyle.style), style),\n className: classString,\n role: \"progressbar\",\n \"aria-valuenow\": percentNumber\n }, omit(restProps, ['trailColor', 'strokeWidth', 'width', 'gapDegree', 'gapPosition', 'strokeLinecap', 'success', 'successPercent'])), progress));\n});\nif (process.env.NODE_ENV !== 'production') {\n Progress.displayName = 'Progress';\n}\nexport default Progress;","'use client';\n\nimport Progress from './progress';\nexport default Progress;","import * as React from 'react';\nconst RadioGroupContext = /*#__PURE__*/React.createContext(null);\nexport const RadioGroupContextProvider = RadioGroupContext.Provider;\nexport default RadioGroupContext;\nexport const RadioOptionTypeContext = /*#__PURE__*/React.createContext(null);\nexport const RadioOptionTypeContextProvider = RadioOptionTypeContext.Provider;","import classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport { RadioGroupContextProvider } from './context';\nimport Radio from './radio';\nimport useStyle from './style';\nconst RadioGroup = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [value, setValue] = useMergedState(props.defaultValue, {\n value: props.value\n });\n const onRadioChange = ev => {\n const lastValue = value;\n const val = ev.target.value;\n if (!('value' in props)) {\n setValue(val);\n }\n const {\n onChange\n } = props;\n if (onChange && val !== lastValue) {\n onChange(ev);\n }\n };\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n options,\n buttonStyle = 'outline',\n disabled,\n children,\n size: customizeSize,\n style,\n id,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur\n } = props;\n const prefixCls = getPrefixCls('radio', customizePrefixCls);\n const groupPrefixCls = `${prefixCls}-group`;\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n let childrenToRender = children;\n // 如果存在 options, 优先使用\n if (options && options.length > 0) {\n childrenToRender = options.map(option => {\n if (typeof option === 'string' || typeof option === 'number') {\n // 此处类型自动推导为 string\n return /*#__PURE__*/React.createElement(Radio, {\n key: option.toString(),\n prefixCls: prefixCls,\n disabled: disabled,\n value: option,\n checked: value === option\n }, option);\n }\n // 此处类型自动推导为 { label: string value: string }\n return /*#__PURE__*/React.createElement(Radio, {\n key: `radio-group-value-options-${option.value}`,\n prefixCls: prefixCls,\n disabled: option.disabled || disabled,\n value: option.value,\n checked: value === option.value,\n title: option.title,\n style: option.style\n }, option.label);\n });\n }\n const mergedSize = useSize(customizeSize);\n const classString = classNames(groupPrefixCls, `${groupPrefixCls}-${buttonStyle}`, {\n [`${groupPrefixCls}-${mergedSize}`]: mergedSize,\n [`${groupPrefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({}, pickAttrs(props, {\n aria: true,\n data: true\n }), {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onFocus: onFocus,\n onBlur: onBlur,\n id: id,\n ref: ref\n }), /*#__PURE__*/React.createElement(RadioGroupContextProvider, {\n value: {\n onChange: onRadioChange,\n value,\n disabled: props.disabled,\n name: props.name,\n optionType: props.optionType\n }\n }, childrenToRender)));\n});\nexport default /*#__PURE__*/React.memo(RadioGroup);","'use client';\n\nimport Group from './group';\nimport InternalRadio from './radio';\nimport Button from './radioButton';\nexport { Button, Group };\nconst Radio = InternalRadio;\nRadio.Button = Button;\nRadio.Group = Group;\nRadio.__ANT_RADIO = true;\nexport default Radio;","var __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 RcCheckbox from 'rc-checkbox';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport { FormItemInputContext } from '../form/context';\nimport RadioGroupContext, { RadioOptionTypeContext } from './context';\nimport useStyle from './style';\nimport Wave from '../_util/wave';\nimport { TARGET_CLS } from '../_util/wave/interface';\nconst InternalRadio = (props, ref) => {\n var _a, _b;\n const groupContext = React.useContext(RadioGroupContext);\n const radioOptionTypeContext = React.useContext(RadioOptionTypeContext);\n const {\n getPrefixCls,\n direction,\n radio\n } = React.useContext(ConfigContext);\n const innerRef = React.useRef(null);\n const mergedRef = composeRef(ref, innerRef);\n const {\n isFormItemInput\n } = React.useContext(FormItemInputContext);\n process.env.NODE_ENV !== \"production\" ? warning(!('optionType' in props), 'Radio', '`optionType` is only support in Radio.Group.') : void 0;\n const onChange = e => {\n var _a, _b;\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, e);\n (_b = groupContext === null || groupContext === void 0 ? void 0 : groupContext.onChange) === null || _b === void 0 ? void 0 : _b.call(groupContext, e);\n };\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n children,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"children\", \"style\"]);\n const radioPrefixCls = getPrefixCls('radio', customizePrefixCls);\n const isButtonType = ((groupContext === null || groupContext === void 0 ? void 0 : groupContext.optionType) || radioOptionTypeContext) === 'button';\n const prefixCls = isButtonType ? `${radioPrefixCls}-button` : radioPrefixCls;\n // Style\n const [wrapSSR, hashId] = useStyle(radioPrefixCls);\n const radioProps = Object.assign({}, restProps);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n if (groupContext) {\n radioProps.name = groupContext.name;\n radioProps.onChange = onChange;\n radioProps.checked = props.value === groupContext.value;\n radioProps.disabled = (_a = radioProps.disabled) !== null && _a !== void 0 ? _a : groupContext.disabled;\n }\n radioProps.disabled = (_b = radioProps.disabled) !== null && _b !== void 0 ? _b : disabled;\n const wrapperClassString = classNames(`${prefixCls}-wrapper`, {\n [`${prefixCls}-wrapper-checked`]: radioProps.checked,\n [`${prefixCls}-wrapper-disabled`]: radioProps.disabled,\n [`${prefixCls}-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-wrapper-in-form-item`]: isFormItemInput\n }, radio === null || radio === void 0 ? void 0 : radio.className, className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(Wave, {\n component: \"Radio\",\n disabled: radioProps.disabled\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: wrapperClassString,\n style: Object.assign(Object.assign({}, radio === null || radio === void 0 ? void 0 : radio.style), style),\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, Object.assign({}, radioProps, {\n className: classNames(radioProps.className, !isButtonType && TARGET_CLS),\n type: \"radio\",\n prefixCls: prefixCls,\n ref: mergedRef\n })), children !== undefined ? /*#__PURE__*/React.createElement(\"span\", null, children) : null)));\n};\nconst Radio = /*#__PURE__*/React.forwardRef(InternalRadio);\nif (process.env.NODE_ENV !== 'production') {\n Radio.displayName = 'Radio';\n}\nexport default Radio;","var __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 { ConfigContext } from '../config-provider';\nimport { RadioOptionTypeContextProvider } from './context';\nimport Radio from './radio';\nconst RadioButton = (props, ref) => {\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls\n } = props,\n radioProps = __rest(props, [\"prefixCls\"]);\n const prefixCls = getPrefixCls('radio', customizePrefixCls);\n return /*#__PURE__*/React.createElement(RadioOptionTypeContextProvider, {\n value: 'button'\n }, /*#__PURE__*/React.createElement(Radio, Object.assign({\n prefixCls: prefixCls\n }, radioProps, {\n type: 'radio',\n ref: ref\n })));\n};\nexport default /*#__PURE__*/React.forwardRef(RadioButton);","import { genFocusOutline, resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\n// styles from RadioGroup only\nconst getGroupRadioStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n const groupPrefixCls = `${componentCls}-group`;\n return {\n [groupPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n fontSize: 0,\n // RTL\n [`&${groupPrefixCls}-rtl`]: {\n direction: 'rtl'\n },\n [`${antCls}-badge ${antCls}-badge-count`]: {\n zIndex: 1\n },\n [`> ${antCls}-badge:not(:first-child) > ${antCls}-button-wrapper`]: {\n borderInlineStart: 'none'\n }\n })\n };\n};\n// Styles from radio-wrapper\nconst getRadioBasicStyle = token => {\n const {\n componentCls,\n wrapperMarginInlineEnd,\n colorPrimary,\n radioSize,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOutCirc,\n colorBgContainer,\n colorBorder,\n lineWidth,\n dotSize,\n colorBgContainerDisabled,\n colorTextDisabled,\n paddingXS,\n dotColorDisabled,\n lineType,\n radioDotDisabledSize,\n wireframe,\n colorWhite\n } = token;\n const radioInnerPrefixCls = `${componentCls}-inner`;\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-flex',\n alignItems: 'baseline',\n marginInlineStart: 0,\n marginInlineEnd: wrapperMarginInlineEnd,\n cursor: 'pointer',\n // RTL\n [`&${componentCls}-wrapper-rtl`]: {\n direction: 'rtl'\n },\n '&-disabled': {\n cursor: 'not-allowed',\n color: token.colorTextDisabled\n },\n '&::after': {\n display: 'inline-block',\n width: 0,\n overflow: 'hidden',\n content: '\"\\\\a0\"'\n },\n // hashId 在 wrapper 上,只能铺平\n [`${componentCls}-checked::after`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: '100%',\n height: '100%',\n border: `${lineWidth}px ${lineType} ${colorPrimary}`,\n borderRadius: '50%',\n visibility: 'hidden',\n content: '\"\"'\n },\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n outline: 'none',\n cursor: 'pointer',\n alignSelf: 'center',\n borderRadius: '50%'\n }),\n [`${componentCls}-wrapper:hover &,\n &:hover ${radioInnerPrefixCls}`]: {\n borderColor: colorPrimary\n },\n [`${componentCls}-input:focus-visible + ${radioInnerPrefixCls}`]: Object.assign({}, genFocusOutline(token)),\n [`${componentCls}:hover::after, ${componentCls}-wrapper:hover &::after`]: {\n visibility: 'visible'\n },\n [`${componentCls}-inner`]: {\n '&::after': {\n boxSizing: 'border-box',\n position: 'absolute',\n insetBlockStart: '50%',\n insetInlineStart: '50%',\n display: 'block',\n width: radioSize,\n height: radioSize,\n marginBlockStart: radioSize / -2,\n marginInlineStart: radioSize / -2,\n backgroundColor: wireframe ? colorPrimary : colorWhite,\n borderBlockStart: 0,\n borderInlineStart: 0,\n borderRadius: radioSize,\n transform: 'scale(0)',\n opacity: 0,\n transition: `all ${motionDurationSlow} ${motionEaseInOutCirc}`,\n content: '\"\"'\n },\n boxSizing: 'border-box',\n position: 'relative',\n insetBlockStart: 0,\n insetInlineStart: 0,\n display: 'block',\n width: radioSize,\n height: radioSize,\n backgroundColor: colorBgContainer,\n borderColor: colorBorder,\n borderStyle: 'solid',\n borderWidth: lineWidth,\n borderRadius: '50%',\n transition: `all ${motionDurationMid}`\n },\n [`${componentCls}-input`]: {\n position: 'absolute',\n inset: 0,\n zIndex: 1,\n cursor: 'pointer',\n opacity: 0\n },\n // 选中状态\n [`${componentCls}-checked`]: {\n [radioInnerPrefixCls]: {\n borderColor: colorPrimary,\n backgroundColor: wireframe ? colorBgContainer : colorPrimary,\n '&::after': {\n transform: `scale(${dotSize / radioSize})`,\n opacity: 1,\n transition: `all ${motionDurationSlow} ${motionEaseInOutCirc}`\n }\n }\n },\n [`${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [radioInnerPrefixCls]: {\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder,\n cursor: 'not-allowed',\n '&::after': {\n backgroundColor: dotColorDisabled\n }\n },\n [`${componentCls}-input`]: {\n cursor: 'not-allowed'\n },\n [`${componentCls}-disabled + span`]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n },\n [`&${componentCls}-checked`]: {\n [radioInnerPrefixCls]: {\n '&::after': {\n transform: `scale(${radioDotDisabledSize / radioSize})`\n }\n }\n }\n },\n [`span${componentCls} + *`]: {\n paddingInlineStart: paddingXS,\n paddingInlineEnd: paddingXS\n }\n })\n };\n};\n// Styles from radio-button\nconst getRadioButtonStyle = token => {\n const {\n buttonColor,\n controlHeight,\n componentCls,\n lineWidth,\n lineType,\n colorBorder,\n motionDurationSlow,\n motionDurationMid,\n buttonPaddingInline,\n fontSize,\n buttonBg,\n fontSizeLG,\n controlHeightLG,\n controlHeightSM,\n paddingXS,\n borderRadius,\n borderRadiusSM,\n borderRadiusLG,\n buttonCheckedBg,\n buttonSolidCheckedColor,\n colorTextDisabled,\n colorBgContainerDisabled,\n buttonCheckedBgDisabled,\n buttonCheckedColorDisabled,\n colorPrimary,\n colorPrimaryHover,\n colorPrimaryActive\n } = token;\n return {\n [`${componentCls}-button-wrapper`]: {\n position: 'relative',\n display: 'inline-block',\n height: controlHeight,\n margin: 0,\n paddingInline: buttonPaddingInline,\n paddingBlock: 0,\n color: buttonColor,\n fontSize,\n lineHeight: `${controlHeight - lineWidth * 2}px`,\n background: buttonBg,\n border: `${lineWidth}px ${lineType} ${colorBorder}`,\n // strange align fix for chrome but works\n // https://gw.alipayobjects.com/zos/rmsportal/VFTfKXJuogBAXcvfAUWJ.gif\n borderBlockStartWidth: lineWidth + 0.02,\n borderInlineStartWidth: 0,\n borderInlineEndWidth: lineWidth,\n cursor: 'pointer',\n transition: [`color ${motionDurationMid}`, `background ${motionDurationMid}`, `box-shadow ${motionDurationMid}`].join(','),\n a: {\n color: buttonColor\n },\n [`> ${componentCls}-button`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n zIndex: -1,\n width: '100%',\n height: '100%'\n },\n '&:not(:first-child)': {\n '&::before': {\n position: 'absolute',\n insetBlockStart: -lineWidth,\n insetInlineStart: -lineWidth,\n display: 'block',\n boxSizing: 'content-box',\n width: 1,\n height: '100%',\n paddingBlock: lineWidth,\n paddingInline: 0,\n backgroundColor: colorBorder,\n transition: `background-color ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n '&:first-child': {\n borderInlineStart: `${lineWidth}px ${lineType} ${colorBorder}`,\n borderStartStartRadius: borderRadius,\n borderEndStartRadius: borderRadius\n },\n '&:last-child': {\n borderStartEndRadius: borderRadius,\n borderEndEndRadius: borderRadius\n },\n '&:first-child:last-child': {\n borderRadius\n },\n [`${componentCls}-group-large &`]: {\n height: controlHeightLG,\n fontSize: fontSizeLG,\n lineHeight: `${controlHeightLG - lineWidth * 2}px`,\n '&:first-child': {\n borderStartStartRadius: borderRadiusLG,\n borderEndStartRadius: borderRadiusLG\n },\n '&:last-child': {\n borderStartEndRadius: borderRadiusLG,\n borderEndEndRadius: borderRadiusLG\n }\n },\n [`${componentCls}-group-small &`]: {\n height: controlHeightSM,\n paddingInline: paddingXS - lineWidth,\n paddingBlock: 0,\n lineHeight: `${controlHeightSM - lineWidth * 2}px`,\n '&:first-child': {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM\n },\n '&:last-child': {\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n }\n },\n '&:hover': {\n position: 'relative',\n color: colorPrimary\n },\n '&:has(:focus-visible)': Object.assign({}, genFocusOutline(token)),\n [`${componentCls}-inner, input[type='checkbox'], input[type='radio']`]: {\n width: 0,\n height: 0,\n opacity: 0,\n pointerEvents: 'none'\n },\n [`&-checked:not(${componentCls}-button-wrapper-disabled)`]: {\n zIndex: 1,\n color: colorPrimary,\n background: buttonCheckedBg,\n borderColor: colorPrimary,\n '&::before': {\n backgroundColor: colorPrimary\n },\n '&:first-child': {\n borderColor: colorPrimary\n },\n '&:hover': {\n color: colorPrimaryHover,\n borderColor: colorPrimaryHover,\n '&::before': {\n backgroundColor: colorPrimaryHover\n }\n },\n '&:active': {\n color: colorPrimaryActive,\n borderColor: colorPrimaryActive,\n '&::before': {\n backgroundColor: colorPrimaryActive\n }\n }\n },\n [`${componentCls}-group-solid &-checked:not(${componentCls}-button-wrapper-disabled)`]: {\n color: buttonSolidCheckedColor,\n background: colorPrimary,\n borderColor: colorPrimary,\n '&:hover': {\n color: buttonSolidCheckedColor,\n background: colorPrimaryHover,\n borderColor: colorPrimaryHover\n },\n '&:active': {\n color: buttonSolidCheckedColor,\n background: colorPrimaryActive,\n borderColor: colorPrimaryActive\n }\n },\n '&-disabled': {\n color: colorTextDisabled,\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder,\n cursor: 'not-allowed',\n '&:first-child, &:hover': {\n color: colorTextDisabled,\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder\n }\n },\n [`&-disabled${componentCls}-button-wrapper-checked`]: {\n color: buttonCheckedColorDisabled,\n backgroundColor: buttonCheckedBgDisabled,\n borderColor: colorBorder,\n boxShadow: 'none'\n }\n }\n };\n};\nconst getDotSize = radioSize => {\n const dotPadding = 4; // Fixed Value\n return radioSize - dotPadding * 2;\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Radio', token => {\n const {\n controlOutline,\n controlOutlineWidth,\n radioSize\n } = token;\n const radioFocusShadow = `0 0 0 ${controlOutlineWidth}px ${controlOutline}`;\n const radioButtonFocusShadow = radioFocusShadow;\n const radioDotDisabledSize = getDotSize(radioSize);\n const radioToken = mergeToken(token, {\n radioDotDisabledSize,\n radioFocusShadow,\n radioButtonFocusShadow\n });\n return [getGroupRadioStyle(radioToken), getRadioBasicStyle(radioToken), getRadioButtonStyle(radioToken)];\n}, token => {\n const {\n wireframe,\n padding,\n marginXS,\n lineWidth,\n fontSizeLG,\n colorText,\n colorBgContainer,\n colorTextDisabled,\n controlItemBgActiveDisabled,\n colorTextLightSolid\n } = token;\n const dotPadding = 4; // Fixed value\n const radioSize = fontSizeLG;\n const radioDotSize = wireframe ? getDotSize(radioSize) : radioSize - (dotPadding + lineWidth) * 2;\n return {\n // Radio\n radioSize,\n dotSize: radioDotSize,\n dotColorDisabled: colorTextDisabled,\n // Radio buttons\n buttonSolidCheckedColor: colorTextLightSolid,\n buttonBg: colorBgContainer,\n buttonCheckedBg: colorBgContainer,\n buttonColor: colorText,\n buttonCheckedBgDisabled: controlItemBgActiveDisabled,\n buttonCheckedColorDisabled: colorTextDisabled,\n buttonPaddingInline: padding - lineWidth,\n wrapperMarginInlineEnd: marginXS\n };\n});","// This icon file is generated automatically.\nvar WarningFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"warning\", \"theme\": \"filled\" };\nexport default WarningFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport WarningFilledSvg from \"@ant-design/icons-svg/es/asn/WarningFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar WarningFilled = function WarningFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: WarningFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n WarningFilled.displayName = 'WarningFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(WarningFilled);","import * as React from 'react';\nconst NoFound = () => /*#__PURE__*/React.createElement(\"svg\", {\n width: \"252\",\n height: \"294\"\n}, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 .387h251.772v251.772H0z\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 .012)\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 127.32v-2.095C0 56.279 55.892.387 124.838.387h2.096c68.946 0 124.838 55.892 124.838 124.838v2.096c0 68.946-55.892 124.838-124.838 124.838h-2.096C55.892 252.16 0 196.267 0 127.321\",\n fill: \"#E4EBF7\",\n mask: \"url(#b)\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.755 130.84a8.276 8.276 0 1 1-16.468-1.66 8.276 8.276 0 0 1 16.468 1.66\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.975 134.297l10.482 5.943M48.373 146.508l-12.648 10.788\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.875 159.352a5.667 5.667 0 1 1-11.277-1.136 5.667 5.667 0 0 1 11.277 1.136M57.588 143.247a5.708 5.708 0 1 1-11.358-1.145 5.708 5.708 0 0 1 11.358 1.145M99.018 26.875l29.82-.014a4.587 4.587 0 1 0-.003-9.175l-29.82.013a4.587 4.587 0 1 0 .003 9.176M110.424 45.211l29.82-.013a4.588 4.588 0 0 0-.004-9.175l-29.82.013a4.587 4.587 0 1 0 .004 9.175\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.798 26.861v-.002l15.784-.006a4.588 4.588 0 1 0 .003 9.175l-15.783.007v-.002a4.586 4.586 0 0 0-.004-9.172M184.523 135.668c-.553 5.485-5.447 9.483-10.931 8.93-5.485-.553-9.483-5.448-8.93-10.932.552-5.485 5.447-9.483 10.932-8.93 5.485.553 9.483 5.447 8.93 10.932\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M179.26 141.75l12.64 7.167M193.006 156.477l-15.255 13.011\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M184.668 170.057a6.835 6.835 0 1 1-13.6-1.372 6.835 6.835 0 0 1 13.6 1.372M203.34 153.325a6.885 6.885 0 1 1-13.7-1.382 6.885 6.885 0 0 1 13.7 1.382\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.931 192.324a2.222 2.222 0 1 1-4.444 0 2.222 2.222 0 0 1 4.444 0zM225.27 116.056a2.222 2.222 0 1 1-4.445 0 2.222 2.222 0 0 1 4.444 0zM216.38 151.08a2.223 2.223 0 1 1-4.446-.001 2.223 2.223 0 0 1 4.446 0zM176.917 107.636a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM195.291 92.165a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM202.058 180.711a2.223 2.223 0 1 1-4.446 0 2.223 2.223 0 0 1 4.446 0z\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#FFF\",\n strokeWidth: \"2\",\n d: \"M214.404 153.302l-1.912 20.184-10.928 5.99M173.661 174.792l-6.356 9.814h-11.36l-4.508 6.484M174.941 125.168v-15.804M220.824 117.25l-12.84 7.901-15.31-7.902V94.39\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M166.588 65.936h-3.951a4.756 4.756 0 0 1-4.743-4.742 4.756 4.756 0 0 1 4.743-4.743h3.951a4.756 4.756 0 0 1 4.743 4.743 4.756 4.756 0 0 1-4.743 4.742\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.823 30.03c0-16.281 13.198-29.48 29.48-29.48 16.28 0 29.48 13.199 29.48 29.48 0 16.28-13.2 29.48-29.48 29.48-16.282 0-29.48-13.2-29.48-29.48\",\n fill: \"#1677ff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M205.952 38.387c.5.5.785 1.142.785 1.928s-.286 1.465-.785 1.964c-.572.5-1.214.75-2 .75-.785 0-1.429-.285-1.929-.785-.572-.5-.82-1.143-.82-1.929s.248-1.428.82-1.928c.5-.5 1.144-.75 1.93-.75.785 0 1.462.25 1.999.75m4.285-19.463c1.428 1.249 2.143 2.963 2.143 5.142 0 1.712-.427 3.13-1.219 4.25-.067.096-.137.18-.218.265-.416.429-1.41 1.346-2.956 2.699a5.07 5.07 0 0 0-1.428 1.75 5.207 5.207 0 0 0-.536 2.357v.5h-4.107v-.5c0-1.357.215-2.536.714-3.5.464-.964 1.857-2.464 4.178-4.536l.43-.5c.643-.785.964-1.643.964-2.535 0-1.18-.358-2.108-1-2.785-.678-.68-1.643-1.001-2.858-1.001-1.536 0-2.642.464-3.357 1.43-.37.5-.621 1.135-.76 1.904a1.999 1.999 0 0 1-1.971 1.63h-.004c-1.277 0-2.257-1.183-1.98-2.43.337-1.518 1.02-2.78 2.073-3.784 1.536-1.5 3.607-2.25 6.25-2.25 2.32 0 4.214.607 5.642 1.894\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.04 76.131s21.81 5.36 27.307 15.945c5.575 10.74-6.352 9.26-15.73 4.935-10.86-5.008-24.7-11.822-11.577-20.88\",\n fill: \"#FFB594\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.483 67.504l-.449 2.893c-.753.49-4.748-2.663-4.748-2.663l-1.645.748-1.346-5.684s6.815-4.589 8.917-5.018c2.452-.501 9.884.94 10.7 2.278 0 0 1.32.486-2.227.69-3.548.203-5.043.447-6.79 3.132-1.747 2.686-2.412 3.624-2.412 3.624\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.055 111.367c-2.627-7.724-6.15-13.18-8.917-15.478-3.5-2.906-9.34-2.225-11.366-4.187-1.27-1.231-3.215-1.197-3.215-1.197s-14.98-3.158-16.828-3.479c-2.37-.41-2.124-.714-6.054-1.405-1.57-1.907-2.917-1.122-2.917-1.122l-7.11-1.383c-.853-1.472-2.423-1.023-2.423-1.023l-2.468-.897c-1.645 9.976-7.74 13.796-7.74 13.796 1.795 1.122 15.703 8.3 15.703 8.3l5.107 37.11s-3.321 5.694 1.346 9.109c0 0 19.883-3.743 34.921-.329 0 0 3.047-2.546.972-8.806.523-3.01 1.394-8.263 1.736-11.622.385.772 2.019 1.918 3.14 3.477 0 0 9.407-7.365 11.052-14.012-.832-.723-1.598-1.585-2.267-2.453-.567-.736-.358-2.056-.765-2.717-.669-1.084-1.804-1.378-1.907-1.682\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.09 289.998s4.295 2.041 7.354 1.021c2.821-.94 4.53.668 7.08 1.178 2.55.51 6.874 1.1 11.686-1.26-.103-5.51-6.889-3.98-11.96-6.713-2.563-1.38-3.784-4.722-3.598-8.799h-9.402s-1.392 10.52-1.16 14.573\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.067 289.826s2.428 1.271 6.759.653c3.058-.437 3.712.481 7.423 1.031 3.712.55 10.724-.069 11.823-.894.413 1.1-.343 2.063-.343 2.063s-1.512.603-4.812.824c-2.03.136-5.8.291-7.607-.503-1.787-1.375-5.247-1.903-5.728-.241-3.918.95-7.355-.286-7.355-.286l-.16-2.647z\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.341 276.044h3.094s-.103 6.702 4.536 8.558c-4.64.618-8.558-2.303-7.63-8.558\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.542 272.401s-2.107 7.416-4.485 12.306c-1.798 3.695-4.225 7.492 5.465 7.492 6.648 0 8.953-.48 7.423-6.599-1.53-6.12.266-13.199.266-13.199h-8.669z\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.476 289.793s2.097 1.169 6.633 1.169c6.083 0 8.249-1.65 8.249-1.65s.602 1.114-.619 2.165c-.993.855-3.597 1.591-7.39 1.546-4.145-.048-5.832-.566-6.736-1.168-.825-.55-.687-1.58-.137-2.062\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.419 274.304s.033 1.519-.314 2.93c-.349 1.42-1.078 3.104-1.13 4.139-.058 1.151 4.537 1.58 5.155.034.62-1.547 1.294-6.427 1.913-7.252.619-.825-4.903-2.119-5.624.15\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.66 278.514l13.378.092s1.298-54.52 1.853-64.403c.554-9.882 3.776-43.364 1.002-63.128l-12.547-.644-22.849.78s-.434 3.966-1.195 9.976c-.063.496-.682.843-.749 1.365-.075.585.423 1.354.32 1.966-2.364 14.08-6.377 33.104-8.744 46.677-.116.666-1.234 1.009-1.458 2.691-.04.302.211 1.525.112 1.795-6.873 18.744-10.949 47.842-14.277 61.885l14.607-.014s2.197-8.57 4.03-16.97c2.811-12.886 23.111-85.01 23.111-85.01l3.016-.521 1.043 46.35s-.224 1.234.337 2.02c.56.785-.56 1.123-.392 2.244l.392 1.794s-.449 7.178-.898 11.89c-.448 4.71-.092 39.165-.092 39.165\",\n fill: \"#7BB2F9\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.085 221.626c1.153.094 4.038-2.019 6.955-4.935M106.36 225.142s2.774-1.11 6.103-3.883\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.275 222.1s2.773-1.11 6.102-3.884\",\n stroke: \"#648BD8\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.74 224.767s2.622-.591 6.505-3.365M86.03 151.634c-.27 3.106.3 8.525-4.336 9.123M103.625 149.88s.11 14.012-1.293 15.065c-2.219 1.664-2.99 1.944-2.99 1.944M99.79 150.438s.035 12.88-1.196 24.377M93.673 175.911s7.212-1.664 9.431-1.664M74.31 205.861a212.013 212.013 0 0 1-.979 4.56s-1.458 1.832-1.009 3.776c.449 1.944-.947 2.045-4.985 15.355-1.696 5.59-4.49 18.591-6.348 27.597l-.231 1.12M75.689 197.807a320.934 320.934 0 0 1-.882 4.754M82.591 152.233L81.395 162.7s-1.097.15-.5 2.244c.113 1.346-2.674 15.775-5.18 30.43M56.12 274.418h13.31\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.241 148.22s-17.047-3.104-35.893.2c.158 2.514-.003 4.15-.003 4.15s14.687-2.818 35.67-.312c.252-2.355.226-4.038.226-4.038\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.322 151.165l.003-4.911a.81.81 0 0 0-.778-.815c-2.44-.091-5.066-.108-7.836-.014a.818.818 0 0 0-.789.815l-.003 4.906a.81.81 0 0 0 .831.813c2.385-.06 4.973-.064 7.73.017a.815.815 0 0 0 .842-.81\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.207 150.233l.002-3.076a.642.642 0 0 0-.619-.646 94.321 94.321 0 0 0-5.866-.01.65.65 0 0 0-.63.647v3.072a.64.64 0 0 0 .654.644 121.12 121.12 0 0 1 5.794.011c.362.01.665-.28.665-.642\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.263 275.415h12.338M101.436 270.53c.006 3.387.042 5.79.111 6.506M101.451 264.548a915.75 915.75 0 0 0-.015 4.337M100.986 174.965l.898 44.642s.673 1.57-.225 2.692c-.897 1.122 2.468.673.898 2.243-1.57 1.57.897 1.122 0 3.365-.596 1.489-.994 21.1-1.096 35.146\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.876 83.427s-.516 6.045 7.223 5.552c11.2-.712 9.218-9.345 31.54-21.655-.786-2.708-2.447-4.744-2.447-4.744s-11.068 3.11-22.584 8.046c-6.766 2.9-13.395 6.352-13.732 12.801M104.46 91.057l.941-5.372-8.884-11.43-5.037 5.372-1.74 7.834a.321.321 0 0 0 .108.32c.965.8 6.5 5.013 14.347 3.544a.332.332 0 0 0 .264-.268\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.942 79.387s-4.533-2.853-2.432-6.855c1.623-3.09 4.513 1.133 4.513 1.133s.52-3.642 3.121-3.642c.52-1.04 1.561-4.162 1.561-4.162s11.445 2.601 13.526 3.121c0 5.203-2.304 19.424-7.84 19.861-8.892.703-12.449-9.456-12.449-9.456\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.874 73.446c2.601-2.081 3.47-9.722 3.47-9.722s-2.479-.49-6.64-2.05c-4.683-2.081-12.798-4.747-17.48.976-9.668 3.223-2.05 19.823-2.05 19.823l2.713-3.021s-3.935-3.287-2.08-6.243c2.17-3.462 3.92 1.073 3.92 1.073s.637-2.387 3.581-3.342c.355-.71 1.036-2.674 1.432-3.85a1.073 1.073 0 0 1 1.263-.704c2.4.558 8.677 2.019 11.356 2.662.522.125.871.615.82 1.15l-.305 3.248z\",\n fill: \"#520038\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.977 76.064c-.103.61-.582 1.038-1.07.956-.489-.083-.801-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.644.698 1.254M112.132 77.694c-.103.61-.582 1.038-1.07.956-.488-.083-.8-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.643.698 1.254\",\n fill: \"#552950\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M110.13 74.84l-.896 1.61-.298 4.357h-2.228\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.846 74.481s1.79-.716 2.506.537\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.386 74.282s.477-1.114 1.113-.716c.637.398 1.274 1.433.558 1.99-.717.556.159 1.67.159 1.67\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.287 72.93s1.83 1.113 4.137.954\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.685 81.762s2.227 1.193 4.376 1.193M104.64 84.308s.954.398 1.511.318M94.693 81.205s2.308 7.4 10.424 7.639\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.45 89.384s.45 5.647-4.935 12.787M69 82.654s-.726 9.282-8.204 14.206\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.101\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.405 122.865s-5.272 7.403-9.422 10.768\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.306 107.329s.452 4.366-2.127 32.062\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.101\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.028 151.232h-49.837a1.01 1.01 0 0 1-1.01-1.01v-31.688c0-.557.452-1.01 1.01-1.01h49.837c.558 0 1.01.453 1.01 1.01v31.688a1.01 1.01 0 0 1-1.01 1.01\",\n fill: \"#F2D7AD\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.29 151.232h-19.863v-33.707h20.784v32.786a.92.92 0 0 1-.92.92\",\n fill: \"#F4D19D\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.554 127.896H92.917a.518.518 0 0 1-.425-.816l6.38-9.113c.193-.277.51-.442.85-.442h31.092l-7.26 10.371z\",\n fill: \"#F2D7AD\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n d: \"M123.689 128.447H99.25v-.519h24.169l7.183-10.26.424.298z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M158.298 127.896h-18.669a2.073 2.073 0 0 1-1.659-.83l-7.156-9.541h19.965c.49 0 .95.23 1.244.622l6.69 8.92a.519.519 0 0 1-.415.83\",\n fill: \"#F4D19D\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n d: \"M157.847 128.479h-19.384l-7.857-10.475.415-.31 7.7 10.266h19.126zM130.554 150.685l-.032-8.177.519-.002.032 8.177z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n d: \"M130.511 139.783l-.08-21.414.519-.002.08 21.414zM111.876 140.932l-.498-.143 1.479-5.167.498.143zM108.437 141.06l-2.679-2.935 2.665-3.434.41.318-2.397 3.089 2.384 2.612zM116.607 141.06l-.383-.35 2.383-2.612-2.397-3.089.41-.318 2.665 3.434z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M154.316 131.892l-3.114-1.96.038 3.514-1.043.092c-1.682.115-3.634.23-4.789.23-1.902 0-2.693 2.258 2.23 2.648l-2.645-.596s-2.168 1.317.504 2.3c0 0-1.58 1.217.561 2.58-.584 3.504 5.247 4.058 7.122 3.59 1.876-.47 4.233-2.359 4.487-5.16.28-3.085-.89-5.432-3.35-7.238\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M153.686 133.577s-6.522.47-8.36.372c-1.836-.098-1.904 2.19 2.359 2.264 3.739.15 5.451-.044 5.451-.044\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.16 135.877c-1.85 1.346.561 2.355.561 2.355s3.478.898 6.73.617\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.89 141.71s-6.28.111-6.73-2.132c-.223-1.346.45-1.402.45-1.402M146.114 140.868s-1.103 3.16 5.44 3.533M151.202 129.932v3.477M52.838 89.286c3.533-.337 8.423-1.248 13.582-7.754\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.567 248.318a6.647 6.647 0 0 1-6.647-6.647v-66.466a6.647 6.647 0 1 1 13.294 0v66.466a6.647 6.647 0 0 1-6.647 6.647\",\n fill: \"#5BA02E\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.543 247.653a6.647 6.647 0 0 1-6.646-6.647v-33.232a6.647 6.647 0 1 1 13.293 0v33.232a6.647 6.647 0 0 1-6.647 6.647\",\n fill: \"#92C110\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M186.443 293.613H158.92a3.187 3.187 0 0 1-3.187-3.187v-46.134a3.187 3.187 0 0 1 3.187-3.187h27.524a3.187 3.187 0 0 1 3.187 3.187v46.134a3.187 3.187 0 0 1-3.187 3.187\",\n fill: \"#F2D7AD\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.979 89.48s7.776 5.384 16.6 2.842\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.101\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n})));\nexport default NoFound;","import * as React from 'react';\nconst ServerError = () => /*#__PURE__*/React.createElement(\"svg\", {\n width: \"254\",\n height: \"294\"\n}, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 .335h253.49v253.49H0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 293.665h253.49V.401H0z\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 .067)\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 128.134v-2.11C0 56.608 56.273.334 125.69.334h2.11c69.416 0 125.69 56.274 125.69 125.69v2.11c0 69.417-56.274 125.69-125.69 125.69h-2.11C56.273 253.824 0 197.551 0 128.134\",\n fill: \"#E4EBF7\",\n mask: \"url(#b)\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.989 132.108a8.332 8.332 0 1 1-16.581-1.671 8.332 8.332 0 0 1 16.58 1.671\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.19 135.59l10.553 5.983M48.665 147.884l-12.734 10.861\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.11 160.816a5.706 5.706 0 1 1-11.354-1.145 5.706 5.706 0 0 1 11.354 1.145M57.943 144.6a5.747 5.747 0 1 1-11.436-1.152 5.747 5.747 0 0 1 11.436 1.153M99.656 27.434l30.024-.013a4.619 4.619 0 1 0-.004-9.238l-30.024.013a4.62 4.62 0 0 0 .004 9.238M111.14 45.896l30.023-.013a4.62 4.62 0 1 0-.004-9.238l-30.024.013a4.619 4.619 0 1 0 .004 9.238\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.53 27.421v-.002l15.89-.007a4.619 4.619 0 1 0 .005 9.238l-15.892.007v-.002a4.618 4.618 0 0 0-.004-9.234M150.167 70.091h-3.979a4.789 4.789 0 0 1-4.774-4.775 4.788 4.788 0 0 1 4.774-4.774h3.979a4.789 4.789 0 0 1 4.775 4.774 4.789 4.789 0 0 1-4.775 4.775\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M171.687 30.234c0-16.392 13.289-29.68 29.681-29.68 16.392 0 29.68 13.288 29.68 29.68 0 16.393-13.288 29.681-29.68 29.681s-29.68-13.288-29.68-29.68\",\n fill: \"#FF603B\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M203.557 19.435l-.676 15.035a1.514 1.514 0 0 1-3.026 0l-.675-15.035a2.19 2.19 0 1 1 4.377 0m-.264 19.378c.513.477.77 1.1.77 1.87s-.257 1.393-.77 1.907c-.55.476-1.21.733-1.943.733a2.545 2.545 0 0 1-1.87-.77c-.55-.514-.806-1.136-.806-1.87 0-.77.256-1.393.806-1.87.513-.513 1.137-.733 1.87-.733.77 0 1.43.22 1.943.733\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.3 133.275c4.426-.598 3.612-1.204 4.079-4.778.675-5.18-3.108-16.935-8.262-25.118-1.088-10.72-12.598-11.24-12.598-11.24s4.312 4.895 4.196 16.199c1.398 5.243.804 14.45.804 14.45s5.255 11.369 11.78 10.487\",\n fill: \"#FFB594\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.944 91.61s1.463-.583 3.211.582c8.08 1.398 10.368 6.706 11.3 11.368 1.864 1.282 1.864 2.33 1.864 3.496.365.777 1.515 3.03 1.515 3.03s-7.225 1.748-10.954 6.758c-1.399-6.41-6.936-25.235-6.936-25.235\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.008 90.5l1.019-5.815-9.23-11.874-5.233 5.581-2.593 9.863s8.39 5.128 16.037 2.246\",\n fill: \"#FFB594\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.931 78.216s-4.557-2.868-2.445-6.892c1.632-3.107 4.537 1.139 4.537 1.139s.524-3.662 3.139-3.662c.523-1.046 1.569-4.184 1.569-4.184s11.507 2.615 13.6 3.138c-.001 5.23-2.317 19.529-7.884 19.969-8.94.706-12.516-9.508-12.516-9.508\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.971 72.243c2.616-2.093 3.489-9.775 3.489-9.775s-2.492-.492-6.676-2.062c-4.708-2.092-12.867-4.771-17.575.982-9.54 4.41-2.062 19.93-2.062 19.93l2.729-3.037s-3.956-3.304-2.092-6.277c2.183-3.48 3.943 1.08 3.943 1.08s.64-2.4 3.6-3.36c.356-.714 1.04-2.69 1.44-3.872a1.08 1.08 0 0 1 1.27-.707c2.41.56 8.723 2.03 11.417 2.676.524.126.876.619.825 1.156l-.308 3.266z\",\n fill: \"#520038\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.22 76.514c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.961.491.083.805.647.702 1.26M94.26 75.074c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.96.491.082.805.646.702 1.26\",\n fill: \"#552950\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeWidth: \"1.063\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M99.206 73.644l-.9 1.62-.3 4.38h-2.24\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.926 73.284s1.8-.72 2.52.54\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.117\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.367 73.084s.48-1.12 1.12-.72c.64.4 1.28 1.44.56 2s.16 1.68.16 1.68\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.117\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.326 71.724s1.84 1.12 4.16.96\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.117\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.726 80.604s2.24 1.2 4.4 1.2M93.686 83.164s.96.4 1.52.32M83.687 80.044s1.786 6.547 9.262 7.954\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.063\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M95.548 91.663s-1.068 2.821-8.298 2.105c-7.23-.717-10.29-5.044-10.29-5.044\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.136\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.126 87.478s6.526 4.972 16.47 2.486c0 0 9.577 1.02 11.536 5.322 5.36 11.77.543 36.835 0 39.962 3.496 4.055-.466 8.483-.466 8.483-15.624-3.548-35.81-.6-35.81-.6-4.849-3.546-1.223-9.044-1.223-9.044L62.38 110.32c-2.485-15.227.833-19.803 3.549-20.743 3.03-1.049 8.04-1.282 8.04-1.282.496-.058 1.08-.076 1.37-.233 2.36-1.282 2.787-.583 2.787-.583\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.828 89.81s-6.875.465-7.59 8.156c-.466 8.857 3.03 10.954 3.03 10.954s6.075 22.102 16.796 22.957c8.39-2.176 4.758-6.702 4.661-11.42-.233-11.304-7.108-16.897-7.108-16.897s-4.212-13.75-9.789-13.75\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.716 124.225s.855 11.264 9.828 6.486c4.765-2.536 7.581-13.828 9.789-22.568 1.456-5.768 2.58-12.197 2.58-12.197l-4.973-1.709s-2.408 5.516-7.769 12.275c-4.335 5.467-9.144 11.11-9.455 17.713\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.463 105.191s1.747 2.724-2.331 30.535c2.376 2.216 1.053 6.012-.233 7.51\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.262 131.527s-.427 2.732-11.77 1.981c-15.187-1.006-25.326-3.25-25.326-3.25l.933-5.8s.723.215 9.71-.068c11.887-.373 18.714-6.07 24.964-1.022 4.039 3.263 1.489 8.16 1.489 8.16\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.24 90.974s-5.593-4.739-11.054 2.68c-3.318 7.223.517 15.284 2.664 19.578-.31 3.729 2.33 4.311 2.33 4.311s.108.895 1.516 2.68c4.078-7.03 6.72-9.166 13.711-12.546-.328-.656-1.877-3.265-1.825-3.767.175-1.69-1.282-2.623-1.282-2.623s-.286-.156-1.165-2.738c-.788-2.313-2.036-5.177-4.895-7.575\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.232 288.027s4.855 2.308 8.313 1.155c3.188-1.063 5.12.755 8.002 1.331 2.881.577 7.769 1.243 13.207-1.424-.117-6.228-7.786-4.499-13.518-7.588-2.895-1.56-4.276-5.336-4.066-9.944H91.544s-1.573 11.89-1.312 16.47\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.207 287.833s2.745 1.437 7.639.738c3.456-.494 3.223.66 7.418 1.282 4.195.621 13.092-.194 14.334-1.126.466 1.242-.388 2.33-.388 2.33s-1.709.682-5.438.932c-2.295.154-8.098.276-10.14-.621-2.02-1.554-4.894-1.515-6.06-.234-4.427 1.075-7.184-.31-7.184-.31l-.181-2.991z\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.429 272.257h3.496s-.117 7.574 5.127 9.671c-5.244.7-9.672-2.602-8.623-9.671\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.425 272.046s-2.208 7.774-4.702 12.899c-1.884 3.874-4.428 7.854 5.729 7.854 6.97 0 9.385-.503 7.782-6.917-1.604-6.415.279-13.836.279-13.836h-9.088z\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.066 290.277s2.198 1.225 6.954 1.225c6.376 0 8.646-1.73 8.646-1.73s.63 1.168-.649 2.27c-1.04.897-3.77 1.668-7.745 1.621-4.347-.05-6.115-.593-7.062-1.224-.864-.577-.72-1.657-.144-2.162\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.344 274.041s.035 1.592-.329 3.07c-.365 1.49-1.13 3.255-1.184 4.34-.061 1.206 4.755 1.657 5.403.036.65-1.622 1.357-6.737 2.006-7.602.648-.865-5.14-2.222-5.896.156\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.476 277.57l13.899.095s1.349-56.643 1.925-66.909c.576-10.267 3.923-45.052 1.042-65.585l-13.037-.669-23.737.81s-.452 4.12-1.243 10.365c-.065.515-.708.874-.777 1.417-.078.608.439 1.407.332 2.044-2.455 14.627-5.797 32.736-8.256 46.837-.121.693-1.282 1.048-1.515 2.796-.042.314.22 1.584.116 1.865-7.14 19.473-12.202 52.601-15.66 67.19l15.176-.015s2.282-10.145 4.185-18.871c2.922-13.389 24.012-88.32 24.012-88.32l3.133-.954-.158 48.568s-.233 1.282.35 2.098c.583.815-.581 1.167-.408 2.331l.408 1.864s-.466 7.458-.932 12.352c-.467 4.895 1.145 40.69 1.145 40.69\",\n fill: \"#7BB2F9\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.57 218.881c1.197.099 4.195-2.097 7.225-5.127M96.024 222.534s2.881-1.152 6.34-4.034\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.973 219.373s2.882-1.153 6.34-4.034\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.032\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.172 222.144s2.724-.614 6.759-3.496M74.903 146.166c-.281 3.226.31 8.856-4.506 9.478M93.182 144.344s.115 14.557-1.344 15.65c-2.305 1.73-3.107 2.02-3.107 2.02M89.197 144.923s.269 13.144-1.01 25.088M83.525 170.71s6.81-1.051 9.116-1.051M46.026 270.045l-.892 4.538M46.937 263.289l-.815 4.157M62.725 202.503c-.33 1.618-.102 1.904-.449 3.438 0 0-2.756 1.903-2.29 3.923.466 2.02-.31 3.424-4.505 17.252-1.762 5.807-4.233 18.922-6.165 28.278-.03.144-.521 2.646-1.14 5.8M64.158 194.136c-.295 1.658-.6 3.31-.917 4.938M71.33 146.787l-1.244 10.877s-1.14.155-.519 2.33c.117 1.399-2.778 16.39-5.382 31.615M44.242 273.727H58.07\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.18 142.117c-3.028-.489-18.825-2.744-36.219.2a.625.625 0 0 0-.518.644c.063 1.307.044 2.343.015 2.995a.617.617 0 0 0 .716.636c3.303-.534 17.037-2.412 35.664-.266.347.04.66-.214.692-.56.124-1.347.16-2.425.17-3.029a.616.616 0 0 0-.52-.62\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.398 145.264l.003-5.102a.843.843 0 0 0-.809-.847 114.104 114.104 0 0 0-8.141-.014.85.85 0 0 0-.82.847l-.003 5.097c0 .476.388.857.864.845 2.478-.064 5.166-.067 8.03.017a.848.848 0 0 0 .876-.843\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M95.239 144.296l.002-3.195a.667.667 0 0 0-.643-.672c-1.9-.061-3.941-.073-6.094-.01a.675.675 0 0 0-.654.672l-.002 3.192c0 .376.305.677.68.669 1.859-.042 3.874-.043 6.02.012.376.01.69-.291.691-.668\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.102 273.522h12.819M91.216 269.761c.006 3.519-.072 5.55 0 6.292M90.923 263.474c-.009 1.599-.016 2.558-.016 4.505M90.44 170.404l.932 46.38s.7 1.631-.233 2.796c-.932 1.166 2.564.7.932 2.33-1.63 1.633.933 1.166 0 3.497-.618 1.546-1.031 21.921-1.138 36.513\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.736 98.665l2.214 4.312s2.098.816 1.865 2.68l.816 2.214M64.297 116.611c.233-.932 2.176-7.147 12.585-10.488M77.598 90.042s7.691 6.137 16.547 2.72\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.974 86.954s5.476-.816 7.574-4.545c1.297-.345.72 2.212-.33 3.671-.7.971-1.01 1.554-1.01 1.554s.194.31.155.816c-.053.697-.175.653-.272 1.048-.081.335.108.657 0 1.049-.046.17-.198.5-.382.878-.12.249-.072.687-.2.948-.231.469-1.562 1.87-2.622 2.855-3.826 3.554-5.018 1.644-6.001-.408-.894-1.865-.661-5.127-.874-6.875-.35-2.914-2.622-3.03-1.923-4.429.343-.685 2.87.69 3.263 1.748.757 2.04 2.952 1.807 2.622 1.69\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.8 82.429c-.465.077-.35.272-.97 1.243-.622.971-4.817 2.932-6.39 3.224-2.589.48-2.278-1.56-4.254-2.855-1.69-1.107-3.562-.638-1.398 1.398.99.932.932 1.107 1.398 3.205.335 1.506-.64 3.67.7 5.593\",\n stroke: \"#DB836E\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.543 108.673c-2.1 2.926-4.266 6.175-5.557 8.762\",\n stroke: \"#E59788\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.72 124.768s-2.098-1.942-5.127-2.719c-3.03-.777-3.574-.155-5.516.078-1.942.233-3.885-.932-3.652.7.233 1.63 5.05 1.01 5.206 2.097.155 1.087-6.37 2.796-8.313 2.175-.777.777.466 1.864 2.02 2.175.233 1.554 2.253 1.554 2.253 1.554s.699 1.01 2.641 1.088c2.486 1.32 8.934-.7 10.954-1.554 2.02-.855-.466-5.594-.466-5.594\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.425 122.826s.66 1.127 3.167 1.418c2.315.27 2.563.583 2.563.583s-2.545 2.894-9.07 2.272M72.416 129.274s3.826.097 4.933-.718M74.98 130.75s1.961.136 3.36-.505M77.232 131.916s1.748.019 2.914-.505M73.328 122.321s-.595-1.032 1.262-.427c1.671.544 2.833.055 5.128.155 1.389.061 3.067-.297 3.982.15 1.606.784 3.632 2.181 3.632 2.181s10.526 1.204 19.033-1.127M78.864 108.104s-8.39 2.758-13.168 12.12\",\n stroke: \"#E59788\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.278 112.533s3.38-3.613 7.575-4.662\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.375 123.006s9.697-2.745 11.445-.88\",\n stroke: \"#E59788\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M194.605 83.656l3.971-3.886M187.166 90.933l3.736-3.655M191.752 84.207l-4.462-4.56M198.453 91.057l-4.133-4.225M129.256 163.074l3.718-3.718M122.291 170.039l3.498-3.498M126.561 163.626l-4.27-4.27M132.975 170.039l-3.955-3.955\",\n stroke: \"#BFCDDD\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M190.156 211.779h-1.604a4.023 4.023 0 0 1-4.011-4.011V175.68a4.023 4.023 0 0 1 4.01-4.01h1.605a4.023 4.023 0 0 1 4.011 4.01v32.088a4.023 4.023 0 0 1-4.01 4.01\",\n fill: \"#A3B4C6\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M237.824 212.977a4.813 4.813 0 0 1-4.813 4.813h-86.636a4.813 4.813 0 0 1 0-9.626h86.636a4.813 4.813 0 0 1 4.813 4.813\",\n fill: \"#A3B4C6\"\n}), /*#__PURE__*/React.createElement(\"mask\", {\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A3B4C6\",\n mask: \"url(#d)\",\n d: \"M154.098 190.096h70.513v-84.617h-70.513z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.928 190.096H153.78a3.219 3.219 0 0 1-3.208-3.209V167.92a3.219 3.219 0 0 1 3.208-3.21h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.219 3.219 0 0 1-3.21 3.209M224.928 130.832H153.78a3.218 3.218 0 0 1-3.208-3.208v-18.968a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.218 3.218 0 0 1-3.21 3.208\",\n fill: \"#BFCDDD\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.563 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 120.546h-22.461a.802.802 0 0 1-.802-.802v-3.208c0-.443.359-.803.802-.803h22.46c.444 0 .803.36.803.803v3.208c0 .443-.36.802-.802.802\",\n fill: \"#FFF\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.928 160.464H153.78a3.218 3.218 0 0 1-3.208-3.209v-18.967a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.209v18.967a3.218 3.218 0 0 1-3.21 3.209\",\n fill: \"#BFCDDD\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.455 130.832h49.301M164.984 130.832h6.089M155.952 130.832h6.75M173.837 160.613h49.3M165.365 160.613h6.089M155.57 160.613h6.751\",\n stroke: \"#7C90A5\",\n strokeWidth: \"1.124\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.563 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M166.98 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M174.397 151.038a2.407 2.407 0 1 1 .001-4.814 2.407 2.407 0 0 1 0 4.814M222.539 151.038h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802M159.563 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 179.987h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802\",\n fill: \"#FFF\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M203.04 221.108h-27.372a2.413 2.413 0 0 1-2.406-2.407v-11.448a2.414 2.414 0 0 1 2.406-2.407h27.372a2.414 2.414 0 0 1 2.407 2.407V218.7a2.413 2.413 0 0 1-2.407 2.407\",\n fill: \"#BFCDDD\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M177.259 207.217v11.52M201.05 207.217v11.52\",\n stroke: \"#A3B4C6\",\n strokeWidth: \"1.124\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.873 267.894a9.422 9.422 0 0 1-9.422-9.422v-14.82a9.423 9.423 0 0 1 18.845 0v14.82a9.423 9.423 0 0 1-9.423 9.422\",\n fill: \"#5BA02E\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M171.22 267.83a9.422 9.422 0 0 1-9.422-9.423v-3.438a9.423 9.423 0 0 1 18.845 0v3.438a9.423 9.423 0 0 1-9.422 9.423\",\n fill: \"#92C110\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M181.31 293.666h-27.712a3.209 3.209 0 0 1-3.209-3.21V269.79a3.209 3.209 0 0 1 3.209-3.21h27.711a3.209 3.209 0 0 1 3.209 3.21v20.668a3.209 3.209 0 0 1-3.209 3.209\",\n fill: \"#F2D7AD\",\n mask: \"url(#d)\"\n})));\nexport default ServerError;","import * as React from 'react';\nconst Unauthorized = () => /*#__PURE__*/React.createElement(\"svg\", {\n width: \"251\",\n height: \"294\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 129.023v-2.084C0 58.364 55.591 2.774 124.165 2.774h2.085c68.574 0 124.165 55.59 124.165 124.165v2.084c0 68.575-55.59 124.166-124.165 124.166h-2.085C55.591 253.189 0 197.598 0 129.023\",\n fill: \"#E4EBF7\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.417 132.92a8.231 8.231 0 1 1-16.38-1.65 8.231 8.231 0 0 1 16.38 1.65\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.652 136.36l10.425 5.91M49.989 148.505l-12.58 10.73\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.536 161.28a5.636 5.636 0 1 1-11.216-1.13 5.636 5.636 0 0 1 11.216 1.13M59.154 145.261a5.677 5.677 0 1 1-11.297-1.138 5.677 5.677 0 0 1 11.297 1.138M100.36 29.516l29.66-.013a4.562 4.562 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 0 0 .005 9.126M111.705 47.754l29.659-.013a4.563 4.563 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 1 0 .005 9.126\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.066 29.503V29.5l15.698-.007a4.563 4.563 0 1 0 .004 9.126l-15.698.007v-.002a4.562 4.562 0 0 0-.004-9.122M185.405 137.723c-.55 5.455-5.418 9.432-10.873 8.882-5.456-.55-9.432-5.418-8.882-10.873.55-5.455 5.418-9.432 10.873-8.882 5.455.55 9.432 5.418 8.882 10.873\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.17 143.772l12.572 7.129M193.841 158.42L178.67 171.36\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M185.55 171.926a6.798 6.798 0 1 1-13.528-1.363 6.798 6.798 0 0 1 13.527 1.363M204.12 155.285a6.848 6.848 0 1 1-13.627-1.375 6.848 6.848 0 0 1 13.626 1.375\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M152.988 194.074a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0zM225.931 118.217a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM217.09 153.051a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.42 0zM177.84 109.842a2.21 2.21 0 1 1-4.422 0 2.21 2.21 0 0 1 4.421 0zM196.114 94.454a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM202.844 182.523a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0z\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#FFF\",\n strokeWidth: \"2\",\n d: \"M215.125 155.262l-1.902 20.075-10.87 5.958M174.601 176.636l-6.322 9.761H156.98l-4.484 6.449M175.874 127.28V111.56M221.51 119.404l-12.77 7.859-15.228-7.86V96.668\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.68 29.32C180.68 13.128 193.806 0 210 0c16.193 0 29.32 13.127 29.32 29.32 0 16.194-13.127 29.322-29.32 29.322-16.193 0-29.32-13.128-29.32-29.321\",\n fill: \"#A26EF4\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M221.45 41.706l-21.563-.125a1.744 1.744 0 0 1-1.734-1.754l.071-12.23a1.744 1.744 0 0 1 1.754-1.734l21.562.125c.964.006 1.74.791 1.735 1.755l-.071 12.229a1.744 1.744 0 0 1-1.754 1.734\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M215.106 29.192c-.015 2.577-2.049 4.654-4.543 4.64-2.494-.014-4.504-2.115-4.489-4.693l.04-6.925c.016-2.577 2.05-4.654 4.543-4.64 2.494.015 4.504 2.116 4.49 4.693l-.04 6.925zm-4.53-14.074a6.877 6.877 0 0 0-6.916 6.837l-.043 7.368a6.877 6.877 0 0 0 13.754.08l.042-7.368a6.878 6.878 0 0 0-6.837-6.917zM167.566 68.367h-3.93a4.73 4.73 0 0 1-4.717-4.717 4.73 4.73 0 0 1 4.717-4.717h3.93a4.73 4.73 0 0 1 4.717 4.717 4.73 4.73 0 0 1-4.717 4.717\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.214 248.838a6.611 6.611 0 0 1-6.61-6.611v-66.108a6.611 6.611 0 0 1 13.221 0v66.108a6.611 6.611 0 0 1-6.61 6.61\",\n fill: \"#5BA02E\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.147 248.176a6.611 6.611 0 0 1-6.61-6.61v-33.054a6.611 6.611 0 1 1 13.221 0v33.053a6.611 6.611 0 0 1-6.61 6.611\",\n fill: \"#92C110\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M185.994 293.89h-27.376a3.17 3.17 0 0 1-3.17-3.17v-45.887a3.17 3.17 0 0 1 3.17-3.17h27.376a3.17 3.17 0 0 1 3.17 3.17v45.886a3.17 3.17 0 0 1-3.17 3.17\",\n fill: \"#F2D7AD\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.972 147.673s6.377-.927 17.566-1.28c11.729-.371 17.57 1.086 17.57 1.086s3.697-3.855.968-8.424c1.278-12.077 5.982-32.827.335-48.273-1.116-1.339-3.743-1.512-7.536-.62-1.337.315-7.147-.149-7.983-.1l-15.311-.347s-3.487-.17-8.035-.508c-1.512-.113-4.227-1.683-5.458-.338-.406.443-2.425 5.669-1.97 16.077l8.635 35.642s-3.141 3.61 1.219 7.085\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.768 73.325l-.9-6.397 11.982-6.52s7.302-.118 8.038 1.205c.737 1.324-5.616.993-5.616.993s-1.836 1.388-2.615 2.5c-1.654 2.363-.986 6.471-8.318 5.986-1.708.284-2.57 2.233-2.57 2.233\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.44 77.672s14.217 9.406 24.973 14.444c1.061.497-2.094 16.183-11.892 11.811-7.436-3.318-20.162-8.44-21.482-14.496-.71-3.258 2.543-7.643 8.401-11.76M141.862 80.113s-6.693 2.999-13.844 6.876c-3.894 2.11-10.137 4.704-12.33 7.988-6.224 9.314 3.536 11.22 12.947 7.503 6.71-2.651 28.999-12.127 13.227-22.367\",\n fill: \"#FFB594\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.166 66.36l3.06 3.881s-2.783 2.67-6.31 5.747c-7.103 6.195-12.803 14.296-15.995 16.44-3.966 2.662-9.754 3.314-12.177-.118-3.553-5.032.464-14.628 31.422-25.95\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.674 85.116s-2.34 8.413-8.912 14.447c.652.548 18.586 10.51 22.144 10.056 5.238-.669 6.417-18.968 1.145-20.531-.702-.208-5.901-1.286-8.853-2.167-.87-.26-1.611-1.71-3.545-.936l-1.98-.869zM128.362 85.826s5.318 1.956 7.325 13.734c-.546.274-17.55 12.35-21.829 7.805-6.534-6.94-.766-17.393 4.275-18.61 4.646-1.121 5.03-1.37 10.23-2.929\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.18 94.656s.911 7.41-4.914 13.078\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.397 94.68s3.124 2.572 10.263 2.572c7.14 0 9.074-3.437 9.074-3.437\",\n stroke: \"#E4EBF7\",\n strokeWidth: \".932\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.184 68.639l-6.781-6.177s-5.355-4.314-9.223-.893c-3.867 3.422 4.463 2.083 5.653 4.165 1.19 2.082.848 1.143-2.083.446-5.603-1.331-2.082.893 2.975 5.355 2.091 1.845 6.992.955 6.992.955l2.467-3.851z\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.282 91.315l-.297-10.937-15.918-.027-.53 10.45c-.026.403.17.788.515.999 2.049 1.251 9.387 5.093 15.799.424.287-.21.443-.554.431-.91\",\n fill: \"#FFB594\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.573 74.24c.817-1.147.982-9.118 1.015-11.928a1.046 1.046 0 0 0-.965-1.055l-4.62-.365c-7.71-1.044-17.071.624-18.253 6.346-5.482 5.813-.421 13.244-.421 13.244s1.963 3.566 4.305 6.791c.756 1.041.398-3.731 3.04-5.929 5.524-4.594 15.899-7.103 15.899-7.103\",\n fill: \"#5C2552\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.426 83.206s2.685 6.202 11.602 6.522c7.82.28 8.973-7.008 7.434-17.505l-.909-5.483c-6.118-2.897-15.478.54-15.478.54s-.576 2.044-.19 5.504c-2.276 2.066-1.824 5.618-1.824 5.618s-.905-1.922-1.98-2.321c-.86-.32-1.897.089-2.322 1.98-1.04 4.632 3.667 5.145 3.667 5.145\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeWidth: \"1.145\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M100.843 77.099l1.701-.928-1.015-4.324.674-1.406\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.546 74.092c-.022.713-.452 1.279-.96 1.263-.51-.016-.904-.607-.882-1.32.021-.713.452-1.278.96-1.263.51.016.904.607.882 1.32M97.592 74.349c-.022.713-.452 1.278-.961 1.263-.509-.016-.904-.607-.882-1.32.022-.713.452-1.279.961-1.263.51.016.904.606.882 1.32\",\n fill: \"#552950\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.132 86.786s5.269 4.957 12.679 2.327\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.145\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.776 81.903s-3.592.232-1.44-2.79c1.59-1.496 4.897-.46 4.897-.46s1.156 3.906-3.457 3.25\",\n fill: \"#DB836E\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.88 70.6s2.483.84 3.402.715M93.883 71.975s2.492-1.144 4.778-1.073\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.526\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.32 77.374s.961.879 1.458 2.106c-.377.48-1.033 1.152-.236 1.809M99.337 83.719s1.911.151 2.509-.254\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.145\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.782 115.821l15.73-3.012M100.165 115.821l10.04-2.008\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.508 86.763s-1.598 8.83-6.697 14.078\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.114\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.31 87.934s3.013 4.121 4.06 11.785\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.09 84.816s-6.03 9.912-13.607 9.903\",\n stroke: \"#DB836E\",\n strokeWidth: \".795\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.366 65.909l-.142 5.32s5.993 4.472 11.945 9.202c4.482 3.562 8.888 7.455 10.985 8.662 4.804 2.766 8.9 3.355 11.076 1.808 4.071-2.894 4.373-9.878-8.136-15.263-4.271-1.838-16.144-6.36-25.728-9.73\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M130.532 85.488s4.588 5.757 11.619 6.214\",\n stroke: \"#DB836E\",\n strokeWidth: \".75\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.708 105.73s-.393 8.564-1.34 13.612\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M115.784 161.512s-3.57-1.488-2.678-7.14\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.52 290.246s4.326 2.057 7.408 1.03c2.842-.948 4.564.673 7.132 1.186 2.57.514 6.925 1.108 11.772-1.269-.104-5.551-6.939-4.01-12.048-6.763-2.582-1.39-3.812-4.757-3.625-8.863h-9.471s-1.402 10.596-1.169 14.68\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.496 290.073s2.447 1.281 6.809.658c3.081-.44 3.74.485 7.479 1.039 3.739.554 10.802-.07 11.91-.9.415 1.108-.347 2.077-.347 2.077s-1.523.608-4.847.831c-2.045.137-5.843.293-7.663-.507-1.8-1.385-5.286-1.917-5.77-.243-3.947.958-7.41-.288-7.41-.288l-.16-2.667z\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.824 276.19h3.116s-.103 6.751 4.57 8.62c-4.673.624-8.62-2.32-7.686-8.62\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.65 272.52s-2.122 7.47-4.518 12.396c-1.811 3.724-4.255 7.548 5.505 7.548 6.698 0 9.02-.483 7.479-6.648-1.541-6.164.268-13.296.268-13.296H57.65z\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.54 290.04s2.111 1.178 6.682 1.178c6.128 0 8.31-1.662 8.31-1.662s.605 1.122-.624 2.18c-1 .862-3.624 1.603-7.444 1.559-4.177-.049-5.876-.57-6.786-1.177-.831-.554-.692-1.593-.138-2.078\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.533 274.438s.034 1.529-.315 2.95c-.352 1.431-1.087 3.127-1.139 4.17-.058 1.16 4.57 1.592 5.194.035.623-1.559 1.303-6.475 1.927-7.306.622-.831-4.94-2.135-5.667.15\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.885 277.015l13.306.092s1.291-54.228 1.843-64.056c.552-9.828 3.756-43.13.997-62.788l-12.48-.64-22.725.776s-.433 3.944-1.19 9.921c-.062.493-.677.838-.744 1.358-.075.582.42 1.347.318 1.956-2.35 14.003-6.343 32.926-8.697 46.425-.116.663-1.227 1.004-1.45 2.677-.04.3.21 1.516.112 1.785-6.836 18.643-10.89 47.584-14.2 61.551l14.528-.014s2.185-8.524 4.008-16.878c2.796-12.817 22.987-84.553 22.987-84.553l3-.517 1.037 46.1s-.223 1.228.334 2.008c.558.782-.556 1.117-.39 2.233l.39 1.784s-.446 7.14-.892 11.826c-.446 4.685-.092 38.954-.092 38.954\",\n fill: \"#7BB2F9\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.438 220.434c1.146.094 4.016-2.008 6.916-4.91M107.55 223.931s2.758-1.103 6.069-3.862\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.459 220.905s2.759-1.104 6.07-3.863\",\n stroke: \"#648BD8\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.099 223.557s2.608-.587 6.47-3.346M87.33 150.82c-.27 3.088.297 8.478-4.315 9.073M104.829 149.075s.11 13.936-1.286 14.983c-2.207 1.655-2.975 1.934-2.975 1.934M101.014 149.63s.035 12.81-1.19 24.245M94.93 174.965s7.174-1.655 9.38-1.655M75.671 204.754c-.316 1.55-.64 3.067-.973 4.535 0 0-1.45 1.822-1.003 3.756.446 1.934-.943 2.034-4.96 15.273-1.686 5.559-4.464 18.49-6.313 27.447-.078.38-4.018 18.06-4.093 18.423M77.043 196.743a313.269 313.269 0 0 1-.877 4.729M83.908 151.414l-1.19 10.413s-1.091.148-.496 2.23c.111 1.34-2.66 15.692-5.153 30.267M57.58 272.94h13.238\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.377 147.423s-16.955-3.087-35.7.199c.157 2.501-.002 4.128-.002 4.128s14.607-2.802 35.476-.31c.251-2.342.226-4.017.226-4.017\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.511 150.353l.004-4.885a.807.807 0 0 0-.774-.81c-2.428-.092-5.04-.108-7.795-.014a.814.814 0 0 0-.784.81l-.003 4.88c0 .456.371.82.827.808a140.76 140.76 0 0 1 7.688.017.81.81 0 0 0 .837-.806\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.402 149.426l.002-3.06a.64.64 0 0 0-.616-.643 94.135 94.135 0 0 0-5.834-.009.647.647 0 0 0-.626.643l-.001 3.056c0 .36.291.648.651.64 1.78-.04 3.708-.041 5.762.012.36.009.662-.279.662-.64\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.485 273.933h12.272M102.652 269.075c.006 3.368.04 5.759.11 6.47M102.667 263.125c-.009 1.53-.015 2.98-.016 4.313M102.204 174.024l.893 44.402s.669 1.561-.224 2.677c-.892 1.116 2.455.67.893 2.231-1.562 1.562.893 1.116 0 3.347-.592 1.48-.988 20.987-1.09 34.956\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n})));\nexport default Unauthorized;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n lineHeightHeading3,\n iconCls,\n padding,\n paddingXL,\n paddingXS,\n paddingLG,\n marginXS,\n lineHeight\n } = token;\n return {\n // Result\n [componentCls]: {\n padding: `${paddingLG * 2}px ${paddingXL}px`,\n // RTL\n '&-rtl': {\n direction: 'rtl'\n }\n },\n // Exception Status image\n [`${componentCls} ${componentCls}-image`]: {\n width: token.imageWidth,\n height: token.imageHeight,\n margin: 'auto'\n },\n [`${componentCls} ${componentCls}-icon`]: {\n marginBottom: paddingLG,\n textAlign: 'center',\n [`& > ${iconCls}`]: {\n fontSize: token.iconFontSize\n }\n },\n [`${componentCls} ${componentCls}-title`]: {\n color: token.colorTextHeading,\n fontSize: token.titleFontSize,\n lineHeight: lineHeightHeading3,\n marginBlock: marginXS,\n textAlign: 'center'\n },\n [`${componentCls} ${componentCls}-subtitle`]: {\n color: token.colorTextDescription,\n fontSize: token.subtitleFontSize,\n lineHeight,\n textAlign: 'center'\n },\n [`${componentCls} ${componentCls}-content`]: {\n marginTop: paddingLG,\n padding: `${paddingLG}px ${padding * 2.5}px`,\n backgroundColor: token.colorFillAlter\n },\n [`${componentCls} ${componentCls}-extra`]: {\n margin: token.extraMargin,\n textAlign: 'center',\n '& > *': {\n marginInlineEnd: paddingXS,\n '&:last-child': {\n marginInlineEnd: 0\n }\n }\n }\n };\n};\nconst genStatusIconStyle = token => {\n const {\n componentCls,\n iconCls\n } = token;\n return {\n [`${componentCls}-success ${componentCls}-icon > ${iconCls}`]: {\n color: token.resultSuccessIconColor\n },\n [`${componentCls}-error ${componentCls}-icon > ${iconCls}`]: {\n color: token.resultErrorIconColor\n },\n [`${componentCls}-info ${componentCls}-icon > ${iconCls}`]: {\n color: token.resultInfoIconColor\n },\n [`${componentCls}-warning ${componentCls}-icon > ${iconCls}`]: {\n color: token.resultWarningIconColor\n }\n };\n};\nconst genResultStyle = token => [genBaseStyle(token), genStatusIconStyle(token)];\n// ============================== Export ==============================\nconst getStyle = token => genResultStyle(token);\nexport default genComponentStyleHook('Result', token => {\n const resultInfoIconColor = token.colorInfo;\n const resultErrorIconColor = token.colorError;\n const resultSuccessIconColor = token.colorSuccess;\n const resultWarningIconColor = token.colorWarning;\n const resultToken = mergeToken(token, {\n resultInfoIconColor,\n resultErrorIconColor,\n resultSuccessIconColor,\n resultWarningIconColor,\n imageWidth: 250,\n imageHeight: 295\n });\n return [getStyle(resultToken)];\n}, token => ({\n titleFontSize: token.fontSizeHeading3,\n subtitleFontSize: token.fontSize,\n iconFontSize: token.fontSizeHeading3 * 3,\n extraMargin: `${token.paddingLG}px 0 0 0`\n}));","'use client';\n\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport WarningFilled from \"@ant-design/icons/es/icons/WarningFilled\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport noFound from './noFound';\nimport serverError from './serverError';\nimport unauthorized from './unauthorized';\nimport useStyle from './style';\nexport const IconMap = {\n success: CheckCircleFilled,\n error: CloseCircleFilled,\n info: ExclamationCircleFilled,\n warning: WarningFilled\n};\nexport const ExceptionMap = {\n '404': noFound,\n '500': serverError,\n '403': unauthorized\n};\n// ExceptionImageMap keys\nconst ExceptionStatus = Object.keys(ExceptionMap);\nconst Icon = _ref => {\n let {\n prefixCls,\n icon,\n status\n } = _ref;\n const className = classNames(`${prefixCls}-icon`);\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Result', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n if (ExceptionStatus.includes(`${status}`)) {\n const SVGComponent = ExceptionMap[status];\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${className} ${prefixCls}-image`\n }, /*#__PURE__*/React.createElement(SVGComponent, null));\n }\n const iconNode = /*#__PURE__*/React.createElement(IconMap[status]);\n if (icon === null || icon === false) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, icon || iconNode);\n};\nconst Extra = _ref2 => {\n let {\n prefixCls,\n extra\n } = _ref2;\n if (!extra) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-extra`\n }, extra);\n};\nconst Result = _ref3 => {\n let {\n prefixCls: customizePrefixCls,\n className: customizeClassName,\n rootClassName,\n subTitle,\n title,\n style,\n children,\n status = 'info',\n icon,\n extra\n } = _ref3;\n const {\n getPrefixCls,\n direction,\n result\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('result', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const className = classNames(prefixCls, `${prefixCls}-${status}`, customizeClassName, result === null || result === void 0 ? void 0 : result.className, rootClassName, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, hashId);\n const mergedStyle = Object.assign(Object.assign({}, result === null || result === void 0 ? void 0 : result.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: mergedStyle\n }, /*#__PURE__*/React.createElement(Icon, {\n prefixCls: prefixCls,\n status: status,\n icon: icon\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, title), subTitle && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-subtitle`\n }, subTitle), /*#__PURE__*/React.createElement(Extra, {\n prefixCls: prefixCls,\n extra: extra\n }), children && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-content`\n }, children)));\n};\nResult.PRESENTED_IMAGE_403 = ExceptionMap['403'];\nResult.PRESENTED_IMAGE_404 = ExceptionMap['404'];\nResult.PRESENTED_IMAGE_500 = ExceptionMap['500'];\nif (process.env.NODE_ENV !== 'production') {\n Result.displayName = 'Result';\n}\nexport default Result;","'use client';\n\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};\n// TODO: 4.0 - codemod should help to change `filterOption` to support node props.\nimport classNames from 'classnames';\nimport RcSelect, { OptGroup, Option } from 'rc-select';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport { getTransitionName } from '../_util/motion';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport { useCompactItemContext } from '../space/Compact';\nimport useStyle from './style';\nimport useBuiltinPlacements from './useBuiltinPlacements';\nimport useShowArrow from './useShowArrow';\nimport getIcons from './utils/iconUtil';\nconst SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nconst InternalSelect = (_a, ref) => {\n var _b;\n var {\n prefixCls: customizePrefixCls,\n bordered = true,\n className,\n rootClassName,\n getPopupContainer,\n popupClassName,\n dropdownClassName,\n listHeight = 256,\n placement,\n listItemHeight = 24,\n size: customizeSize,\n disabled: customDisabled,\n notFoundContent,\n status: customStatus,\n builtinPlacements,\n dropdownMatchSelectWidth,\n popupMatchSelectWidth,\n direction: propDirection,\n style,\n allowClear\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"className\", \"rootClassName\", \"getPopupContainer\", \"popupClassName\", \"dropdownClassName\", \"listHeight\", \"placement\", \"listItemHeight\", \"size\", \"disabled\", \"notFoundContent\", \"status\", \"builtinPlacements\", \"dropdownMatchSelectWidth\", \"popupMatchSelectWidth\", \"direction\", \"style\", \"allowClear\"]);\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n renderEmpty,\n direction: contextDirection,\n virtual,\n popupMatchSelectWidth: contextPopupMatchSelectWidth,\n popupOverflow,\n select\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('select', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const direction = propDirection !== null && propDirection !== void 0 ? propDirection : contextDirection;\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mode = React.useMemo(() => {\n const {\n mode: m\n } = props;\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 const isMultiple = mode === 'multiple' || mode === 'tags';\n const showSuffixIcon = useShowArrow(props.suffixIcon, props.showArrow);\n const mergedPopupMatchSelectWidth = (_b = popupMatchSelectWidth !== null && popupMatchSelectWidth !== void 0 ? popupMatchSelectWidth : dropdownMatchSelectWidth) !== null && _b !== void 0 ? _b : contextPopupMatchSelectWidth;\n // ===================== Form Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n isFormItemInput,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Empty =====================\n let mergedNotFound;\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else if (mode === 'combobox') {\n mergedNotFound = null;\n } else {\n mergedNotFound = (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Select')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Select\"\n });\n }\n // ===================== Icons =====================\n const {\n suffixIcon,\n itemIcon,\n removeIcon,\n clearIcon\n } = getIcons(Object.assign(Object.assign({}, props), {\n multiple: isMultiple,\n hasFeedback,\n feedbackIcon,\n showSuffixIcon,\n prefixCls,\n showArrow: props.showArrow,\n componentName: 'Select'\n }));\n const mergedAllowClear = allowClear === true ? {\n clearIcon\n } : allowClear;\n const selectProps = omit(props, ['suffixIcon', 'itemIcon']);\n const rcSelectRtlDropdownClassName = classNames(popupClassName || dropdownClassName, {\n [`${prefixCls}-dropdown-${direction}`]: direction === 'rtl'\n }, rootClassName, hashId);\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const mergedClassName = classNames({\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-in-form-item`]: isFormItemInput\n }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, select === null || select === void 0 ? void 0 : select.className, className, rootClassName, hashId);\n // ===================== Placement =====================\n const memoPlacement = React.useMemo(() => {\n if (placement !== undefined) {\n return placement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n }, [placement, direction]);\n const mergedBuiltinPlacements = useBuiltinPlacements(builtinPlacements, popupOverflow);\n // ====================== Warning ======================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'Select', '`dropdownClassName` is deprecated. Please use `popupClassName` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(dropdownMatchSelectWidth === undefined, 'Select', '`dropdownMatchSelectWidth` is deprecated. Please use `popupMatchSelectWidth` instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!('showArrow' in props), 'Select', '`showArrow` is deprecated which will be removed in next major version. It will be a default behavior, you can hide it by setting `suffixIcon` to null.') : void 0;\n }\n // ====================== Render =======================\n return wrapSSR( /*#__PURE__*/React.createElement(RcSelect, Object.assign({\n ref: ref,\n virtual: virtual,\n showSearch: select === null || select === void 0 ? void 0 : select.showSearch\n }, selectProps, {\n style: Object.assign(Object.assign({}, select === null || select === void 0 ? void 0 : select.style), style),\n dropdownMatchSelectWidth: mergedPopupMatchSelectWidth,\n builtinPlacements: mergedBuiltinPlacements,\n transitionName: getTransitionName(rootPrefixCls, 'slide-up', props.transitionName),\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n mode: mode,\n prefixCls: prefixCls,\n placement: memoPlacement,\n direction: direction,\n suffixIcon: suffixIcon,\n menuItemSelectedIcon: itemIcon,\n removeIcon: removeIcon,\n allowClear: mergedAllowClear,\n notFoundContent: mergedNotFound,\n className: mergedClassName,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n dropdownClassName: rcSelectRtlDropdownClassName,\n disabled: mergedDisabled\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n InternalSelect.displayName = 'Select';\n}\nconst Select = /*#__PURE__*/React.forwardRef(InternalSelect);\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(Select);\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nSelect._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n Select.displayName = 'Select';\n}\nexport default Select;","import { resetComponent, textEllipsis } from '../../style';\nimport { initMoveMotion, initSlideMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nconst genItemStyle = token => {\n const {\n controlPaddingHorizontal,\n controlHeight,\n fontSize,\n lineHeight\n } = token;\n return {\n position: 'relative',\n display: 'block',\n minHeight: controlHeight,\n padding: `${(controlHeight - fontSize * lineHeight) / 2}px ${controlPaddingHorizontal}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize,\n lineHeight,\n boxSizing: 'border-box'\n };\n};\nconst genSingleStyle = token => {\n const {\n antCls,\n componentCls\n } = token;\n const selectItemCls = `${componentCls}-item`;\n const slideUpEnterActive = `&${antCls}-slide-up-enter${antCls}-slide-up-enter-active`;\n const slideUpAppearActive = `&${antCls}-slide-up-appear${antCls}-slide-up-appear-active`;\n const slideUpLeaveActive = `&${antCls}-slide-up-leave${antCls}-slide-up-leave-active`;\n const dropdownPlacementCls = `${componentCls}-dropdown-placement-`;\n return [{\n [`${componentCls}-dropdown`]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n zIndex: token.zIndexPopup,\n boxSizing: 'border-box',\n padding: token.paddingXXS,\n overflow: 'hidden',\n fontSize: token.fontSize,\n // Fix select render lag of long text in chrome\n // https://github.com/ant-design/ant-design/issues/11456\n // https://github.com/ant-design/ant-design/issues/11843\n fontVariant: 'initial',\n backgroundColor: token.colorBgElevated,\n borderRadius: token.borderRadiusLG,\n outline: 'none',\n boxShadow: token.boxShadowSecondary,\n [`\n ${slideUpEnterActive}${dropdownPlacementCls}bottomLeft,\n ${slideUpAppearActive}${dropdownPlacementCls}bottomLeft\n `]: {\n animationName: slideUpIn\n },\n [`\n ${slideUpEnterActive}${dropdownPlacementCls}topLeft,\n ${slideUpAppearActive}${dropdownPlacementCls}topLeft,\n ${slideUpEnterActive}${dropdownPlacementCls}topRight,\n ${slideUpAppearActive}${dropdownPlacementCls}topRight\n `]: {\n animationName: slideDownIn\n },\n [`${slideUpLeaveActive}${dropdownPlacementCls}bottomLeft`]: {\n animationName: slideUpOut\n },\n [`\n ${slideUpLeaveActive}${dropdownPlacementCls}topLeft,\n ${slideUpLeaveActive}${dropdownPlacementCls}topRight\n `]: {\n animationName: slideDownOut\n },\n '&-hidden': {\n display: 'none'\n },\n [`${selectItemCls}`]: Object.assign(Object.assign({}, genItemStyle(token)), {\n cursor: 'pointer',\n transition: `background ${token.motionDurationSlow} ease`,\n borderRadius: token.borderRadiusSM,\n // =========== Group ============\n '&-group': {\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n cursor: 'default'\n },\n // =========== Option ===========\n '&-option': {\n display: 'flex',\n '&-content': Object.assign({\n flex: 'auto'\n }, textEllipsis),\n '&-state': {\n flex: 'none',\n display: 'flex',\n alignItems: 'center'\n },\n [`&-active:not(${selectItemCls}-option-disabled)`]: {\n backgroundColor: token.controlItemBgHover\n },\n [`&-selected:not(${selectItemCls}-option-disabled)`]: {\n color: token.colorText,\n fontWeight: token.fontWeightStrong,\n backgroundColor: token.controlItemBgActive,\n [`${selectItemCls}-option-state`]: {\n color: token.colorPrimary\n }\n },\n '&-disabled': {\n [`&${selectItemCls}-option-selected`]: {\n backgroundColor: token.colorBgContainerDisabled\n },\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n },\n '&-grouped': {\n paddingInlineStart: token.controlPaddingHorizontal * 2\n }\n }\n }),\n // =========================== RTL ===========================\n '&-rtl': {\n direction: 'rtl'\n }\n })\n },\n // Follow code may reuse in other components\n initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down')];\n};\nexport default genSingleStyle;","import { resetIcon } from '../../style';\nimport { mergeToken } from '../../theme/internal';\nconst FIXED_ITEM_MARGIN = 2;\nconst getSelectItemStyle = _ref => {\n let {\n controlHeightSM,\n controlHeight,\n lineWidth: borderWidth\n } = _ref;\n const selectItemDist = (controlHeight - controlHeightSM) / 2 - borderWidth;\n const selectItemMargin = Math.ceil(selectItemDist / 2);\n return [selectItemDist, selectItemMargin];\n};\nfunction genSizeStyle(token, suffix) {\n const {\n componentCls,\n iconCls\n } = token;\n const selectOverflowPrefixCls = `${componentCls}-selection-overflow`;\n const selectItemHeight = token.controlHeightSM;\n const [selectItemDist] = getSelectItemStyle(token);\n const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n return {\n [`${componentCls}-multiple${suffixCls}`]: {\n fontSize: token.fontSize,\n /**\n * Do not merge `height` & `line-height` under style with `selection` & `search`, since chrome\n * may update to redesign with its align logic.\n */\n // =========================== Overflow ===========================\n [selectOverflowPrefixCls]: {\n position: 'relative',\n display: 'flex',\n flex: 'auto',\n flexWrap: 'wrap',\n maxWidth: '100%',\n '&-item': {\n flex: 'none',\n alignSelf: 'center',\n maxWidth: '100%',\n display: 'inline-flex'\n }\n },\n // ========================= Selector =========================\n [`${componentCls}-selector`]: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n // Multiple is little different that horizontal is follow the vertical\n padding: `${selectItemDist - FIXED_ITEM_MARGIN}px ${FIXED_ITEM_MARGIN * 2}px`,\n borderRadius: token.borderRadius,\n [`${componentCls}-show-search&`]: {\n cursor: 'text'\n },\n [`${componentCls}-disabled&`]: {\n background: token.colorBgContainerDisabled,\n cursor: 'not-allowed'\n },\n '&:after': {\n display: 'inline-block',\n width: 0,\n margin: `${FIXED_ITEM_MARGIN}px 0`,\n lineHeight: `${selectItemHeight}px`,\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n }\n },\n [`\n &${componentCls}-show-arrow ${componentCls}-selector,\n &${componentCls}-allow-clear ${componentCls}-selector\n `]: {\n paddingInlineEnd: token.fontSizeIcon + token.controlPaddingHorizontal\n },\n // ======================== Selections ========================\n [`${componentCls}-selection-item`]: {\n position: 'relative',\n display: 'flex',\n flex: 'none',\n boxSizing: 'border-box',\n maxWidth: '100%',\n height: selectItemHeight,\n marginTop: FIXED_ITEM_MARGIN,\n marginBottom: FIXED_ITEM_MARGIN,\n lineHeight: `${selectItemHeight - token.lineWidth * 2}px`,\n background: token.colorFillSecondary,\n borderRadius: token.borderRadiusSM,\n cursor: 'default',\n transition: `font-size ${token.motionDurationSlow}, line-height ${token.motionDurationSlow}, height ${token.motionDurationSlow}`,\n userSelect: 'none',\n marginInlineEnd: FIXED_ITEM_MARGIN * 2,\n paddingInlineStart: token.paddingXS,\n paddingInlineEnd: token.paddingXS / 2,\n [`${componentCls}-disabled&`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n },\n // It's ok not to do this, but 24px makes bottom narrow in view should adjust\n '&-content': {\n display: 'inline-block',\n marginInlineEnd: token.paddingXS / 2,\n overflow: 'hidden',\n whiteSpace: 'pre',\n textOverflow: 'ellipsis'\n },\n '&-remove': Object.assign(Object.assign({}, resetIcon()), {\n display: 'inline-flex',\n alignItems: 'center',\n color: token.colorIcon,\n fontWeight: 'bold',\n fontSize: 10,\n lineHeight: 'inherit',\n cursor: 'pointer',\n [`> ${iconCls}`]: {\n verticalAlign: '-0.2em'\n },\n '&:hover': {\n color: token.colorIconHover\n }\n })\n },\n // ========================== Input ==========================\n [`${selectOverflowPrefixCls}-item + ${selectOverflowPrefixCls}-item`]: {\n [`${componentCls}-selection-search`]: {\n marginInlineStart: 0\n }\n },\n [`${componentCls}-selection-search`]: {\n display: 'inline-flex',\n position: 'relative',\n maxWidth: '100%',\n marginInlineStart: token.inputPaddingHorizontalBase - selectItemDist,\n [`\n &-input,\n &-mirror\n `]: {\n height: selectItemHeight,\n fontFamily: token.fontFamily,\n lineHeight: `${selectItemHeight}px`,\n transition: `all ${token.motionDurationSlow}`\n },\n '&-input': {\n width: '100%',\n minWidth: 4.1 // fix search cursor missing\n },\n\n '&-mirror': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n insetInlineEnd: 'auto',\n zIndex: 999,\n whiteSpace: 'pre',\n visibility: 'hidden'\n }\n },\n // ======================= Placeholder =======================\n [`${componentCls}-selection-placeholder `]: {\n position: 'absolute',\n top: '50%',\n insetInlineStart: token.inputPaddingHorizontalBase,\n insetInlineEnd: token.inputPaddingHorizontalBase,\n transform: 'translateY(-50%)',\n transition: `all ${token.motionDurationSlow}`\n }\n }\n };\n}\nconst genMultipleStyle = token => {\n const {\n componentCls\n } = token;\n const smallToken = mergeToken(token, {\n controlHeight: token.controlHeightSM,\n controlHeightSM: token.controlHeightXS,\n borderRadius: token.borderRadiusSM,\n borderRadiusSM: token.borderRadiusXS\n });\n const largeToken = mergeToken(token, {\n fontSize: token.fontSizeLG,\n controlHeight: token.controlHeightLG,\n controlHeightSM: token.controlHeight,\n borderRadius: token.borderRadiusLG,\n borderRadiusSM: token.borderRadius\n });\n const [, smSelectItemMargin] = getSelectItemStyle(token);\n return [genSizeStyle(token),\n // ======================== Small ========================\n genSizeStyle(smallToken, 'sm'),\n // Padding\n {\n [`${componentCls}-multiple${componentCls}-sm`]: {\n [`${componentCls}-selection-placeholder`]: {\n insetInline: token.controlPaddingHorizontalSM - token.lineWidth\n },\n // https://github.com/ant-design/ant-design/issues/29559\n [`${componentCls}-selection-search`]: {\n marginInlineStart: smSelectItemMargin\n }\n }\n },\n // ======================== Large ========================\n genSizeStyle(largeToken, 'lg')];\n};\nexport default genMultipleStyle;","import { resetComponent } from '../../style';\nimport { mergeToken } from '../../theme/internal';\nfunction genSizeStyle(token, suffix) {\n const {\n componentCls,\n inputPaddingHorizontalBase,\n borderRadius\n } = token;\n const selectHeightWithoutBorder = token.controlHeight - token.lineWidth * 2;\n const selectionItemPadding = Math.ceil(token.fontSize * 1.25);\n const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n return {\n [`${componentCls}-single${suffixCls}`]: {\n fontSize: token.fontSize,\n // ========================= Selector =========================\n [`${componentCls}-selector`]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n borderRadius,\n [`${componentCls}-selection-search`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: inputPaddingHorizontalBase,\n insetInlineEnd: inputPaddingHorizontalBase,\n bottom: 0,\n '&-input': {\n width: '100%'\n }\n },\n [`\n ${componentCls}-selection-item,\n ${componentCls}-selection-placeholder\n `]: {\n padding: 0,\n lineHeight: `${selectHeightWithoutBorder}px`,\n transition: `all ${token.motionDurationSlow}, visibility 0s`,\n // Firefox inline-block position calculation is not same as Chrome & Safari. Patch this:\n '@supports (-moz-appearance: meterbar)': {\n lineHeight: `${selectHeightWithoutBorder}px`\n }\n },\n [`${componentCls}-selection-item`]: {\n position: 'relative',\n userSelect: 'none'\n },\n [`${componentCls}-selection-placeholder`]: {\n transition: 'none',\n pointerEvents: 'none'\n },\n // For common baseline align\n [['&:after', /* For '' value baseline align */\n `${componentCls}-selection-item:after`, /* For undefined value baseline align */\n `${componentCls}-selection-placeholder:after`].join(',')]: {\n display: 'inline-block',\n width: 0,\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n }\n }),\n [`\n &${componentCls}-show-arrow ${componentCls}-selection-item,\n &${componentCls}-show-arrow ${componentCls}-selection-placeholder\n `]: {\n paddingInlineEnd: selectionItemPadding\n },\n // Opacity selection if open\n [`&${componentCls}-open ${componentCls}-selection-item`]: {\n color: token.colorTextPlaceholder\n },\n // ========================== Input ==========================\n // We only change the style of non-customize input which is only support by `combobox` mode.\n // Not customize\n [`&:not(${componentCls}-customize-input)`]: {\n [`${componentCls}-selector`]: {\n width: '100%',\n height: token.controlHeight,\n padding: `0 ${inputPaddingHorizontalBase}px`,\n [`${componentCls}-selection-search-input`]: {\n height: selectHeightWithoutBorder\n },\n '&:after': {\n lineHeight: `${selectHeightWithoutBorder}px`\n }\n }\n },\n [`&${componentCls}-customize-input`]: {\n [`${componentCls}-selector`]: {\n '&:after': {\n display: 'none'\n },\n [`${componentCls}-selection-search`]: {\n position: 'static',\n width: '100%'\n },\n [`${componentCls}-selection-placeholder`]: {\n position: 'absolute',\n insetInlineStart: 0,\n insetInlineEnd: 0,\n padding: `0 ${inputPaddingHorizontalBase}px`,\n '&:after': {\n display: 'none'\n }\n }\n }\n }\n }\n };\n}\nexport default function genSingleStyle(token) {\n const {\n componentCls\n } = token;\n const inputPaddingHorizontalSM = token.controlPaddingHorizontalSM - token.lineWidth;\n return [genSizeStyle(token),\n // ======================== Small ========================\n // Shared\n genSizeStyle(mergeToken(token, {\n controlHeight: token.controlHeightSM,\n borderRadius: token.borderRadiusSM\n }), 'sm'),\n // padding\n {\n [`${componentCls}-single${componentCls}-sm`]: {\n [`&:not(${componentCls}-customize-input)`]: {\n [`${componentCls}-selection-search`]: {\n insetInlineStart: inputPaddingHorizontalSM,\n insetInlineEnd: inputPaddingHorizontalSM\n },\n [`${componentCls}-selector`]: {\n padding: `0 ${inputPaddingHorizontalSM}px`\n },\n // With arrow should provides `padding-right` to show the arrow\n [`&${componentCls}-show-arrow ${componentCls}-selection-search`]: {\n insetInlineEnd: inputPaddingHorizontalSM + token.fontSize * 1.5\n },\n [`\n &${componentCls}-show-arrow ${componentCls}-selection-item,\n &${componentCls}-show-arrow ${componentCls}-selection-placeholder\n `]: {\n paddingInlineEnd: token.fontSize * 1.5\n }\n }\n }\n },\n // ======================== Large ========================\n // Shared\n genSizeStyle(mergeToken(token, {\n controlHeight: token.controlHeightLG,\n fontSize: token.fontSizeLG,\n borderRadius: token.borderRadiusLG\n }), 'lg')];\n}","import { resetComponent, resetIcon, textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genDropdownStyle from './dropdown';\nimport genMultipleStyle from './multiple';\nimport genSingleStyle from './single';\n// ============================= Selector =============================\nconst genSelectorStyle = token => {\n const {\n componentCls\n } = token;\n return {\n position: 'relative',\n backgroundColor: token.colorBgContainer,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n input: {\n cursor: 'pointer'\n },\n [`${componentCls}-show-search&`]: {\n cursor: 'text',\n input: {\n cursor: 'auto',\n color: 'inherit'\n }\n },\n [`${componentCls}-disabled&`]: {\n color: token.colorTextDisabled,\n background: token.colorBgContainerDisabled,\n cursor: 'not-allowed',\n [`${componentCls}-multiple&`]: {\n background: token.colorBgContainerDisabled\n },\n input: {\n cursor: 'not-allowed'\n }\n }\n };\n};\n// ============================== Status ==============================\nconst genStatusStyle = function (rootSelectCls, token) {\n let overwriteDefaultBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const {\n componentCls,\n borderHoverColor,\n outlineColor,\n antCls\n } = token;\n const overwriteStyle = overwriteDefaultBorder ? {\n [`${componentCls}-selector`]: {\n borderColor: borderHoverColor\n }\n } : {};\n return {\n [rootSelectCls]: {\n [`&:not(${componentCls}-disabled):not(${componentCls}-customize-input):not(${antCls}-pagination-size-changer)`]: Object.assign(Object.assign({}, overwriteStyle), {\n [`${componentCls}-focused& ${componentCls}-selector`]: {\n borderColor: borderHoverColor,\n boxShadow: `0 0 0 ${token.controlOutlineWidth}px ${outlineColor}`,\n outline: 0\n },\n [`&:hover ${componentCls}-selector`]: {\n borderColor: borderHoverColor\n }\n })\n }\n };\n};\n// ============================== Styles ==============================\n// /* Reset search input style */\nconst getSearchInputWithoutBorderStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-selection-search-input`]: {\n margin: 0,\n padding: 0,\n background: 'transparent',\n border: 'none',\n outline: 'none',\n appearance: 'none',\n '&::-webkit-search-cancel-button': {\n display: 'none',\n '-webkit-appearance': 'none'\n }\n }\n };\n};\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n inputPaddingHorizontalBase,\n iconCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n cursor: 'pointer',\n [`&:not(${componentCls}-customize-input) ${componentCls}-selector`]: Object.assign(Object.assign({}, genSelectorStyle(token)), getSearchInputWithoutBorderStyle(token)),\n // [`&:not(&-disabled):hover ${selectCls}-selector`]: {\n // ...genHoverStyle(token),\n // },\n // ======================== Selection ========================\n [`${componentCls}-selection-item`]: Object.assign({\n flex: 1,\n fontWeight: 'normal'\n }, textEllipsis),\n // ======================= Placeholder =======================\n [`${componentCls}-selection-placeholder`]: Object.assign(Object.assign({}, textEllipsis), {\n flex: 1,\n color: token.colorTextPlaceholder,\n pointerEvents: 'none'\n }),\n // ========================== Arrow ==========================\n [`${componentCls}-arrow`]: Object.assign(Object.assign({}, resetIcon()), {\n position: 'absolute',\n top: '50%',\n insetInlineStart: 'auto',\n insetInlineEnd: inputPaddingHorizontalBase,\n height: token.fontSizeIcon,\n marginTop: -token.fontSizeIcon / 2,\n color: token.colorTextQuaternary,\n fontSize: token.fontSizeIcon,\n lineHeight: 1,\n textAlign: 'center',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n [iconCls]: {\n verticalAlign: 'top',\n transition: `transform ${token.motionDurationSlow}`,\n '> svg': {\n verticalAlign: 'top'\n },\n [`&:not(${componentCls}-suffix)`]: {\n pointerEvents: 'auto'\n }\n },\n [`${componentCls}-disabled &`]: {\n cursor: 'not-allowed'\n },\n '> *:not(:last-child)': {\n marginInlineEnd: 8 // FIXME: magic\n }\n }),\n\n // ========================== Clear ==========================\n [`${componentCls}-clear`]: {\n position: 'absolute',\n top: '50%',\n insetInlineStart: 'auto',\n insetInlineEnd: inputPaddingHorizontalBase,\n zIndex: 1,\n display: 'inline-block',\n width: token.fontSizeIcon,\n height: token.fontSizeIcon,\n marginTop: -token.fontSizeIcon / 2,\n color: token.colorTextQuaternary,\n fontSize: token.fontSizeIcon,\n fontStyle: 'normal',\n lineHeight: 1,\n textAlign: 'center',\n textTransform: 'none',\n background: token.colorBgContainer,\n cursor: 'pointer',\n opacity: 0,\n transition: `color ${token.motionDurationMid} ease, opacity ${token.motionDurationSlow} ease`,\n textRendering: 'auto',\n '&:before': {\n display: 'block'\n },\n '&:hover': {\n color: token.colorTextTertiary\n }\n },\n '&:hover': {\n [`${componentCls}-clear`]: {\n opacity: 1\n }\n }\n }),\n // ========================= Feedback ==========================\n [`${componentCls}-has-feedback`]: {\n [`${componentCls}-clear`]: {\n insetInlineEnd: inputPaddingHorizontalBase + token.fontSize + token.paddingXS\n }\n }\n };\n};\n// ============================== Styles ==============================\nconst genSelectStyle = token => {\n const {\n componentCls\n } = token;\n return [{\n [componentCls]: {\n // ==================== BorderLess ====================\n [`&-borderless ${componentCls}-selector`]: {\n backgroundColor: `transparent !important`,\n borderColor: `transparent !important`,\n boxShadow: `none !important`\n },\n // ==================== In Form ====================\n [`&${componentCls}-in-form-item`]: {\n width: '100%'\n }\n }\n },\n // =====================================================\n // == LTR ==\n // =====================================================\n // Base\n genBaseStyle(token),\n // Single\n genSingleStyle(token),\n // Multiple\n genMultipleStyle(token),\n // Dropdown\n genDropdownStyle(token),\n // =====================================================\n // == RTL ==\n // =====================================================\n {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n },\n // =====================================================\n // == Status ==\n // =====================================================\n genStatusStyle(componentCls, mergeToken(token, {\n borderHoverColor: token.colorPrimaryHover,\n outlineColor: token.controlOutline\n })), genStatusStyle(`${componentCls}-status-error`, mergeToken(token, {\n borderHoverColor: token.colorErrorHover,\n outlineColor: token.colorErrorOutline\n }), true), genStatusStyle(`${componentCls}-status-warning`, mergeToken(token, {\n borderHoverColor: token.colorWarningHover,\n outlineColor: token.colorWarningOutline\n }), true),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(token, {\n borderElCls: `${componentCls}-selector`,\n focusElCls: `${componentCls}-focused`\n })];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Select', (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const selectToken = mergeToken(token, {\n rootPrefixCls,\n inputPaddingHorizontalBase: token.paddingSM - 1\n });\n return [genSelectStyle(selectToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 50\n}));","const getBuiltInPlacements = popupOverflow => {\n const htmlRegion = popupOverflow === 'scroll' ? 'scroll' : 'visible';\n const sharedConfig = {\n overflow: {\n adjustX: true,\n adjustY: true,\n shiftY: true\n },\n htmlRegion,\n _experimental: {\n dynamicInset: true\n }\n };\n return {\n bottomLeft: Object.assign(Object.assign({}, sharedConfig), {\n points: ['tl', 'bl'],\n offset: [0, 4]\n }),\n bottomRight: Object.assign(Object.assign({}, sharedConfig), {\n points: ['tr', 'br'],\n offset: [0, 4]\n }),\n topLeft: Object.assign(Object.assign({}, sharedConfig), {\n points: ['bl', 'tl'],\n offset: [0, -4]\n }),\n topRight: Object.assign(Object.assign({}, sharedConfig), {\n points: ['br', 'tr'],\n offset: [0, -4]\n })\n };\n};\nexport default function useBuiltinPlacements(buildInPlacements, popupOverflow) {\n return buildInPlacements || getBuiltInPlacements(popupOverflow);\n}","/**\n * Since Select, TreeSelect, Cascader is same Select like component.\n * We just use same hook to handle this logic.\n *\n * If `suffixIcon` is not equal to `null`, always show it.\n */\nexport default function useShowArrow(suffixIcon, showArrow) {\n return showArrow !== undefined ? showArrow : suffixIcon !== null;\n}","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';\nimport warning from '../../_util/warning';\nexport default function getIcons(_ref) {\n let {\n suffixIcon,\n clearIcon,\n menuItemSelectedIcon,\n removeIcon,\n loading,\n multiple,\n hasFeedback,\n prefixCls,\n showSuffixIcon,\n feedbackIcon,\n showArrow,\n componentName\n } = _ref;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!clearIcon, componentName, '`clearIcon` is deprecated, please use `allowClear={{ clearIcon: React.ReactNode }}` instead.') : void 0;\n }\n // Clear Icon\n const mergedClearIcon = clearIcon !== null && clearIcon !== void 0 ? clearIcon : /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n // Validation Feedback Icon\n const getSuffixIconNode = arrowIcon => {\n if (suffixIcon === null && !hasFeedback && !showArrow) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, showSuffixIcon !== false && arrowIcon, hasFeedback && feedbackIcon);\n };\n // Arrow item icon\n let 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 const iconCls = `${prefixCls}-suffix`;\n mergedSuffixIcon = _ref2 => {\n let {\n open,\n showSearch\n } = _ref2;\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 let 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 let 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 classNames from 'classnames';\nimport * as React from 'react';\nconst Element = props => {\n const {\n prefixCls,\n className,\n style,\n size,\n shape\n } = props;\n const sizeCls = classNames({\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-sm`]: size === 'small'\n });\n const shapeCls = classNames({\n [`${prefixCls}-circle`]: shape === 'circle',\n [`${prefixCls}-square`]: shape === 'square',\n [`${prefixCls}-round`]: shape === 'round'\n });\n const sizeStyle = React.useMemo(() => typeof size === 'number' ? {\n width: size,\n height: size,\n lineHeight: `${size}px`\n } : {}, [size]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(prefixCls, sizeCls, shapeCls, className),\n style: Object.assign(Object.assign({}, sizeStyle), style)\n });\n};\nexport default Element;","import { Keyframes } from '@ant-design/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst skeletonClsLoading = new Keyframes(`ant-skeleton-loading`, {\n '0%': {\n backgroundPosition: '100% 50%'\n },\n '100%': {\n backgroundPosition: '0 50%'\n }\n});\nconst genSkeletonElementCommonSize = size => ({\n height: size,\n lineHeight: `${size}px`\n});\nconst genSkeletonElementAvatarSize = size => Object.assign({\n width: size\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonColor = token => ({\n background: token.skeletonLoadingBackground,\n backgroundSize: '400% 100%',\n animationName: skeletonClsLoading,\n animationDuration: token.skeletonLoadingMotionDuration,\n animationTimingFunction: 'ease',\n animationIterationCount: 'infinite'\n});\nconst genSkeletonElementInputSize = size => Object.assign({\n width: size * 5,\n minWidth: size * 5\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementAvatar = token => {\n const {\n skeletonAvatarCls,\n gradientFromColor,\n controlHeight,\n controlHeightLG,\n controlHeightSM\n } = token;\n return {\n [`${skeletonAvatarCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: gradientFromColor\n }, genSkeletonElementAvatarSize(controlHeight)),\n [`${skeletonAvatarCls}${skeletonAvatarCls}-circle`]: {\n borderRadius: '50%'\n },\n [`${skeletonAvatarCls}${skeletonAvatarCls}-lg`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightLG)),\n [`${skeletonAvatarCls}${skeletonAvatarCls}-sm`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightSM))\n };\n};\nconst genSkeletonElementInput = token => {\n const {\n controlHeight,\n borderRadiusSM,\n skeletonInputCls,\n controlHeightLG,\n controlHeightSM,\n gradientFromColor\n } = token;\n return {\n [`${skeletonInputCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: gradientFromColor,\n borderRadius: borderRadiusSM\n }, genSkeletonElementInputSize(controlHeight)),\n [`${skeletonInputCls}-lg`]: Object.assign({}, genSkeletonElementInputSize(controlHeightLG)),\n [`${skeletonInputCls}-sm`]: Object.assign({}, genSkeletonElementInputSize(controlHeightSM))\n };\n};\nconst genSkeletonElementImageSize = size => Object.assign({\n width: size\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementImage = token => {\n const {\n skeletonImageCls,\n imageSizeBase,\n gradientFromColor,\n borderRadiusSM\n } = token;\n return {\n [`${skeletonImageCls}`]: Object.assign(Object.assign({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n verticalAlign: 'top',\n background: gradientFromColor,\n borderRadius: borderRadiusSM\n }, genSkeletonElementImageSize(imageSizeBase * 2)), {\n [`${skeletonImageCls}-path`]: {\n fill: '#bfbfbf'\n },\n [`${skeletonImageCls}-svg`]: Object.assign(Object.assign({}, genSkeletonElementImageSize(imageSizeBase)), {\n maxWidth: imageSizeBase * 4,\n maxHeight: imageSizeBase * 4\n }),\n [`${skeletonImageCls}-svg${skeletonImageCls}-svg-circle`]: {\n borderRadius: '50%'\n }\n }),\n [`${skeletonImageCls}${skeletonImageCls}-circle`]: {\n borderRadius: '50%'\n }\n };\n};\nconst genSkeletonElementButtonShape = (token, size, buttonCls) => {\n const {\n skeletonButtonCls\n } = token;\n return {\n [`${buttonCls}${skeletonButtonCls}-circle`]: {\n width: size,\n minWidth: size,\n borderRadius: '50%'\n },\n [`${buttonCls}${skeletonButtonCls}-round`]: {\n borderRadius: size\n }\n };\n};\nconst genSkeletonElementButtonSize = size => Object.assign({\n width: size * 2,\n minWidth: size * 2\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementButton = token => {\n const {\n borderRadiusSM,\n skeletonButtonCls,\n controlHeight,\n controlHeightLG,\n controlHeightSM,\n gradientFromColor\n } = token;\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n [`${skeletonButtonCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: gradientFromColor,\n borderRadius: borderRadiusSM,\n width: controlHeight * 2,\n minWidth: controlHeight * 2\n }, genSkeletonElementButtonSize(controlHeight))\n }, genSkeletonElementButtonShape(token, controlHeight, skeletonButtonCls)), {\n [`${skeletonButtonCls}-lg`]: Object.assign({}, genSkeletonElementButtonSize(controlHeightLG))\n }), genSkeletonElementButtonShape(token, controlHeightLG, `${skeletonButtonCls}-lg`)), {\n [`${skeletonButtonCls}-sm`]: Object.assign({}, genSkeletonElementButtonSize(controlHeightSM))\n }), genSkeletonElementButtonShape(token, controlHeightSM, `${skeletonButtonCls}-sm`));\n};\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n skeletonAvatarCls,\n skeletonTitleCls,\n skeletonParagraphCls,\n skeletonButtonCls,\n skeletonInputCls,\n skeletonImageCls,\n controlHeight,\n controlHeightLG,\n controlHeightSM,\n gradientFromColor,\n padding,\n marginSM,\n borderRadius,\n titleHeight,\n blockRadius,\n paragraphLiHeight,\n controlHeightXS,\n paragraphMarginTop\n } = token;\n return {\n [`${componentCls}`]: {\n display: 'table',\n width: '100%',\n [`${componentCls}-header`]: {\n display: 'table-cell',\n paddingInlineEnd: padding,\n verticalAlign: 'top',\n // Avatar\n [`${skeletonAvatarCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: gradientFromColor\n }, genSkeletonElementAvatarSize(controlHeight)),\n [`${skeletonAvatarCls}-circle`]: {\n borderRadius: '50%'\n },\n [`${skeletonAvatarCls}-lg`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightLG)),\n [`${skeletonAvatarCls}-sm`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightSM))\n },\n [`${componentCls}-content`]: {\n display: 'table-cell',\n width: '100%',\n verticalAlign: 'top',\n // Title\n [`${skeletonTitleCls}`]: {\n width: '100%',\n height: titleHeight,\n background: gradientFromColor,\n borderRadius: blockRadius,\n [`+ ${skeletonParagraphCls}`]: {\n marginBlockStart: controlHeightSM\n }\n },\n // paragraph\n [`${skeletonParagraphCls}`]: {\n padding: 0,\n '> li': {\n width: '100%',\n height: paragraphLiHeight,\n listStyle: 'none',\n background: gradientFromColor,\n borderRadius: blockRadius,\n '+ li': {\n marginBlockStart: controlHeightXS\n }\n }\n },\n [`${skeletonParagraphCls}> li:last-child:not(:first-child):not(:nth-child(2))`]: {\n width: '61%'\n }\n },\n [`&-round ${componentCls}-content`]: {\n [`${skeletonTitleCls}, ${skeletonParagraphCls} > li`]: {\n borderRadius\n }\n }\n },\n [`${componentCls}-with-avatar ${componentCls}-content`]: {\n // Title\n [`${skeletonTitleCls}`]: {\n marginBlockStart: marginSM,\n [`+ ${skeletonParagraphCls}`]: {\n marginBlockStart: paragraphMarginTop\n }\n }\n },\n // Skeleton element\n [`${componentCls}${componentCls}-element`]: Object.assign(Object.assign(Object.assign(Object.assign({\n display: 'inline-block',\n width: 'auto'\n }, genSkeletonElementButton(token)), genSkeletonElementAvatar(token)), genSkeletonElementInput(token)), genSkeletonElementImage(token)),\n // Skeleton Block Button, Input\n [`${componentCls}${componentCls}-block`]: {\n width: '100%',\n [`${skeletonButtonCls}`]: {\n width: '100%'\n },\n [`${skeletonInputCls}`]: {\n width: '100%'\n }\n },\n // With active animation\n [`${componentCls}${componentCls}-active`]: {\n [`\n ${skeletonTitleCls},\n ${skeletonParagraphCls} > li,\n ${skeletonAvatarCls},\n ${skeletonButtonCls},\n ${skeletonInputCls},\n ${skeletonImageCls}\n `]: Object.assign({}, genSkeletonColor(token))\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Skeleton', token => {\n const {\n componentCls\n } = token;\n const skeletonToken = mergeToken(token, {\n skeletonAvatarCls: `${componentCls}-avatar`,\n skeletonTitleCls: `${componentCls}-title`,\n skeletonParagraphCls: `${componentCls}-paragraph`,\n skeletonButtonCls: `${componentCls}-button`,\n skeletonInputCls: `${componentCls}-input`,\n skeletonImageCls: `${componentCls}-image`,\n imageSizeBase: token.controlHeight * 1.5,\n borderRadius: 100,\n skeletonLoadingBackground: `linear-gradient(90deg, ${token.gradientFromColor} 25%, ${token.gradientToColor} 37%, ${token.gradientFromColor} 63%)`,\n skeletonLoadingMotionDuration: '1.4s'\n });\n return [genBaseStyle(skeletonToken)];\n}, token => {\n const {\n colorFillContent,\n colorFill\n } = token;\n const gradientFromColor = colorFillContent;\n const gradientToColor = colorFill;\n return {\n color: gradientFromColor,\n colorGradientEnd: gradientToColor,\n gradientFromColor,\n gradientToColor,\n titleHeight: token.controlHeight / 2,\n blockRadius: token.borderRadiusSM,\n paragraphMarginTop: token.marginLG + token.marginXXS,\n paragraphLiHeight: token.controlHeight / 2\n };\n}, {\n deprecatedTokens: [['color', 'gradientFromColor'], ['colorGradientEnd', 'gradientToColor']]\n});","import classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonAvatar = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n active,\n shape = 'circle',\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls', 'className']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-avatar`,\n shape: shape,\n size: size\n }, otherProps))));\n};\nexport default SkeletonAvatar;","import classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonButton = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n active,\n block = false,\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-block`]: block\n }, className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-button`,\n size: size\n }, otherProps))));\n};\nexport default SkeletonButton;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst path = 'M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z';\nconst SkeletonImage = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n active\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-image`, className),\n style: style\n }, /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 1098 1024\",\n xmlns: \"http://www.w3.org/2000/svg\",\n className: `${prefixCls}-image-svg`\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: path,\n className: `${prefixCls}-image-path`\n })))));\n};\nexport default SkeletonImage;","import classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonInput = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n active,\n block,\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-block`]: block\n }, className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-input`,\n size: size\n }, otherProps))));\n};\nexport default SkeletonInput;","// 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 _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\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, _extends({}, props, {\n ref: ref,\n icon: DotChartOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n DotChartOutlined.displayName = 'DotChartOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(DotChartOutlined);","import DotChartOutlined from \"@ant-design/icons/es/icons/DotChartOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst SkeletonNode = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n active,\n children\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, hashId, className, rootClassName);\n const content = children !== null && children !== void 0 ? children : /*#__PURE__*/React.createElement(DotChartOutlined, null);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-image`, className),\n style: style\n }, content)));\n};\nexport default SkeletonNode;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nconst Paragraph = props => {\n const getWidth = index => {\n const {\n width,\n rows = 2\n } = props;\n if (Array.isArray(width)) {\n return width[index];\n }\n // last paragraph\n if (rows - 1 === index) {\n return width;\n }\n return undefined;\n };\n const {\n prefixCls,\n className,\n style,\n rows\n } = props;\n const rowList = _toConsumableArray(Array(rows)).map((_, index) =>\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: index,\n style: {\n width: getWidth(index)\n }\n }));\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(prefixCls, className),\n style: style\n }, rowList);\n};\nexport default Paragraph;","/* eslint-disable jsx-a11y/heading-has-content */\nimport classNames from 'classnames';\nimport * as React from 'react';\nconst Title = _ref => {\n let {\n prefixCls,\n className,\n width,\n style\n } = _ref;\n return /*#__PURE__*/React.createElement(\"h3\", {\n className: classNames(prefixCls, className),\n style: Object.assign({\n width\n }, style)\n });\n};\nexport default Title;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SkeletonAvatar from './Avatar';\nimport SkeletonButton from './Button';\nimport Element from './Element';\nimport SkeletonImage from './Image';\nimport SkeletonInput from './Input';\nimport SkeletonNode from './Node';\nimport Paragraph from './Paragraph';\nimport Title from './Title';\nimport useStyle from './style';\nfunction getComponentProps(prop) {\n if (prop && typeof prop === 'object') {\n return prop;\n }\n return {};\n}\nfunction getAvatarBasicProps(hasTitle, hasParagraph) {\n if (hasTitle && !hasParagraph) {\n // Square avatar\n return {\n size: 'large',\n shape: 'square'\n };\n }\n return {\n size: 'large',\n shape: 'circle'\n };\n}\nfunction getTitleBasicProps(hasAvatar, hasParagraph) {\n if (!hasAvatar && hasParagraph) {\n return {\n width: '38%'\n };\n }\n if (hasAvatar && hasParagraph) {\n return {\n width: '50%'\n };\n }\n return {};\n}\nfunction getParagraphBasicProps(hasAvatar, hasTitle) {\n const basicProps = {};\n // Width\n if (!hasAvatar || !hasTitle) {\n basicProps.width = '61%';\n }\n // Rows\n if (!hasAvatar && hasTitle) {\n basicProps.rows = 3;\n } else {\n basicProps.rows = 2;\n }\n return basicProps;\n}\nconst Skeleton = props => {\n const {\n prefixCls: customizePrefixCls,\n loading,\n className,\n rootClassName,\n style,\n children,\n avatar = false,\n title = true,\n paragraph = true,\n active,\n round\n } = props;\n const {\n getPrefixCls,\n direction,\n skeleton\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n if (loading || !('loading' in props)) {\n const hasAvatar = !!avatar;\n const hasTitle = !!title;\n const hasParagraph = !!paragraph;\n // Avatar\n let avatarNode;\n if (hasAvatar) {\n const avatarProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-avatar`\n }, getAvatarBasicProps(hasTitle, hasParagraph)), getComponentProps(avatar));\n // We direct use SkeletonElement as avatar in skeleton internal.\n avatarNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, /*#__PURE__*/React.createElement(Element, Object.assign({}, avatarProps)));\n }\n let contentNode;\n if (hasTitle || hasParagraph) {\n // Title\n let $title;\n if (hasTitle) {\n const titleProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-title`\n }, getTitleBasicProps(hasAvatar, hasParagraph)), getComponentProps(title));\n $title = /*#__PURE__*/React.createElement(Title, Object.assign({}, titleProps));\n }\n // Paragraph\n let paragraphNode;\n if (hasParagraph) {\n const paragraphProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-paragraph`\n }, getParagraphBasicProps(hasAvatar, hasTitle)), getComponentProps(paragraph));\n paragraphNode = /*#__PURE__*/React.createElement(Paragraph, Object.assign({}, paragraphProps));\n }\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-content`\n }, $title, paragraphNode);\n }\n const cls = classNames(prefixCls, {\n [`${prefixCls}-with-avatar`]: hasAvatar,\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-round`]: round\n }, skeleton === null || skeleton === void 0 ? void 0 : skeleton.className, className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: Object.assign(Object.assign({}, skeleton === null || skeleton === void 0 ? void 0 : skeleton.style), style)\n }, avatarNode, contentNode));\n }\n return typeof children !== 'undefined' ? children : null;\n};\nSkeleton.Button = SkeletonButton;\nSkeleton.Avatar = SkeletonAvatar;\nSkeleton.Input = SkeletonInput;\nSkeleton.Image = SkeletonImage;\nSkeleton.Node = SkeletonNode;\nif (process.env.NODE_ENV !== 'production') {\n Skeleton.displayName = 'Skeleton';\n}\nexport default Skeleton;","'use client';\n\nimport Skeleton from './Skeleton';\nexport default Skeleton;","import * as React from 'react';\nvar SliderContext = /*#__PURE__*/React.createContext({\n min: 0,\n max: 0,\n direction: 'ltr',\n step: 1,\n includedStart: 0,\n includedEnd: 0,\n tabIndex: 0,\n keyboard: true\n});\nexport default SliderContext;","export function getOffset(value, min, max) {\n return (value - min) / (max - min);\n}\nexport function getDirectionStyle(direction, value, min, max) {\n var offset = getOffset(value, min, max);\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(50%)';\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(50%)';\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(-50%)';\n break;\n default:\n positionStyle.left = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(-50%)';\n break;\n }\n return positionStyle;\n}\n/** Return index value if is list or return value directly */\nexport function getIndex(value, index) {\n return Array.isArray(value) ? value[index] : value;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"value\", \"valueIndex\", \"onStartMove\", \"style\", \"render\", \"dragging\", \"onOffsetChange\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport SliderContext from '../context';\nimport { getDirectionStyle, getIndex } from '../util';\nvar Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames, _getIndex;\n var prefixCls = props.prefixCls,\n value = props.value,\n valueIndex = props.valueIndex,\n onStartMove = props.onStartMove,\n style = props.style,\n render = props.render,\n dragging = props.dragging,\n onOffsetChange = props.onOffsetChange,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n disabled = _React$useContext.disabled,\n keyboard = _React$useContext.keyboard,\n range = _React$useContext.range,\n tabIndex = _React$useContext.tabIndex,\n ariaLabelForHandle = _React$useContext.ariaLabelForHandle,\n ariaLabelledByForHandle = _React$useContext.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = _React$useContext.ariaValueTextFormatterForHandle;\n var handlePrefixCls = \"\".concat(prefixCls, \"-handle\");\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled) {\n onStartMove(e, valueIndex);\n }\n };\n // =========================== Keyboard ===========================\n var onKeyDown = function onKeyDown(e) {\n if (!disabled && keyboard) {\n var offset = null;\n // Change the value\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n offset = direction === 'ltr' || direction === 'btt' ? -1 : 1;\n break;\n case KeyCode.RIGHT:\n offset = direction === 'ltr' || direction === 'btt' ? 1 : -1;\n break;\n // Up is plus\n case KeyCode.UP:\n offset = direction !== 'ttb' ? 1 : -1;\n break;\n // Down is minus\n case KeyCode.DOWN:\n offset = direction !== 'ttb' ? -1 : 1;\n break;\n case KeyCode.HOME:\n offset = 'min';\n break;\n case KeyCode.END:\n offset = 'max';\n break;\n case KeyCode.PAGE_UP:\n offset = 2;\n break;\n case KeyCode.PAGE_DOWN:\n offset = -2;\n break;\n }\n if (offset !== null) {\n e.preventDefault();\n onOffsetChange(offset, valueIndex);\n }\n }\n };\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n // ============================ Render ============================\n var handleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: classNames(handlePrefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(handlePrefixCls, \"-\").concat(valueIndex + 1), range), _defineProperty(_classNames, \"\".concat(handlePrefixCls, \"-dragging\"), dragging), _classNames)),\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove,\n onKeyDown: onKeyDown,\n tabIndex: disabled ? null : getIndex(tabIndex, valueIndex),\n role: \"slider\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value,\n \"aria-disabled\": disabled,\n \"aria-label\": getIndex(ariaLabelForHandle, valueIndex),\n \"aria-labelledby\": getIndex(ariaLabelledByForHandle, valueIndex),\n \"aria-valuetext\": (_getIndex = getIndex(ariaValueTextFormatterForHandle, valueIndex)) === null || _getIndex === void 0 ? void 0 : _getIndex(value)\n }, restProps));\n // Customize\n if (render) {\n handleNode = render(handleNode, {\n index: valueIndex,\n prefixCls: prefixCls,\n value: value,\n dragging: dragging\n });\n }\n return handleNode;\n});\nif (process.env.NODE_ENV !== 'production') {\n Handle.displayName = 'Handle';\n}\nexport default Handle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"style\", \"onStartMove\", \"onOffsetChange\", \"values\", \"handleRender\", \"draggingIndex\"];\nimport * as React from 'react';\nimport Handle from './Handle';\nimport { getIndex } from '../util';\nvar Handles = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n style = props.style,\n onStartMove = props.onStartMove,\n onOffsetChange = props.onOffsetChange,\n values = props.values,\n handleRender = props.handleRender,\n draggingIndex = props.draggingIndex,\n restProps = _objectWithoutProperties(props, _excluded);\n var handlesRef = React.useRef({});\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus(index) {\n var _handlesRef$current$i;\n (_handlesRef$current$i = handlesRef.current[index]) === null || _handlesRef$current$i === void 0 ? void 0 : _handlesRef$current$i.focus();\n }\n };\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, values.map(function (value, index) {\n return /*#__PURE__*/React.createElement(Handle, _extends({\n ref: function ref(node) {\n if (!node) {\n delete handlesRef.current[index];\n } else {\n handlesRef.current[index] = node;\n }\n },\n dragging: draggingIndex === index,\n prefixCls: prefixCls,\n style: getIndex(style, index),\n key: index,\n value: value,\n valueIndex: index,\n onStartMove: onStartMove,\n onOffsetChange: onOffsetChange,\n render: handleRender\n }, restProps));\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Handles.displayName = 'Handles';\n}\nexport default Handles;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nfunction getPosition(e) {\n var obj = 'touches' in e ? e.touches[0] : e;\n return {\n pageX: obj.pageX,\n pageY: obj.pageY\n };\n}\nexport default function useDrag(containerRef, direction, rawValues, min, max, formatValue, triggerChange, finishChange, offsetValues) {\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n draggingValue = _React$useState2[0],\n setDraggingValue = _React$useState2[1];\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n draggingIndex = _React$useState4[0],\n setDraggingIndex = _React$useState4[1];\n var _React$useState5 = React.useState(rawValues),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n cacheValues = _React$useState6[0],\n setCacheValues = _React$useState6[1];\n var _React$useState7 = React.useState(rawValues),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n originValues = _React$useState8[0],\n setOriginValues = _React$useState8[1];\n var mouseMoveEventRef = React.useRef(null);\n var mouseUpEventRef = React.useRef(null);\n React.useEffect(function () {\n if (draggingIndex === -1) {\n setCacheValues(rawValues);\n }\n }, [rawValues, draggingIndex]);\n // Clean up event\n React.useEffect(function () {\n return function () {\n document.removeEventListener('mousemove', mouseMoveEventRef.current);\n document.removeEventListener('mouseup', mouseUpEventRef.current);\n document.removeEventListener('touchmove', mouseMoveEventRef.current);\n document.removeEventListener('touchend', mouseUpEventRef.current);\n };\n }, []);\n var flushValues = function flushValues(nextValues, nextValue) {\n // Perf: Only update state when value changed\n if (cacheValues.some(function (val, i) {\n return val !== nextValues[i];\n })) {\n if (nextValue !== undefined) {\n setDraggingValue(nextValue);\n }\n setCacheValues(nextValues);\n triggerChange(nextValues);\n }\n };\n var updateCacheValue = function updateCacheValue(valueIndex, offsetPercent) {\n // Basic point offset\n if (valueIndex === -1) {\n // >>>> Dragging on the track\n var startValue = originValues[0];\n var endValue = originValues[originValues.length - 1];\n var maxStartOffset = min - startValue;\n var maxEndOffset = max - endValue;\n // Get valid offset\n var offset = offsetPercent * (max - min);\n offset = Math.max(offset, maxStartOffset);\n offset = Math.min(offset, maxEndOffset);\n // Use first value to revert back of valid offset (like steps marks)\n var formatStartValue = formatValue(startValue + offset);\n offset = formatStartValue - startValue;\n var cloneCacheValues = originValues.map(function (val) {\n return val + offset;\n });\n flushValues(cloneCacheValues);\n } else {\n // >>>> Dragging on the handle\n var offsetDist = (max - min) * offsetPercent;\n // Always start with the valueIndex origin value\n var cloneValues = _toConsumableArray(cacheValues);\n cloneValues[valueIndex] = originValues[valueIndex];\n var next = offsetValues(cloneValues, offsetDist, valueIndex, 'dist');\n flushValues(next.values, next.value);\n }\n };\n // Resolve closure\n var updateCacheValueRef = React.useRef(updateCacheValue);\n updateCacheValueRef.current = updateCacheValue;\n var onStartMove = function onStartMove(e, valueIndex) {\n e.stopPropagation();\n var originValue = rawValues[valueIndex];\n setDraggingIndex(valueIndex);\n setDraggingValue(originValue);\n setOriginValues(rawValues);\n var _getPosition = getPosition(e),\n startX = _getPosition.pageX,\n startY = _getPosition.pageY;\n // Moving\n var onMouseMove = function onMouseMove(event) {\n event.preventDefault();\n var _getPosition2 = getPosition(event),\n moveX = _getPosition2.pageX,\n moveY = _getPosition2.pageY;\n var offsetX = moveX - startX;\n var offsetY = moveY - startY;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var offSetPercent;\n switch (direction) {\n case 'btt':\n offSetPercent = -offsetY / height;\n break;\n case 'ttb':\n offSetPercent = offsetY / height;\n break;\n case 'rtl':\n offSetPercent = -offsetX / width;\n break;\n default:\n offSetPercent = offsetX / width;\n }\n updateCacheValueRef.current(valueIndex, offSetPercent);\n };\n // End\n var onMouseUp = function onMouseUp(event) {\n event.preventDefault();\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('touchend', onMouseUp);\n document.removeEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = null;\n mouseUpEventRef.current = null;\n setDraggingIndex(-1);\n finishChange();\n };\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('touchend', onMouseUp);\n document.addEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = onMouseMove;\n mouseUpEventRef.current = onMouseUp;\n };\n // Only return cache value when it mapping with rawValues\n var returnValues = React.useMemo(function () {\n var sourceValues = _toConsumableArray(rawValues).sort(function (a, b) {\n return a - b;\n });\n var targetValues = _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n return sourceValues.every(function (val, index) {\n return val === targetValues[index];\n }) ? cacheValues : rawValues;\n }, [rawValues, cacheValues]);\n return [draggingIndex, draggingValue, returnValues, onStartMove];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport SliderContext from '../context';\nimport { getOffset } from '../util';\nexport default function Track(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n start = props.start,\n end = props.end,\n index = props.index,\n onStartMove = props.onStartMove;\n var _React$useContext = React.useContext(SliderContext),\n direction = _React$useContext.direction,\n min = _React$useContext.min,\n max = _React$useContext.max,\n disabled = _React$useContext.disabled,\n range = _React$useContext.range;\n var trackPrefixCls = \"\".concat(prefixCls, \"-track\");\n var offsetStart = getOffset(start, min, max);\n var offsetEnd = getOffset(end, min, max);\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled && onStartMove) {\n onStartMove(e, -1);\n }\n };\n // ============================ Render ============================\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n default:\n positionStyle.left = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(trackPrefixCls, range && \"\".concat(trackPrefixCls, \"-\").concat(index + 1)),\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove\n });\n}","import * as React from 'react';\nimport SliderContext from '../context';\nimport Track from './Track';\nimport { getIndex } from '../util';\nexport default function Tracks(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n values = props.values,\n startPoint = props.startPoint,\n onStartMove = props.onStartMove;\n var _React$useContext = React.useContext(SliderContext),\n included = _React$useContext.included,\n range = _React$useContext.range,\n min = _React$useContext.min;\n var trackList = React.useMemo(function () {\n if (!range) {\n // null value do not have track\n if (values.length === 0) {\n return [];\n }\n var startValue = startPoint !== null && startPoint !== void 0 ? startPoint : min;\n var endValue = values[0];\n return [{\n start: Math.min(startValue, endValue),\n end: Math.max(startValue, endValue)\n }];\n }\n // Multiple\n var list = [];\n for (var i = 0; i < values.length - 1; i += 1) {\n list.push({\n start: values[i],\n end: values[i + 1]\n });\n }\n return list;\n }, [values, range, startPoint, min]);\n return included ? trackList.map(function (_ref, index) {\n var start = _ref.start,\n end = _ref.end;\n return /*#__PURE__*/React.createElement(Track, {\n index: index,\n prefixCls: prefixCls,\n style: getIndex(style, index),\n start: start,\n end: end,\n key: index,\n onStartMove: onStartMove\n });\n }) : null;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { getDirectionStyle } from '../util';\nimport SliderContext from '../context';\nexport default function Mark(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n children = props.children,\n value = props.value,\n _onClick = props.onClick;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd,\n included = _React$useContext.included;\n var textCls = \"\".concat(prefixCls, \"-text\");\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(textCls, _defineProperty({}, \"\".concat(textCls, \"-active\"), included && includedStart <= value && value <= includedEnd)),\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: function onMouseDown(e) {\n e.stopPropagation();\n },\n onClick: function onClick() {\n _onClick(value);\n }\n }, children);\n}","import * as React from 'react';\nimport Mark from './Mark';\nexport default function Marks(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n onClick = props.onClick;\n var markPrefixCls = \"\".concat(prefixCls, \"-mark\");\n // Not render mark if empty\n if (!marks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: markPrefixCls\n }, marks.map(function (_ref) {\n var value = _ref.value,\n style = _ref.style,\n label = _ref.label;\n return /*#__PURE__*/React.createElement(Mark, {\n key: value,\n prefixCls: markPrefixCls,\n style: style,\n value: value,\n onClick: onClick\n }, label);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { getDirectionStyle } from '../util';\nimport SliderContext from '../context';\nexport default function Dot(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n included = _React$useContext.included,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd;\n var dotClassName = \"\".concat(prefixCls, \"-dot\");\n var active = included && includedStart <= value && value <= includedEnd;\n // ============================ Offset ============================\n var mergedStyle = _objectSpread(_objectSpread({}, getDirectionStyle(direction, value, min, max)), typeof style === 'function' ? style(value) : style);\n if (active) {\n mergedStyle = _objectSpread(_objectSpread({}, mergedStyle), typeof activeStyle === 'function' ? activeStyle(value) : activeStyle);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, _defineProperty({}, \"\".concat(dotClassName, \"-active\"), active)),\n style: mergedStyle\n });\n}","import * as React from 'react';\nimport SliderContext from '../context';\nimport Dot from './Dot';\nexport default function Steps(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n dots = props.dots,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n step = _React$useContext.step;\n var stepDots = React.useMemo(function () {\n var dotSet = new Set();\n // Add marks\n marks.forEach(function (mark) {\n dotSet.add(mark.value);\n });\n // Fill dots\n if (dots && step !== null) {\n var current = min;\n while (current <= max) {\n dotSet.add(current);\n current += step;\n }\n }\n return Array.from(dotSet);\n }, [min, max, step, dots, marks]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, stepDots.map(function (dotValue) {\n return /*#__PURE__*/React.createElement(Dot, {\n prefixCls: prefixCls,\n key: dotValue,\n value: dotValue,\n style: style,\n activeStyle: activeStyle\n });\n }));\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nexport default function useOffset(min, max, step, markList, allowCross, pushable) {\n var formatRangeValue = React.useCallback(function (val) {\n var formatNextValue = isFinite(val) ? val : min;\n formatNextValue = Math.min(max, val);\n formatNextValue = Math.max(min, formatNextValue);\n return formatNextValue;\n }, [min, max]);\n var formatStepValue = React.useCallback(function (val) {\n if (step !== null) {\n var stepValue = min + Math.round((formatRangeValue(val) - min) / step) * step;\n // Cut number in case to be like 0.30000000000000004\n var getDecimal = function getDecimal(num) {\n return (String(num).split('.')[1] || '').length;\n };\n var maxDecimal = Math.max(getDecimal(step), getDecimal(max), getDecimal(min));\n var fixedValue = Number(stepValue.toFixed(maxDecimal));\n return min <= fixedValue && fixedValue <= max ? fixedValue : null;\n }\n return null;\n }, [step, min, max, formatRangeValue]);\n var formatValue = React.useCallback(function (val) {\n var formatNextValue = formatRangeValue(val);\n // List align values\n var alignValues = markList.map(function (mark) {\n return mark.value;\n });\n if (step !== null) {\n alignValues.push(formatStepValue(val));\n }\n // min & max\n alignValues.push(min, max);\n // Align with marks\n var closeValue = alignValues[0];\n var closeDist = max - min;\n alignValues.forEach(function (alignValue) {\n var dist = Math.abs(formatNextValue - alignValue);\n if (dist <= closeDist) {\n closeValue = alignValue;\n closeDist = dist;\n }\n });\n return closeValue;\n }, [min, max, markList, step, formatRangeValue, formatStepValue]);\n // ========================== Offset ==========================\n // Single Value\n var offsetValue = function offsetValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n if (typeof offset === 'number') {\n var nextValue;\n var originValue = values[valueIndex];\n // Only used for `dist` mode\n var targetDistValue = originValue + offset;\n // Compare next step value & mark value which is best match\n var potentialValues = [];\n markList.forEach(function (mark) {\n potentialValues.push(mark.value);\n });\n // Min & Max\n potentialValues.push(min, max);\n // In case origin value is align with mark but not with step\n potentialValues.push(formatStepValue(originValue));\n // Put offset step value also\n var sign = offset > 0 ? 1 : -1;\n if (mode === 'unit') {\n potentialValues.push(formatStepValue(originValue + sign * step));\n } else {\n potentialValues.push(formatStepValue(targetDistValue));\n }\n // Find close one\n potentialValues = potentialValues.filter(function (val) {\n return val !== null;\n })\n // Remove reverse value\n .filter(function (val) {\n return offset < 0 ? val <= originValue : val >= originValue;\n });\n if (mode === 'unit') {\n // `unit` mode can not contain itself\n potentialValues = potentialValues.filter(function (val) {\n return val !== originValue;\n });\n }\n var compareValue = mode === 'unit' ? originValue : targetDistValue;\n nextValue = potentialValues[0];\n var valueDist = Math.abs(nextValue - compareValue);\n potentialValues.forEach(function (potentialValue) {\n var dist = Math.abs(potentialValue - compareValue);\n if (dist < valueDist) {\n nextValue = potentialValue;\n valueDist = dist;\n }\n });\n // Out of range will back to range\n if (nextValue === undefined) {\n return offset < 0 ? min : max;\n }\n // `dist` mode\n if (mode === 'dist') {\n return nextValue;\n }\n // `unit` mode may need another round\n if (Math.abs(offset) > 1) {\n var cloneValues = _toConsumableArray(values);\n cloneValues[valueIndex] = nextValue;\n return offsetValue(cloneValues, offset - sign, valueIndex, mode);\n }\n return nextValue;\n } else if (offset === 'min') {\n return min;\n } else if (offset === 'max') {\n return max;\n }\n };\n /** Same as `offsetValue` but return `changed` mark to tell value changed */\n var offsetChangedValue = function offsetChangedValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var originValue = values[valueIndex];\n var nextValue = offsetValue(values, offset, valueIndex, mode);\n return {\n value: nextValue,\n changed: nextValue !== originValue\n };\n };\n var needPush = function needPush(dist) {\n return pushable === null && dist === 0 || typeof pushable === 'number' && dist < pushable;\n };\n // Values\n var offsetValues = function offsetValues(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var nextValues = values.map(formatValue);\n var originValue = nextValues[valueIndex];\n var nextValue = offsetValue(nextValues, offset, valueIndex, mode);\n nextValues[valueIndex] = nextValue;\n if (allowCross === false) {\n // >>>>> Allow Cross\n var pushNum = pushable || 0;\n // ============ AllowCross ===============\n if (valueIndex > 0 && nextValues[valueIndex - 1] !== originValue) {\n nextValues[valueIndex] = Math.max(nextValues[valueIndex], nextValues[valueIndex - 1] + pushNum);\n }\n if (valueIndex < nextValues.length - 1 && nextValues[valueIndex + 1] !== originValue) {\n nextValues[valueIndex] = Math.min(nextValues[valueIndex], nextValues[valueIndex + 1] - pushNum);\n }\n } else if (typeof pushable === 'number' || pushable === null) {\n // >>>>> Pushable\n // =============== Push ==================\n // >>>>>> Basic push\n // End values\n for (var i = valueIndex + 1; i < nextValues.length; i += 1) {\n var changed = true;\n while (needPush(nextValues[i] - nextValues[i - 1]) && changed) {\n var _offsetChangedValue = offsetChangedValue(nextValues, 1, i);\n nextValues[i] = _offsetChangedValue.value;\n changed = _offsetChangedValue.changed;\n }\n }\n // Start values\n for (var _i = valueIndex; _i > 0; _i -= 1) {\n var _changed = true;\n while (needPush(nextValues[_i] - nextValues[_i - 1]) && _changed) {\n var _offsetChangedValue2 = offsetChangedValue(nextValues, -1, _i - 1);\n nextValues[_i - 1] = _offsetChangedValue2.value;\n _changed = _offsetChangedValue2.changed;\n }\n }\n // >>>>> Revert back to safe push range\n // End to Start\n for (var _i2 = nextValues.length - 1; _i2 > 0; _i2 -= 1) {\n var _changed2 = true;\n while (needPush(nextValues[_i2] - nextValues[_i2 - 1]) && _changed2) {\n var _offsetChangedValue3 = offsetChangedValue(nextValues, -1, _i2 - 1);\n nextValues[_i2 - 1] = _offsetChangedValue3.value;\n _changed2 = _offsetChangedValue3.changed;\n }\n }\n // Start to End\n for (var _i3 = 0; _i3 < nextValues.length - 1; _i3 += 1) {\n var _changed3 = true;\n while (needPush(nextValues[_i3 + 1] - nextValues[_i3]) && _changed3) {\n var _offsetChangedValue4 = offsetChangedValue(nextValues, 1, _i3 + 1);\n nextValues[_i3 + 1] = _offsetChangedValue4.value;\n _changed3 = _offsetChangedValue4.changed;\n }\n }\n }\n return {\n value: nextValues[valueIndex],\n values: nextValues\n };\n };\n return [formatValue, offsetValues];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport isEqual from \"rc-util/es/isEqual\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Handles from './Handles';\nimport useDrag from './hooks/useDrag';\nimport SliderContext from './context';\nimport Tracks from './Tracks';\nimport Marks from './Marks';\nimport Steps from './Steps';\nimport useOffset from './hooks/useOffset';\nimport warning from \"rc-util/es/warning\";\nvar Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-slider' : _props$prefixCls,\n className = props.className,\n style = props.style,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n autoFocus = props.autoFocus,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n _props$min = props.min,\n min = _props$min === void 0 ? 0 : _props$min,\n _props$max = props.max,\n max = _props$max === void 0 ? 100 : _props$max,\n _props$step = props.step,\n step = _props$step === void 0 ? 1 : _props$step,\n value = props.value,\n defaultValue = props.defaultValue,\n range = props.range,\n count = props.count,\n onChange = props.onChange,\n onBeforeChange = props.onBeforeChange,\n onAfterChange = props.onAfterChange,\n _props$allowCross = props.allowCross,\n allowCross = _props$allowCross === void 0 ? true : _props$allowCross,\n _props$pushable = props.pushable,\n pushable = _props$pushable === void 0 ? false : _props$pushable,\n draggableTrack = props.draggableTrack,\n reverse = props.reverse,\n vertical = props.vertical,\n _props$included = props.included,\n included = _props$included === void 0 ? true : _props$included,\n startPoint = props.startPoint,\n trackStyle = props.trackStyle,\n handleStyle = props.handleStyle,\n railStyle = props.railStyle,\n dotStyle = props.dotStyle,\n activeDotStyle = props.activeDotStyle,\n marks = props.marks,\n dots = props.dots,\n handleRender = props.handleRender,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n ariaLabelForHandle = props.ariaLabelForHandle,\n ariaLabelledByForHandle = props.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = props.ariaValueTextFormatterForHandle;\n var handlesRef = React.useRef();\n var containerRef = React.useRef();\n var direction = React.useMemo(function () {\n if (vertical) {\n return reverse ? 'ttb' : 'btt';\n }\n return reverse ? 'rtl' : 'ltr';\n }, [reverse, vertical]);\n // ============================ Range =============================\n var mergedMin = React.useMemo(function () {\n return isFinite(min) ? min : 0;\n }, [min]);\n var mergedMax = React.useMemo(function () {\n return isFinite(max) ? max : 100;\n }, [max]);\n // ============================= Step =============================\n var mergedStep = React.useMemo(function () {\n return step !== null && step <= 0 ? 1 : step;\n }, [step]);\n // ============================= Push =============================\n var mergedPush = React.useMemo(function () {\n if (pushable === true) {\n return mergedStep;\n }\n return pushable >= 0 ? pushable : false;\n }, [pushable, mergedStep]);\n // ============================ Marks =============================\n var markList = React.useMemo(function () {\n var keys = Object.keys(marks || {});\n return keys.map(function (key) {\n var mark = marks[key];\n var markObj = {\n value: Number(key)\n };\n if (mark && _typeof(mark) === 'object' && ! /*#__PURE__*/React.isValidElement(mark) && ('label' in mark || 'style' in mark)) {\n markObj.style = mark.style;\n markObj.label = mark.label;\n } else {\n markObj.label = mark;\n }\n return markObj;\n }).filter(function (_ref) {\n var label = _ref.label;\n return label || typeof label === 'number';\n }).sort(function (a, b) {\n return a.value - b.value;\n });\n }, [marks]);\n // ============================ Format ============================\n var _useOffset = useOffset(mergedMin, mergedMax, mergedStep, markList, allowCross, mergedPush),\n _useOffset2 = _slicedToArray(_useOffset, 2),\n formatValue = _useOffset2[0],\n offsetValues = _useOffset2[1];\n // ============================ Values ============================\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var rawValues = React.useMemo(function () {\n var valueList = mergedValue === null || mergedValue === undefined ? [] : Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n var _valueList = _slicedToArray(valueList, 1),\n _valueList$ = _valueList[0],\n val0 = _valueList$ === void 0 ? mergedMin : _valueList$;\n var returnValues = mergedValue === null ? [] : [val0];\n // Format as range\n if (range) {\n returnValues = _toConsumableArray(valueList);\n // When count provided or value is `undefined`, we fill values\n if (count || mergedValue === undefined) {\n var pointCount = count >= 0 ? count + 1 : 2;\n returnValues = returnValues.slice(0, pointCount);\n // Fill with count\n while (returnValues.length < pointCount) {\n var _returnValues;\n returnValues.push((_returnValues = returnValues[returnValues.length - 1]) !== null && _returnValues !== void 0 ? _returnValues : mergedMin);\n }\n }\n returnValues.sort(function (a, b) {\n return a - b;\n });\n }\n // Align in range\n returnValues.forEach(function (val, index) {\n returnValues[index] = formatValue(val);\n });\n return returnValues;\n }, [mergedValue, range, mergedMin, count, formatValue]);\n // =========================== onChange ===========================\n var rawValuesRef = React.useRef(rawValues);\n rawValuesRef.current = rawValues;\n var getTriggerValue = function getTriggerValue(triggerValues) {\n return range ? triggerValues : triggerValues[0];\n };\n var triggerChange = function triggerChange(nextValues) {\n // Order first\n var cloneNextValues = _toConsumableArray(nextValues).sort(function (a, b) {\n return a - b;\n });\n // Trigger event if needed\n if (onChange && !isEqual(cloneNextValues, rawValuesRef.current, true)) {\n onChange(getTriggerValue(cloneNextValues));\n }\n // We set this later since it will re-render component immediately\n setValue(cloneNextValues);\n };\n var changeToCloseValue = function changeToCloseValue(newValue) {\n if (!disabled) {\n var valueIndex = 0;\n var valueDist = mergedMax - mergedMin;\n rawValues.forEach(function (val, index) {\n var dist = Math.abs(newValue - val);\n if (dist <= valueDist) {\n valueDist = dist;\n valueIndex = index;\n }\n });\n // Create new values\n var cloneNextValues = _toConsumableArray(rawValues);\n cloneNextValues[valueIndex] = newValue;\n // Fill value to match default 2\n if (range && !rawValues.length && count === undefined) {\n cloneNextValues.push(newValue);\n }\n onBeforeChange === null || onBeforeChange === void 0 ? void 0 : onBeforeChange(getTriggerValue(cloneNextValues));\n triggerChange(cloneNextValues);\n onAfterChange === null || onAfterChange === void 0 ? void 0 : onAfterChange(getTriggerValue(cloneNextValues));\n }\n };\n // ============================ Click =============================\n var onSliderMouseDown = function onSliderMouseDown(e) {\n e.preventDefault();\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height,\n left = _containerRef$current.left,\n top = _containerRef$current.top,\n bottom = _containerRef$current.bottom,\n right = _containerRef$current.right;\n var clientX = e.clientX,\n clientY = e.clientY;\n var percent;\n switch (direction) {\n case 'btt':\n percent = (bottom - clientY) / height;\n break;\n case 'ttb':\n percent = (clientY - top) / height;\n break;\n case 'rtl':\n percent = (right - clientX) / width;\n break;\n default:\n percent = (clientX - left) / width;\n }\n var nextValue = mergedMin + percent * (mergedMax - mergedMin);\n changeToCloseValue(formatValue(nextValue));\n };\n // =========================== Keyboard ===========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n keyboardValue = _React$useState2[0],\n setKeyboardValue = _React$useState2[1];\n var onHandleOffsetChange = function onHandleOffsetChange(offset, valueIndex) {\n if (!disabled) {\n var next = offsetValues(rawValues, offset, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 ? void 0 : onBeforeChange(getTriggerValue(rawValues));\n triggerChange(next.values);\n onAfterChange === null || onAfterChange === void 0 ? void 0 : onAfterChange(getTriggerValue(next.values));\n setKeyboardValue(next.value);\n }\n };\n React.useEffect(function () {\n if (keyboardValue !== null) {\n var valueIndex = rawValues.indexOf(keyboardValue);\n if (valueIndex >= 0) {\n handlesRef.current.focus(valueIndex);\n }\n }\n setKeyboardValue(null);\n }, [keyboardValue]);\n // ============================= Drag =============================\n var mergedDraggableTrack = React.useMemo(function () {\n if (draggableTrack && mergedStep === null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`draggableTrack` is not supported when `step` is `null`.');\n }\n return false;\n }\n return draggableTrack;\n }, [draggableTrack, mergedStep]);\n var finishChange = function finishChange() {\n onAfterChange === null || onAfterChange === void 0 ? void 0 : onAfterChange(getTriggerValue(rawValuesRef.current));\n };\n var _useDrag = useDrag(containerRef, direction, rawValues, mergedMin, mergedMax, formatValue, triggerChange, finishChange, offsetValues),\n _useDrag2 = _slicedToArray(_useDrag, 4),\n draggingIndex = _useDrag2[0],\n draggingValue = _useDrag2[1],\n cacheValues = _useDrag2[2],\n onStartDrag = _useDrag2[3];\n var onStartMove = function onStartMove(e, valueIndex) {\n onStartDrag(e, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 ? void 0 : onBeforeChange(getTriggerValue(rawValuesRef.current));\n };\n // Auto focus for updated handle\n var dragging = draggingIndex !== -1;\n React.useEffect(function () {\n if (!dragging) {\n var valueIndex = rawValues.lastIndexOf(draggingValue);\n handlesRef.current.focus(valueIndex);\n }\n }, [dragging]);\n // =========================== Included ===========================\n var sortedCacheValues = React.useMemo(function () {\n return _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n }, [cacheValues]);\n // Provide a range values with included [min, max]\n // Used for Track, Mark & Dot\n var _React$useMemo = React.useMemo(function () {\n if (!range) {\n return [mergedMin, sortedCacheValues[0]];\n }\n return [sortedCacheValues[0], sortedCacheValues[sortedCacheValues.length - 1]];\n }, [sortedCacheValues, range, mergedMin]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n includedStart = _React$useMemo2[0],\n includedEnd = _React$useMemo2[1];\n // ============================= Refs =============================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n handlesRef.current.focus(0);\n },\n blur: function blur() {\n var _document = document,\n activeElement = _document.activeElement;\n if (containerRef.current.contains(activeElement)) {\n activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur();\n }\n }\n };\n });\n // ========================== Auto Focus ==========================\n React.useEffect(function () {\n if (autoFocus) {\n handlesRef.current.focus(0);\n }\n }, []);\n // =========================== Context ============================\n var context = React.useMemo(function () {\n return {\n min: mergedMin,\n max: mergedMax,\n direction: direction,\n disabled: disabled,\n keyboard: keyboard,\n step: mergedStep,\n included: included,\n includedStart: includedStart,\n includedEnd: includedEnd,\n range: range,\n tabIndex: tabIndex,\n ariaLabelForHandle: ariaLabelForHandle,\n ariaLabelledByForHandle: ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle: ariaValueTextFormatterForHandle\n };\n }, [mergedMin, mergedMax, direction, disabled, keyboard, mergedStep, included, includedStart, includedEnd, range, tabIndex, ariaLabelForHandle, ariaLabelledByForHandle, ariaValueTextFormatterForHandle]);\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(SliderContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-vertical\"), vertical), _defineProperty(_classNames, \"\".concat(prefixCls, \"-horizontal\"), !vertical), _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-marks\"), markList.length), _classNames)),\n style: style,\n onMouseDown: onSliderMouseDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-rail\"),\n style: railStyle\n }), /*#__PURE__*/React.createElement(Tracks, {\n prefixCls: prefixCls,\n style: trackStyle,\n values: sortedCacheValues,\n startPoint: startPoint,\n onStartMove: mergedDraggableTrack ? onStartMove : null\n }), /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n marks: markList,\n dots: dots,\n style: dotStyle,\n activeStyle: activeDotStyle\n }), /*#__PURE__*/React.createElement(Handles, {\n ref: handlesRef,\n prefixCls: prefixCls,\n style: handleStyle,\n values: cacheValues,\n draggingIndex: draggingIndex,\n onStartMove: onStartMove,\n onOffsetChange: onHandleOffsetChange,\n onFocus: onFocus,\n onBlur: onBlur,\n handleRender: handleRender\n }), /*#__PURE__*/React.createElement(Marks, {\n prefixCls: prefixCls,\n marks: markList,\n onClick: changeToCloseValue\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Slider.displayName = 'Slider';\n}\nexport default Slider;","import Slider from './Slider';\nexport default Slider;","import raf from \"rc-util/es/raf\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport Tooltip from '../tooltip';\nconst SliderTooltip = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n open\n } = props;\n const innerRef = useRef(null);\n const rafRef = useRef(null);\n function cancelKeepAlign() {\n raf.cancel(rafRef.current);\n rafRef.current = null;\n }\n function keepAlign() {\n rafRef.current = raf(() => {\n var _a;\n (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.forceAlign();\n rafRef.current = null;\n });\n }\n React.useEffect(() => {\n if (open) {\n keepAlign();\n } else {\n cancelKeepAlign();\n }\n return cancelKeepAlign;\n }, [open, props.title]);\n return /*#__PURE__*/React.createElement(Tooltip, Object.assign({\n ref: composeRef(innerRef, ref)\n }, props));\n});\nif (process.env.NODE_ENV !== 'production') {\n SliderTooltip.displayName = 'SliderTooltip';\n}\nexport default SliderTooltip;","import { TinyColor } from '@ctrl/tinycolor';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n antCls,\n controlSize,\n dotSize,\n marginFull,\n marginPart,\n colorFillContentHover\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n height: controlSize,\n margin: `${marginPart}px ${marginFull}px`,\n padding: 0,\n cursor: 'pointer',\n touchAction: 'none',\n [`&-vertical`]: {\n margin: `${marginFull}px ${marginPart}px`\n },\n [`${componentCls}-rail`]: {\n position: 'absolute',\n backgroundColor: token.railBg,\n borderRadius: token.borderRadiusXS,\n transition: `background-color ${token.motionDurationMid}`\n },\n [`${componentCls}-track`]: {\n position: 'absolute',\n backgroundColor: token.trackBg,\n borderRadius: token.borderRadiusXS,\n transition: `background-color ${token.motionDurationMid}`\n },\n '&:hover': {\n [`${componentCls}-rail`]: {\n backgroundColor: token.railHoverBg\n },\n [`${componentCls}-track`]: {\n backgroundColor: token.trackHoverBg\n },\n [`${componentCls}-dot`]: {\n borderColor: colorFillContentHover\n },\n [`${componentCls}-handle::after`]: {\n boxShadow: `0 0 0 ${token.handleLineWidth}px ${token.colorPrimaryBorderHover}`\n },\n [`${componentCls}-dot-active`]: {\n borderColor: token.dotActiveBorderColor\n }\n },\n [`${componentCls}-handle`]: {\n position: 'absolute',\n width: token.handleSize,\n height: token.handleSize,\n outline: 'none',\n [`${componentCls}-dragging`]: {\n zIndex: 1\n },\n // 扩大选区\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n insetInlineStart: -token.handleLineWidth,\n insetBlockStart: -token.handleLineWidth,\n width: token.handleSize + token.handleLineWidth * 2,\n height: token.handleSize + token.handleLineWidth * 2,\n backgroundColor: 'transparent'\n },\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: token.handleSize,\n height: token.handleSize,\n backgroundColor: token.colorBgElevated,\n boxShadow: `0 0 0 ${token.handleLineWidth}px ${token.handleColor}`,\n borderRadius: '50%',\n cursor: 'pointer',\n transition: `\n inset-inline-start ${token.motionDurationMid},\n inset-block-start ${token.motionDurationMid},\n width ${token.motionDurationMid},\n height ${token.motionDurationMid},\n box-shadow ${token.motionDurationMid}\n `\n },\n '&:hover, &:active, &:focus': {\n '&::before': {\n insetInlineStart: -((token.handleSizeHover - token.handleSize) / 2 + token.handleLineWidthHover),\n insetBlockStart: -((token.handleSizeHover - token.handleSize) / 2 + token.handleLineWidthHover),\n width: token.handleSizeHover + token.handleLineWidthHover * 2,\n height: token.handleSizeHover + token.handleLineWidthHover * 2\n },\n '&::after': {\n boxShadow: `0 0 0 ${token.handleLineWidthHover}px ${token.handleActiveColor}`,\n width: token.handleSizeHover,\n height: token.handleSizeHover,\n insetInlineStart: (token.handleSize - token.handleSizeHover) / 2,\n insetBlockStart: (token.handleSize - token.handleSizeHover) / 2\n }\n }\n },\n [`${componentCls}-mark`]: {\n position: 'absolute',\n fontSize: token.fontSize\n },\n [`${componentCls}-mark-text`]: {\n position: 'absolute',\n display: 'inline-block',\n color: token.colorTextDescription,\n textAlign: 'center',\n wordBreak: 'keep-all',\n cursor: 'pointer',\n userSelect: 'none',\n '&-active': {\n color: token.colorText\n }\n },\n [`${componentCls}-step`]: {\n position: 'absolute',\n background: 'transparent',\n pointerEvents: 'none'\n },\n [`${componentCls}-dot`]: {\n position: 'absolute',\n width: dotSize,\n height: dotSize,\n backgroundColor: token.colorBgElevated,\n border: `${token.handleLineWidth}px solid ${token.dotBorderColor}`,\n borderRadius: '50%',\n cursor: 'pointer',\n transition: `border-color ${token.motionDurationSlow}`,\n pointerEvents: 'auto',\n '&-active': {\n borderColor: token.dotActiveBorderColor\n }\n },\n [`&${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [`${componentCls}-rail`]: {\n backgroundColor: `${token.railBg} !important`\n },\n [`${componentCls}-track`]: {\n backgroundColor: `${token.trackBgDisabled} !important`\n },\n [`\n ${componentCls}-dot\n `]: {\n backgroundColor: token.colorBgElevated,\n borderColor: token.trackBgDisabled,\n boxShadow: 'none',\n cursor: 'not-allowed'\n },\n [`${componentCls}-handle::after`]: {\n backgroundColor: token.colorBgElevated,\n cursor: 'not-allowed',\n width: token.handleSize,\n height: token.handleSize,\n boxShadow: `0 0 0 ${token.handleLineWidth}px ${new TinyColor(token.colorTextDisabled).onBackground(token.colorBgContainer).toHexShortString()}`,\n insetInlineStart: 0,\n insetBlockStart: 0\n },\n [`\n ${componentCls}-mark-text,\n ${componentCls}-dot\n `]: {\n cursor: `not-allowed !important`\n }\n },\n [`&-tooltip ${antCls}-tooltip-inner`]: {\n minWidth: 'unset'\n }\n })\n };\n};\n// ============================ Horizontal ============================\nconst genDirectionStyle = (token, horizontal) => {\n const {\n componentCls,\n railSize,\n handleSize,\n dotSize\n } = token;\n const railPadding = horizontal ? 'paddingBlock' : 'paddingInline';\n const full = horizontal ? 'width' : 'height';\n const part = horizontal ? 'height' : 'width';\n const handlePos = horizontal ? 'insetBlockStart' : 'insetInlineStart';\n const markInset = horizontal ? 'top' : 'insetInlineStart';\n return {\n [railPadding]: railSize,\n [part]: railSize * 3,\n [`${componentCls}-rail`]: {\n [full]: '100%',\n [part]: railSize\n },\n [`${componentCls}-track`]: {\n [part]: railSize\n },\n [`${componentCls}-handle`]: {\n [handlePos]: (railSize * 3 - handleSize) / 2\n },\n [`${componentCls}-mark`]: {\n // Reset all\n insetInlineStart: 0,\n top: 0,\n // https://github.com/ant-design/ant-design/issues/43731\n [markInset]: railSize * 3 + (horizontal ? 0 : token.marginFull),\n [full]: '100%'\n },\n [`${componentCls}-step`]: {\n // Reset all\n insetInlineStart: 0,\n top: 0,\n [markInset]: railSize,\n [full]: '100%',\n [part]: railSize\n },\n [`${componentCls}-dot`]: {\n position: 'absolute',\n [handlePos]: (railSize - dotSize) / 2\n }\n };\n};\n// ============================ Horizontal ============================\nconst genHorizontalStyle = token => {\n const {\n componentCls,\n marginPartWithMark\n } = token;\n return {\n [`${componentCls}-horizontal`]: Object.assign(Object.assign({}, genDirectionStyle(token, true)), {\n [`&${componentCls}-with-marks`]: {\n marginBottom: marginPartWithMark\n }\n })\n };\n};\n// ============================= Vertical =============================\nconst genVerticalStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-vertical`]: Object.assign(Object.assign({}, genDirectionStyle(token, false)), {\n height: '100%'\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Slider', token => {\n const sliderToken = mergeToken(token, {\n marginPart: (token.controlHeight - token.controlSize) / 2,\n marginFull: token.controlSize / 2,\n marginPartWithMark: token.controlHeightLG - token.controlSize\n });\n return [genBaseStyle(sliderToken), genHorizontalStyle(sliderToken), genVerticalStyle(sliderToken)];\n}, token => {\n // Handle line width is always width-er 1px\n const increaseHandleWidth = 1;\n const controlSize = token.controlHeightLG / 4;\n const controlSizeHover = token.controlHeightSM / 2;\n const handleLineWidth = token.lineWidth + increaseHandleWidth;\n const handleLineWidthHover = token.lineWidth + increaseHandleWidth * 3;\n return {\n controlSize,\n railSize: 4,\n handleSize: controlSize,\n handleSizeHover: controlSizeHover,\n dotSize: 8,\n handleLineWidth,\n handleLineWidthHover,\n railBg: token.colorFillTertiary,\n railHoverBg: token.colorFillSecondary,\n trackBg: token.colorPrimaryBorder,\n trackHoverBg: token.colorPrimaryBorderHover,\n handleColor: token.colorPrimaryBorder,\n handleActiveColor: token.colorPrimary,\n dotBorderColor: token.colorBorderSecondary,\n dotActiveBorderColor: token.colorPrimaryBorder,\n trackBgDisabled: token.colorBgContainerDisabled\n };\n});","'use client';\n\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 RcSlider from 'rc-slider';\nimport React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SliderTooltip from './SliderTooltip';\nimport useStyle from './style';\nconst defaultFormatter = val => typeof val === 'number' ? val.toString() : '';\nconst Slider = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n range,\n className,\n rootClassName,\n style,\n disabled,\n // Deprecated Props\n tooltipPrefixCls: legacyTooltipPrefixCls,\n tipFormatter: legacyTipFormatter,\n tooltipVisible: legacyTooltipVisible,\n getTooltipPopupContainer: legacyGetTooltipPopupContainer,\n tooltipPlacement: legacyTooltipPlacement\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"range\", \"className\", \"rootClassName\", \"style\", \"disabled\", \"tooltipPrefixCls\", \"tipFormatter\", \"tooltipVisible\", \"getTooltipPopupContainer\", \"tooltipPlacement\"]);\n const {\n direction,\n slider,\n getPrefixCls,\n getPopupContainer\n } = React.useContext(ConfigContext);\n const contextDisabled = React.useContext(DisabledContext);\n const mergedDisabled = disabled !== null && disabled !== void 0 ? disabled : contextDisabled;\n const [opens, setOpens] = React.useState({});\n const toggleTooltipOpen = (index, open) => {\n setOpens(prev => Object.assign(Object.assign({}, prev), {\n [index]: open\n }));\n };\n const getTooltipPlacement = (placement, vertical) => {\n if (placement) {\n return placement;\n }\n if (!vertical) {\n return 'top';\n }\n return direction === 'rtl' ? 'left' : 'right';\n };\n const prefixCls = getPrefixCls('slider', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cls = classNames(className, slider === null || slider === void 0 ? void 0 : slider.className, rootClassName, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, hashId);\n // make reverse default on rtl direction\n if (direction === 'rtl' && !restProps.vertical) {\n restProps.reverse = !restProps.reverse;\n }\n // Range config\n const [mergedRange, draggableTrack] = React.useMemo(() => {\n if (!range) {\n return [false];\n }\n return typeof range === 'object' ? [true, range.draggableTrack] : [true, false];\n }, [range]);\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['tooltipPrefixCls', 'prefixCls'], ['getTooltipPopupContainer', 'getPopupContainer'], ['tipFormatter', 'formatter'], ['tooltipPlacement', 'placement'], ['tooltipVisible', 'open']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Slider', `\\`${deprecatedName}\\` is deprecated, please use \\`tooltip.${newName}\\` instead.`) : void 0;\n });\n }\n const handleRender = (node, info) => {\n var _a;\n const {\n index,\n dragging\n } = info;\n const {\n tooltip = {},\n vertical\n } = props;\n const tooltipProps = Object.assign({}, tooltip);\n const {\n open: tooltipOpen,\n placement: tooltipPlacement,\n getPopupContainer: getTooltipPopupContainer,\n prefixCls: customizeTooltipPrefixCls,\n formatter: tipFormatter\n } = tooltipProps;\n let mergedTipFormatter;\n if (tipFormatter || tipFormatter === null) {\n mergedTipFormatter = tipFormatter;\n } else if (legacyTipFormatter || legacyTipFormatter === null) {\n mergedTipFormatter = legacyTipFormatter;\n } else {\n mergedTipFormatter = defaultFormatter;\n }\n const isTipFormatter = mergedTipFormatter ? opens[index] || dragging : false;\n const open = (_a = tooltipOpen !== null && tooltipOpen !== void 0 ? tooltipOpen : legacyTooltipVisible) !== null && _a !== void 0 ? _a : tooltipOpen === undefined && isTipFormatter;\n const passedProps = Object.assign(Object.assign({}, node.props), {\n onMouseEnter: () => toggleTooltipOpen(index, true),\n onMouseLeave: () => toggleTooltipOpen(index, false)\n });\n const tooltipPrefixCls = getPrefixCls('tooltip', customizeTooltipPrefixCls !== null && customizeTooltipPrefixCls !== void 0 ? customizeTooltipPrefixCls : legacyTooltipPrefixCls);\n return /*#__PURE__*/React.createElement(SliderTooltip, Object.assign({}, tooltipProps, {\n prefixCls: tooltipPrefixCls,\n title: mergedTipFormatter ? mergedTipFormatter(info.value) : '',\n open: open,\n placement: getTooltipPlacement(tooltipPlacement !== null && tooltipPlacement !== void 0 ? tooltipPlacement : legacyTooltipPlacement, vertical),\n key: index,\n overlayClassName: `${prefixCls}-tooltip`,\n getPopupContainer: getTooltipPopupContainer || legacyGetTooltipPopupContainer || getPopupContainer\n }), /*#__PURE__*/React.cloneElement(node, passedProps));\n };\n const mergedStyle = Object.assign(Object.assign({}, slider === null || slider === void 0 ? void 0 : slider.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(RcSlider, Object.assign({}, restProps, {\n step: restProps.step,\n range: mergedRange,\n draggableTrack: draggableTrack,\n className: cls,\n style: mergedStyle,\n disabled: mergedDisabled,\n ref: ref,\n prefixCls: prefixCls,\n handleRender: handleRender\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Slider.displayName = 'Slider';\n}\nexport default Slider;","var __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 useSize from '../config-provider/hooks/useSize';\nimport useStyle from './style';\nexport const SpaceCompactItemContext = /*#__PURE__*/React.createContext(null);\nexport const useCompactItemContext = (prefixCls, direction) => {\n const compactItemContext = React.useContext(SpaceCompactItemContext);\n const compactItemClassnames = React.useMemo(() => {\n if (!compactItemContext) {\n return '';\n }\n const {\n compactDirection,\n isFirstItem,\n isLastItem\n } = compactItemContext;\n const separator = compactDirection === 'vertical' ? '-vertical-' : '-';\n return classNames(`${prefixCls}-compact${separator}item`, {\n [`${prefixCls}-compact${separator}first-item`]: isFirstItem,\n [`${prefixCls}-compact${separator}last-item`]: isLastItem,\n [`${prefixCls}-compact${separator}item-rtl`]: direction === 'rtl'\n });\n }, [prefixCls, direction, compactItemContext]);\n return {\n compactSize: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize,\n compactDirection: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection,\n compactItemClassnames\n };\n};\nexport const NoCompactStyle = _ref => {\n let {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: null\n }, children);\n};\nconst CompactItem = _a => {\n var {\n children\n } = _a,\n otherProps = __rest(_a, [\"children\"]);\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: otherProps\n }, children);\n};\nconst Compact = props => {\n const {\n getPrefixCls,\n direction: directionConfig\n } = React.useContext(ConfigContext);\n const {\n size,\n direction,\n block,\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n children\n } = props,\n restProps = __rest(props, [\"size\", \"direction\", \"block\", \"prefixCls\", \"className\", \"rootClassName\", \"children\"]);\n const mergedSize = useSize(ctx => size !== null && size !== void 0 ? size : ctx);\n const prefixCls = getPrefixCls('space-compact', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const clx = classNames(prefixCls, hashId, {\n [`${prefixCls}-rtl`]: directionConfig === 'rtl',\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-vertical`]: direction === 'vertical'\n }, className, rootClassName);\n const compactItemContext = React.useContext(SpaceCompactItemContext);\n const childNodes = toArray(children);\n const nodes = React.useMemo(() => childNodes.map((child, i) => {\n const key = child && child.key || `${prefixCls}-item-${i}`;\n return /*#__PURE__*/React.createElement(CompactItem, {\n key: key,\n compactSize: mergedSize,\n compactDirection: direction,\n isFirstItem: i === 0 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)),\n isLastItem: i === childNodes.length - 1 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem))\n }, child);\n }), [size, childNodes, compactItemContext]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: clx\n }, restProps), nodes));\n};\nexport default Compact;","import React from 'react';\nexport const SpaceContext = /*#__PURE__*/React.createContext({\n latestIndex: 0,\n horizontalSize: 0,\n verticalSize: 0,\n supportFlexGap: false\n});\nexport const SpaceContextProvider = SpaceContext.Provider;","import * as React from 'react';\nimport { SpaceContext } from './context';\nconst Item = _ref => {\n let {\n className,\n direction,\n index,\n marginDirection,\n children,\n split,\n wrap,\n style: customStyle\n } = _ref;\n const {\n horizontalSize,\n verticalSize,\n latestIndex,\n supportFlexGap\n } = React.useContext(SpaceContext);\n let 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 = Object.assign(Object.assign({}, index < latestIndex && {\n [marginDirection]: horizontalSize / (split ? 2 : 1)\n }), 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: Object.assign(Object.assign({}, style), customStyle)\n }, children), index < latestIndex && split && /*#__PURE__*/React.createElement(\"span\", {\n className: `${className}-split`,\n style: style\n }, split));\n};\nexport default Item;","'use client';\n\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 useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport { ConfigContext } from '../config-provider';\nimport Compact from './Compact';\nimport Item from './Item';\nimport { SpaceContextProvider } from './context';\nimport useStyle from './style';\nexport { SpaceContext } from './context';\nconst spaceSize = {\n small: 8,\n middle: 16,\n large: 24\n};\nfunction getNumberSize(size) {\n return typeof size === 'string' ? spaceSize[size] : size || 0;\n}\nconst Space = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b;\n const {\n getPrefixCls,\n space,\n direction: directionConfig\n } = React.useContext(ConfigContext);\n const {\n size = (space === null || space === void 0 ? void 0 : space.size) || 'small',\n align,\n className,\n rootClassName,\n children,\n direction = 'horizontal',\n prefixCls: customizePrefixCls,\n split,\n style,\n wrap = false,\n classNames: customClassNames,\n styles\n } = props,\n otherProps = __rest(props, [\"size\", \"align\", \"className\", \"rootClassName\", \"children\", \"direction\", \"prefixCls\", \"split\", \"style\", \"wrap\", \"classNames\", \"styles\"]);\n const supportFlexGap = useFlexGapSupport();\n const [horizontalSize, verticalSize] = React.useMemo(() => (Array.isArray(size) ? size : [size, size]).map(item => getNumberSize(item)), [size]);\n const childNodes = toArray(children, {\n keepEmpty: true\n });\n const mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;\n const prefixCls = getPrefixCls('space', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cn = classNames(prefixCls, space === null || space === void 0 ? void 0 : space.className, hashId, `${prefixCls}-${direction}`, {\n [`${prefixCls}-rtl`]: directionConfig === 'rtl',\n [`${prefixCls}-align-${mergedAlign}`]: mergedAlign\n }, className, rootClassName);\n const itemClassName = classNames(`${prefixCls}-item`, (_a = customClassNames === null || customClassNames === void 0 ? void 0 : customClassNames.item) !== null && _a !== void 0 ? _a : (_b = space === null || space === void 0 ? void 0 : space.classNames) === null || _b === void 0 ? void 0 : _b.item);\n const marginDirection = directionConfig === 'rtl' ? 'marginLeft' : 'marginRight';\n // Calculate latest one\n let latestIndex = 0;\n const nodes = childNodes.map((child, i) => {\n var _a, _b;\n if (child !== null && child !== undefined) {\n latestIndex = i;\n }\n const key = child && child.key || `${itemClassName}-${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 style: (_a = styles === null || styles === void 0 ? void 0 : styles.item) !== null && _a !== void 0 ? _a : (_b = space === null || space === void 0 ? void 0 : space.styles) === null || _b === void 0 ? void 0 : _b.item\n }, child);\n });\n const spaceContext = React.useMemo(() => ({\n horizontalSize,\n verticalSize,\n latestIndex,\n supportFlexGap\n }), [horizontalSize, verticalSize, latestIndex, supportFlexGap]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n const 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 wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: ref,\n className: cn,\n style: Object.assign(Object.assign(Object.assign({}, gapStyle), space === null || space === void 0 ? void 0 : space.style), style)\n }, otherProps), /*#__PURE__*/React.createElement(SpaceContextProvider, {\n value: spaceContext\n }, nodes)));\n});\nif (process.env.NODE_ENV !== 'production') {\n Space.displayName = 'Space';\n}\nconst CompoundedSpace = Space;\nCompoundedSpace.Compact = Compact;\nexport default CompoundedSpace;","const genSpaceCompactStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n '&-block': {\n display: 'flex',\n width: '100%'\n },\n '&-vertical': {\n flexDirection: 'column'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genSpaceCompactStyle;","import { genComponentStyleHook } from '../../theme/internal';\nimport genSpaceCompactStyle from './compact';\nconst genSpaceStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n display: 'inline-flex',\n '&-rtl': {\n direction: 'rtl'\n },\n '&-vertical': {\n flexDirection: 'column'\n },\n '&-align': {\n flexDirection: 'column',\n '&-center': {\n alignItems: 'center'\n },\n '&-start': {\n alignItems: 'flex-start'\n },\n '&-end': {\n alignItems: 'flex-end'\n },\n '&-baseline': {\n alignItems: 'baseline'\n }\n },\n [`${componentCls}-item:empty`]: {\n display: 'none'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Space', token => [genSpaceStyle(token), genSpaceCompactStyle(token)], () => ({}), {\n // Space component don't apply extra font style\n // https://github.com/ant-design/ant-design/issues/40315\n resetStyle: false\n});","import { Keyframes } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst antSpinMove = new Keyframes('antSpinMove', {\n to: {\n opacity: 1\n }\n});\nconst antRotate = new Keyframes('antRotate', {\n to: {\n transform: 'rotate(405deg)'\n }\n});\nconst genSpinStyle = token => ({\n [`${token.componentCls}`]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n display: 'none',\n color: token.colorPrimary,\n fontSize: 0,\n textAlign: 'center',\n verticalAlign: 'middle',\n opacity: 0,\n transition: `transform ${token.motionDurationSlow} ${token.motionEaseInOutCirc}`,\n '&-spinning': {\n position: 'static',\n display: 'inline-block',\n opacity: 1\n },\n '&-nested-loading': {\n position: 'relative',\n [`> div > ${token.componentCls}`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n zIndex: 4,\n display: 'block',\n width: '100%',\n height: '100%',\n maxHeight: token.contentHeight,\n [`${token.componentCls}-dot`]: {\n position: 'absolute',\n top: '50%',\n insetInlineStart: '50%',\n margin: -token.spinDotSize / 2\n },\n [`${token.componentCls}-text`]: {\n position: 'absolute',\n top: '50%',\n width: '100%',\n paddingTop: (token.spinDotSize - token.fontSize) / 2 + 2,\n textShadow: `0 1px 2px ${token.colorBgContainer}`,\n fontSize: token.fontSize\n },\n [`&${token.componentCls}-show-text ${token.componentCls}-dot`]: {\n marginTop: -(token.spinDotSize / 2) - 10\n },\n '&-sm': {\n [`${token.componentCls}-dot`]: {\n margin: -token.spinDotSizeSM / 2\n },\n [`${token.componentCls}-text`]: {\n paddingTop: (token.spinDotSizeSM - token.fontSize) / 2 + 2\n },\n [`&${token.componentCls}-show-text ${token.componentCls}-dot`]: {\n marginTop: -(token.spinDotSizeSM / 2) - 10\n }\n },\n '&-lg': {\n [`${token.componentCls}-dot`]: {\n margin: -(token.spinDotSizeLG / 2)\n },\n [`${token.componentCls}-text`]: {\n paddingTop: (token.spinDotSizeLG - token.fontSize) / 2 + 2\n },\n [`&${token.componentCls}-show-text ${token.componentCls}-dot`]: {\n marginTop: -(token.spinDotSizeLG / 2) - 10\n }\n }\n },\n [`${token.componentCls}-container`]: {\n position: 'relative',\n transition: `opacity ${token.motionDurationSlow}`,\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: 10,\n width: '100%',\n height: '100%',\n background: token.colorBgContainer,\n opacity: 0,\n transition: `all ${token.motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n }\n },\n [`${token.componentCls}-blur`]: {\n clear: 'both',\n opacity: 0.5,\n userSelect: 'none',\n pointerEvents: 'none',\n [`&::after`]: {\n opacity: 0.4,\n pointerEvents: 'auto'\n }\n }\n },\n // tip\n // ------------------------------\n [`&-tip`]: {\n color: token.spinDotDefault\n },\n // dots\n // ------------------------------\n [`${token.componentCls}-dot`]: {\n position: 'relative',\n display: 'inline-block',\n fontSize: token.spinDotSize,\n width: '1em',\n height: '1em',\n '&-item': {\n position: 'absolute',\n display: 'block',\n width: (token.spinDotSize - token.marginXXS / 2) / 2,\n height: (token.spinDotSize - token.marginXXS / 2) / 2,\n backgroundColor: token.colorPrimary,\n borderRadius: '100%',\n transform: 'scale(0.75)',\n transformOrigin: '50% 50%',\n opacity: 0.3,\n animationName: antSpinMove,\n animationDuration: '1s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear',\n animationDirection: 'alternate',\n '&:nth-child(1)': {\n top: 0,\n insetInlineStart: 0\n },\n '&:nth-child(2)': {\n top: 0,\n insetInlineEnd: 0,\n animationDelay: '0.4s'\n },\n '&:nth-child(3)': {\n insetInlineEnd: 0,\n bottom: 0,\n animationDelay: '0.8s'\n },\n '&:nth-child(4)': {\n bottom: 0,\n insetInlineStart: 0,\n animationDelay: '1.2s'\n }\n },\n '&-spin': {\n transform: 'rotate(45deg)',\n animationName: antRotate,\n animationDuration: '1.2s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear'\n }\n },\n // Sizes\n // ------------------------------\n // small\n [`&-sm ${token.componentCls}-dot`]: {\n fontSize: token.spinDotSizeSM,\n i: {\n width: (token.spinDotSizeSM - token.marginXXS / 2) / 2,\n height: (token.spinDotSizeSM - token.marginXXS / 2) / 2\n }\n },\n // large\n [`&-lg ${token.componentCls}-dot`]: {\n fontSize: token.spinDotSizeLG,\n i: {\n width: (token.spinDotSizeLG - token.marginXXS) / 2,\n height: (token.spinDotSizeLG - token.marginXXS) / 2\n }\n },\n [`&${token.componentCls}-show-text ${token.componentCls}-text`]: {\n display: 'block'\n }\n })\n});\n// ============================== Export ==============================\nexport default genComponentStyleHook('Spin', token => {\n const spinToken = mergeToken(token, {\n spinDotDefault: token.colorTextDescription,\n spinDotSize: token.controlHeightLG / 2,\n spinDotSizeSM: token.controlHeightLG * 0.35,\n spinDotSizeLG: token.controlHeight\n });\n return [genSpinStyle(spinToken)];\n}, {\n contentHeight: 400\n});","'use client';\n\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 omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { debounce } from 'throttle-debounce';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style/index';\nconst SpinSizes = ['small', 'default', 'large'];\n// Render indicator\nlet defaultIndicator = null;\nfunction renderIndicator(prefixCls, props) {\n const {\n indicator\n } = props;\n const dotClassName = `${prefixCls}-dot`;\n // should not be render default indicator when indicator value is null\n if (indicator === null) {\n return null;\n }\n if (isValidElement(indicator)) {\n return cloneElement(indicator, {\n className: classNames(indicator.props.className, dotClassName)\n });\n }\n if (isValidElement(defaultIndicator)) {\n return cloneElement(defaultIndicator, {\n className: classNames(defaultIndicator.props.className, dotClassName)\n });\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, `${prefixCls}-dot-spin`)\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: `${prefixCls}-dot-item`,\n key: 1\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: `${prefixCls}-dot-item`,\n key: 2\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: `${prefixCls}-dot-item`,\n key: 3\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: `${prefixCls}-dot-item`,\n key: 4\n }));\n}\nfunction shouldDelay(spinning, delay) {\n return !!spinning && !!delay && !isNaN(Number(delay));\n}\nconst Spin = props => {\n const {\n spinPrefixCls: prefixCls,\n spinning: customSpinning = true,\n delay = 0,\n className,\n rootClassName,\n size = 'default',\n tip,\n wrapperClassName,\n style,\n children,\n hashId\n } = props,\n restProps = __rest(props, [\"spinPrefixCls\", \"spinning\", \"delay\", \"className\", \"rootClassName\", \"size\", \"tip\", \"wrapperClassName\", \"style\", \"children\", \"hashId\"]);\n const [spinning, setSpinning] = React.useState(() => customSpinning && !shouldDelay(customSpinning, delay));\n React.useEffect(() => {\n if (customSpinning) {\n const showSpinning = debounce(delay, () => {\n setSpinning(true);\n });\n showSpinning();\n return () => {\n var _a;\n (_a = showSpinning === null || showSpinning === void 0 ? void 0 : showSpinning.cancel) === null || _a === void 0 ? void 0 : _a.call(showSpinning);\n };\n }\n setSpinning(false);\n }, [delay, customSpinning]);\n const isNestedPattern = React.useMemo(() => typeof children !== 'undefined', [children]);\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!tip || isNestedPattern, 'Spin', '`tip` only work in nest pattern.') : void 0;\n }\n const {\n direction,\n spin\n } = React.useContext(ConfigContext);\n const spinClassName = classNames(prefixCls, spin === null || spin === void 0 ? void 0 : spin.className, {\n [`${prefixCls}-sm`]: size === 'small',\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-spinning`]: spinning,\n [`${prefixCls}-show-text`]: !!tip,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n const containerClassName = classNames(`${prefixCls}-container`, {\n [`${prefixCls}-blur`]: spinning\n });\n // fix https://fb.me/react-unknown-prop\n const divProps = omit(restProps, ['indicator', 'prefixCls']);\n const mergedStyle = Object.assign(Object.assign({}, spin === null || spin === void 0 ? void 0 : spin.style), style);\n const spinElement = /*#__PURE__*/React.createElement(\"div\", Object.assign({}, divProps, {\n style: mergedStyle,\n className: spinClassName,\n \"aria-live\": \"polite\",\n \"aria-busy\": spinning\n }), renderIndicator(prefixCls, props), tip && isNestedPattern ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-text`\n }, tip) : null);\n if (isNestedPattern) {\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, divProps, {\n className: classNames(`${prefixCls}-nested-loading`, wrapperClassName, hashId)\n }), spinning && /*#__PURE__*/React.createElement(\"div\", {\n key: \"loading\"\n }, spinElement), /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n key: \"container\"\n }, children));\n }\n return spinElement;\n};\nconst SpinFC = props => {\n const {\n prefixCls: customizePrefixCls\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const spinPrefixCls = getPrefixCls('spin', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(spinPrefixCls);\n const spinClassProps = Object.assign(Object.assign({}, props), {\n spinPrefixCls,\n hashId\n });\n return wrapSSR( /*#__PURE__*/React.createElement(Spin, Object.assign({}, spinClassProps)));\n};\nSpinFC.setDefaultIndicator = indicator => {\n defaultIndicator = indicator;\n};\nif (process.env.NODE_ENV !== 'production') {\n SpinFC.displayName = 'Spin';\n}\nexport default SpinFC;","// handle border collapse\nfunction compactItemBorder(token, parentCls, options) {\n const {\n focusElCls,\n focus,\n borderElCls\n } = options;\n const childCombinator = borderElCls ? '> *' : '';\n const hoverEffects = ['hover', focus ? 'focus' : null, 'active'].filter(Boolean).map(n => `&:${n} ${childCombinator}`).join(',');\n return {\n [`&-item:not(${parentCls}-last-item)`]: {\n marginInlineEnd: -token.lineWidth\n },\n '&-item': Object.assign(Object.assign({\n [hoverEffects]: {\n zIndex: 2\n }\n }, focusElCls ? {\n [`&${focusElCls}`]: {\n zIndex: 2\n }\n } : {}), {\n [`&[disabled] ${childCombinator}`]: {\n zIndex: 0\n }\n })\n };\n}\n// handle border-radius\nfunction compactItemBorderRadius(prefixCls, parentCls, options) {\n const {\n borderElCls\n } = options;\n const childCombinator = borderElCls ? `> ${borderElCls}` : '';\n return {\n [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item) ${childCombinator}`]: {\n borderRadius: 0\n },\n [`&-item:not(${parentCls}-last-item)${parentCls}-first-item`]: {\n [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`&-item:not(${parentCls}-first-item)${parentCls}-last-item`]: {\n [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n };\n}\nexport function genCompactItemStyle(token) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n focus: true\n };\n const {\n componentCls\n } = token;\n const compactCls = `${componentCls}-compact`;\n return {\n [compactCls]: Object.assign(Object.assign({}, compactItemBorder(token, compactCls, options)), compactItemBorderRadius(componentCls, compactCls, options))\n };\n}","'use client';\n\nexport { operationUnit } from './operationUnit';\nexport { roundedArrow } from './roundedArrow';\nexport const textEllipsis = {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n};\nexport const resetComponent = token => ({\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n color: token.colorText,\n fontSize: token.fontSize,\n // font-variant: @font-variant-base;\n lineHeight: token.lineHeight,\n listStyle: 'none',\n // font-feature-settings: @font-feature-settings-base;\n fontFamily: token.fontFamily\n});\nexport const resetIcon = () => ({\n display: 'inline-flex',\n alignItems: 'center',\n color: 'inherit',\n fontStyle: 'normal',\n lineHeight: 0,\n textAlign: 'center',\n textTransform: 'none',\n // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n verticalAlign: '-0.125em',\n textRendering: 'optimizeLegibility',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n '> *': {\n lineHeight: 1\n },\n svg: {\n display: 'inline-block'\n }\n});\nexport const clearFix = () => ({\n // https://github.com/ant-design/ant-design/issues/21301#issuecomment-583955229\n '&::before': {\n display: 'table',\n content: '\"\"'\n },\n '&::after': {\n // https://github.com/ant-design/ant-design/issues/21864\n display: 'table',\n clear: 'both',\n content: '\"\"'\n }\n});\nexport const genLinkStyle = token => ({\n a: {\n color: token.colorLink,\n textDecoration: token.linkDecoration,\n backgroundColor: 'transparent',\n outline: 'none',\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '-webkit-text-decoration-skip': 'objects',\n '&:hover': {\n color: token.colorLinkHover\n },\n '&:active': {\n color: token.colorLinkActive\n },\n [`&:active,\n &:hover`]: {\n textDecoration: token.linkHoverDecoration,\n outline: 0\n },\n // https://github.com/ant-design/ant-design/issues/22503\n '&:focus': {\n textDecoration: token.linkFocusDecoration,\n outline: 0\n },\n '&[disabled]': {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n }\n});\nexport const genCommonStyle = (token, componentPrefixCls) => {\n const {\n fontFamily,\n fontSize\n } = token;\n const rootPrefixSelector = `[class^=\"${componentPrefixCls}\"], [class*=\" ${componentPrefixCls}\"]`;\n return {\n [rootPrefixSelector]: {\n fontFamily,\n fontSize,\n boxSizing: 'border-box',\n '&::before, &::after': {\n boxSizing: 'border-box'\n },\n [rootPrefixSelector]: {\n boxSizing: 'border-box',\n '&::before, &::after': {\n boxSizing: 'border-box'\n }\n }\n }\n };\n};\nexport const genFocusOutline = token => ({\n outline: `${token.lineWidthFocus}px solid ${token.colorPrimaryBorder}`,\n outlineOffset: 1,\n transition: 'outline-offset 0s, outline 0s'\n});\nexport const genFocusStyle = token => ({\n '&:focus-visible': Object.assign({}, genFocusOutline(token))\n});","const genCollapseMotion = token => ({\n [token.componentCls]: {\n // For common/openAnimation\n [`${token.antCls}-motion-collapse-legacy`]: {\n overflow: 'hidden',\n '&-active': {\n transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n }\n },\n [`${token.antCls}-motion-collapse`]: {\n overflow: 'hidden',\n transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n }\n }\n});\nexport default genCollapseMotion;","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const fadeIn = new Keyframes('antFadeIn', {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n});\nexport const fadeOut = new Keyframes('antFadeOut', {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n});\nexport const initFadeMotion = function (token) {\n let sameLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-fade`;\n const sameLevelPrefix = sameLevel ? '&' : '';\n return [initMotion(motionCls, fadeIn, fadeOut, token.motionDurationMid, sameLevel), {\n [`\n ${sameLevelPrefix}${motionCls}-enter,\n ${sameLevelPrefix}${motionCls}-appear\n `]: {\n opacity: 0,\n animationTimingFunction: 'linear'\n },\n [`${sameLevelPrefix}${motionCls}-leave`]: {\n animationTimingFunction: 'linear'\n }\n }];\n};","const initMotionCommon = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\n// FIXME: origin less code seems same as initMotionCommon. Maybe we can safe remove\nconst initMotionCommonLeave = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\nexport const initMotion = function (motionCls, inKeyframes, outKeyframes, duration) {\n let sameLevel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n const sameLevelPrefix = sameLevel ? '&' : '';\n return {\n [`\n ${sameLevelPrefix}${motionCls}-enter,\n ${sameLevelPrefix}${motionCls}-appear\n `]: Object.assign(Object.assign({}, initMotionCommon(duration)), {\n animationPlayState: 'paused'\n }),\n [`${sameLevelPrefix}${motionCls}-leave`]: Object.assign(Object.assign({}, initMotionCommonLeave(duration)), {\n animationPlayState: 'paused'\n }),\n [`\n ${sameLevelPrefix}${motionCls}-enter${motionCls}-enter-active,\n ${sameLevelPrefix}${motionCls}-appear${motionCls}-appear-active\n `]: {\n animationName: inKeyframes,\n animationPlayState: 'running'\n },\n [`${sameLevelPrefix}${motionCls}-leave${motionCls}-leave-active`]: {\n animationName: outKeyframes,\n animationPlayState: 'running',\n pointerEvents: 'none'\n }\n };\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const moveDownIn = new Keyframes('antMoveDownIn', {\n '0%': {\n transform: 'translate3d(0, 100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveDownOut = new Keyframes('antMoveDownOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(0, 100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nexport const moveLeftIn = new Keyframes('antMoveLeftIn', {\n '0%': {\n transform: 'translate3d(-100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveLeftOut = new Keyframes('antMoveLeftOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(-100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nexport const moveRightIn = new Keyframes('antMoveRightIn', {\n '0%': {\n transform: 'translate3d(100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveRightOut = new Keyframes('antMoveRightOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nexport const moveUpIn = new Keyframes('antMoveUpIn', {\n '0%': {\n transform: 'translate3d(0, -100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveUpOut = new Keyframes('antMoveUpOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(0, -100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nconst moveMotion = {\n 'move-up': {\n inKeyframes: moveUpIn,\n outKeyframes: moveUpOut\n },\n 'move-down': {\n inKeyframes: moveDownIn,\n outKeyframes: moveDownOut\n },\n 'move-left': {\n inKeyframes: moveLeftIn,\n outKeyframes: moveLeftOut\n },\n 'move-right': {\n inKeyframes: moveRightIn,\n outKeyframes: moveRightOut\n }\n};\nexport const initMoveMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = moveMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n opacity: 0,\n animationTimingFunction: token.motionEaseOutCirc\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInOutCirc\n }\n }];\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const slideUpIn = new Keyframes('antSlideUpIn', {\n '0%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleY(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n }\n});\nexport const slideUpOut = new Keyframes('antSlideUpOut', {\n '0%': {\n transform: 'scaleY(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n }\n});\nexport const slideDownIn = new Keyframes('antSlideDownIn', {\n '0%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '100% 100%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleY(1)',\n transformOrigin: '100% 100%',\n opacity: 1\n }\n});\nexport const slideDownOut = new Keyframes('antSlideDownOut', {\n '0%': {\n transform: 'scaleY(1)',\n transformOrigin: '100% 100%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '100% 100%',\n opacity: 0\n }\n});\nexport const slideLeftIn = new Keyframes('antSlideLeftIn', {\n '0%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleX(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n }\n});\nexport const slideLeftOut = new Keyframes('antSlideLeftOut', {\n '0%': {\n transform: 'scaleX(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n }\n});\nexport const slideRightIn = new Keyframes('antSlideRightIn', {\n '0%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '100% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleX(1)',\n transformOrigin: '100% 0%',\n opacity: 1\n }\n});\nexport const slideRightOut = new Keyframes('antSlideRightOut', {\n '0%': {\n transform: 'scaleX(1)',\n transformOrigin: '100% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '100% 0%',\n opacity: 0\n }\n});\nconst slideMotion = {\n 'slide-up': {\n inKeyframes: slideUpIn,\n outKeyframes: slideUpOut\n },\n 'slide-down': {\n inKeyframes: slideDownIn,\n outKeyframes: slideDownOut\n },\n 'slide-left': {\n inKeyframes: slideLeftIn,\n outKeyframes: slideLeftOut\n },\n 'slide-right': {\n inKeyframes: slideRightIn,\n outKeyframes: slideRightOut\n }\n};\nexport const initSlideMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = slideMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n transform: 'scale(0)',\n transformOrigin: '0% 0%',\n opacity: 0,\n animationTimingFunction: token.motionEaseOutQuint,\n [`&-prepare`]: {\n transform: 'scale(1)'\n }\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInQuint\n }\n }];\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const zoomIn = new Keyframes('antZoomIn', {\n '0%': {\n transform: 'scale(0.2)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomOut = new Keyframes('antZoomOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.2)',\n opacity: 0\n }\n});\nexport const zoomBigIn = new Keyframes('antZoomBigIn', {\n '0%': {\n transform: 'scale(0.8)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomBigOut = new Keyframes('antZoomBigOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.8)',\n opacity: 0\n }\n});\nexport const zoomUpIn = new Keyframes('antZoomUpIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n }\n});\nexport const zoomUpOut = new Keyframes('antZoomUpOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n }\n});\nexport const zoomLeftIn = new Keyframes('antZoomLeftIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n }\n});\nexport const zoomLeftOut = new Keyframes('antZoomLeftOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n }\n});\nexport const zoomRightIn = new Keyframes('antZoomRightIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n }\n});\nexport const zoomRightOut = new Keyframes('antZoomRightOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n }\n});\nexport const zoomDownIn = new Keyframes('antZoomDownIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n }\n});\nexport const zoomDownOut = new Keyframes('antZoomDownOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n }\n});\nconst zoomMotion = {\n zoom: {\n inKeyframes: zoomIn,\n outKeyframes: zoomOut\n },\n 'zoom-big': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-big-fast': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-left': {\n inKeyframes: zoomLeftIn,\n outKeyframes: zoomLeftOut\n },\n 'zoom-right': {\n inKeyframes: zoomRightIn,\n outKeyframes: zoomRightOut\n },\n 'zoom-up': {\n inKeyframes: zoomUpIn,\n outKeyframes: zoomUpOut\n },\n 'zoom-down': {\n inKeyframes: zoomDownIn,\n outKeyframes: zoomDownOut\n }\n};\nexport const initZoomMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = zoomMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, motionName === 'zoom-big-fast' ? token.motionDurationFast : token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n transform: 'scale(0)',\n opacity: 0,\n animationTimingFunction: token.motionEaseOutCirc,\n '&-prepare': {\n transform: 'none'\n }\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInOutCirc\n }\n }];\n};","import { roundedArrow } from './roundedArrow';\nexport const MAX_VERTICAL_CONTENT_RADIUS = 8;\nexport function getArrowOffset(options) {\n const maxVerticalContentRadius = MAX_VERTICAL_CONTENT_RADIUS;\n const {\n contentRadius,\n limitVerticalRadius\n } = options;\n const dropdownArrowOffset = contentRadius > 12 ? contentRadius + 2 : 12;\n const dropdownArrowOffsetVertical = limitVerticalRadius ? maxVerticalContentRadius : dropdownArrowOffset;\n return {\n dropdownArrowOffset,\n dropdownArrowOffsetVertical\n };\n}\nfunction isInject(valid, code) {\n if (!valid) return {};\n return code;\n}\nexport default function getArrowStyle(token, options) {\n const {\n componentCls,\n sizePopupArrow,\n borderRadiusXS,\n borderRadiusOuter,\n boxShadowPopoverArrow\n } = token;\n const {\n colorBg,\n contentRadius = token.borderRadiusLG,\n limitVerticalRadius,\n arrowDistance = 0,\n arrowPlacement = {\n left: true,\n right: true,\n top: true,\n bottom: true\n }\n } = options;\n const {\n dropdownArrowOffsetVertical,\n dropdownArrowOffset\n } = getArrowOffset({\n contentRadius,\n limitVerticalRadius\n });\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({\n // ============================ Basic ============================\n [`${componentCls}-arrow`]: [Object.assign(Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'block'\n }, roundedArrow(sizePopupArrow, borderRadiusXS, borderRadiusOuter, colorBg, boxShadowPopoverArrow)), {\n '&:before': {\n background: colorBg\n }\n })]\n }, isInject(!!arrowPlacement.top, {\n [[`&-placement-top ${componentCls}-arrow`, `&-placement-topLeft ${componentCls}-arrow`, `&-placement-topRight ${componentCls}-arrow`].join(',')]: {\n bottom: arrowDistance,\n transform: 'translateY(100%) rotate(180deg)'\n },\n [`&-placement-top ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateX(-50%) translateY(100%) rotate(180deg)'\n },\n [`&-placement-topLeft ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-topRight ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n }\n })), isInject(!!arrowPlacement.bottom, {\n [[`&-placement-bottom ${componentCls}-arrow`, `&-placement-bottomLeft ${componentCls}-arrow`, `&-placement-bottomRight ${componentCls}-arrow`].join(',')]: {\n top: arrowDistance,\n transform: `translateY(-100%)`\n },\n [`&-placement-bottom ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: `translateX(-50%) translateY(-100%)`\n },\n [`&-placement-bottomLeft ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-bottomRight ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n }\n })), isInject(!!arrowPlacement.left, {\n [[`&-placement-left ${componentCls}-arrow`, `&-placement-leftTop ${componentCls}-arrow`, `&-placement-leftBottom ${componentCls}-arrow`].join(',')]: {\n right: {\n _skip_check_: true,\n value: arrowDistance\n },\n transform: 'translateX(100%) rotate(90deg)'\n },\n [`&-placement-left ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(100%) rotate(90deg)'\n },\n [`&-placement-leftTop ${componentCls}-arrow`]: {\n top: dropdownArrowOffsetVertical\n },\n [`&-placement-leftBottom ${componentCls}-arrow`]: {\n bottom: dropdownArrowOffsetVertical\n }\n })), isInject(!!arrowPlacement.right, {\n [[`&-placement-right ${componentCls}-arrow`, `&-placement-rightTop ${componentCls}-arrow`, `&-placement-rightBottom ${componentCls}-arrow`].join(',')]: {\n left: {\n _skip_check_: true,\n value: arrowDistance\n },\n transform: 'translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-right ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-rightTop ${componentCls}-arrow`]: {\n top: dropdownArrowOffsetVertical\n },\n [`&-placement-rightBottom ${componentCls}-arrow`]: {\n bottom: dropdownArrowOffsetVertical\n }\n }))\n };\n}","export const roundedArrow = (width, innerRadius, outerRadius, bgColor, boxShadow) => {\n const unitWidth = width / 2;\n const ax = 0;\n const ay = unitWidth;\n const bx = outerRadius * 1 / Math.sqrt(2);\n const by = unitWidth - outerRadius * (1 - 1 / Math.sqrt(2));\n const cx = unitWidth - innerRadius * (1 / Math.sqrt(2));\n const cy = outerRadius * (Math.sqrt(2) - 1) + innerRadius * (1 / Math.sqrt(2));\n const dx = 2 * unitWidth - cx;\n const dy = cy;\n const ex = 2 * unitWidth - bx;\n const ey = by;\n const fx = 2 * unitWidth - ax;\n const fy = ay;\n const shadowWidth = unitWidth * Math.sqrt(2) + outerRadius * (Math.sqrt(2) - 2);\n const polygonOffset = outerRadius * (Math.sqrt(2) - 1);\n return {\n pointerEvents: 'none',\n width,\n height: width,\n overflow: 'hidden',\n '&::before': {\n position: 'absolute',\n bottom: 0,\n insetInlineStart: 0,\n width,\n height: width / 2,\n background: bgColor,\n clipPath: {\n _multi_value_: true,\n value: [`polygon(${polygonOffset}px 100%, 50% ${polygonOffset}px, ${2 * unitWidth - polygonOffset}px 100%, ${polygonOffset}px 100%)`, `path('M ${ax} ${ay} A ${outerRadius} ${outerRadius} 0 0 0 ${bx} ${by} L ${cx} ${cy} A ${innerRadius} ${innerRadius} 0 0 1 ${dx} ${dy} L ${ex} ${ey} A ${outerRadius} ${outerRadius} 0 0 0 ${fx} ${fy} Z')`]\n },\n content: '\"\"'\n },\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: shadowWidth,\n height: shadowWidth,\n bottom: 0,\n insetInline: 0,\n margin: 'auto',\n borderRadius: {\n _skip_check_: true,\n value: `0 0 ${innerRadius}px 0`\n },\n transform: 'translateY(50%) rotate(-135deg)',\n boxShadow,\n zIndex: 0,\n background: 'transparent'\n }\n };\n};","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import * as React from 'react';\nimport classNames from 'classnames';\nvar TabPane = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n id = _ref.id,\n active = _ref.active,\n tabKey = _ref.tabKey,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id && \"\".concat(id, \"-panel-\").concat(tabKey),\n role: \"tabpanel\",\n tabIndex: active ? 0 : -1,\n \"aria-labelledby\": id && \"\".concat(id, \"-tab-\").concat(tabKey),\n \"aria-hidden\": !active,\n style: style,\n className: classNames(prefixCls, active && \"\".concat(prefixCls, \"-active\"), className),\n ref: ref\n }, children);\n});\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'TabPane';\n}\nexport default TabPane;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"key\", \"forceRender\", \"style\", \"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"./TabPane\";\nexport default function TabPanelList(_ref) {\n var id = _ref.id,\n activeKey = _ref.activeKey,\n animated = _ref.animated,\n tabPosition = _ref.tabPosition,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var tabPaneAnimated = animated.tabPane;\n var tabPanePrefixCls = \"\".concat(prefixCls, \"-tabpane\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content-holder\"))\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), \"\".concat(prefixCls, \"-content-\").concat(tabPosition), _defineProperty({}, \"\".concat(prefixCls, \"-content-animated\"), tabPaneAnimated))\n }, tabs.map(function (_ref2) {\n var key = _ref2.key,\n forceRender = _ref2.forceRender,\n paneStyle = _ref2.style,\n paneClassName = _ref2.className,\n restTabProps = _objectWithoutProperties(_ref2, _excluded);\n var active = key === activeKey;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: key,\n visible: active,\n forceRender: forceRender,\n removeOnLeave: !!destroyInactiveTabPane,\n leavedClassName: \"\".concat(tabPanePrefixCls, \"-hidden\")\n }, animated.tabPaneMotion), function (_ref3, ref) {\n var motionStyle = _ref3.style,\n motionClassName = _ref3.className;\n return /*#__PURE__*/React.createElement(TabPane, _extends({}, restTabProps, {\n prefixCls: tabPanePrefixCls,\n id: id,\n tabKey: key,\n animated: tabPaneAnimated,\n active: active,\n style: _objectSpread(_objectSpread({}, paneStyle), motionStyle),\n className: classNames(paneClassName, motionClassName),\n ref: ref\n }));\n });\n })));\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n};\nexport default function useOffsets(tabs, tabSizes, holderScrollWidth) {\n return useMemo(function () {\n var _tabs$;\n var map = new Map();\n var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;\n var rightOffset = lastOffset.left + lastOffset.width;\n for (var i = 0; i < tabs.length; i += 1) {\n var key = tabs[i].key;\n var data = tabSizes.get(key);\n\n // Reuse last one when not exist yet\n if (!data) {\n var _tabs;\n data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n }\n var entity = map.get(key) || _objectSpread({}, data);\n\n // Right\n entity.right = rightOffset - entity.left - entity.width;\n\n // Update entity\n map.set(key, entity);\n }\n return map;\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), tabSizes, holderScrollWidth]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useSyncState(defaultState, onChange) {\n var stateRef = React.useRef(defaultState);\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n function setState(updater) {\n var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n if (newValue !== stateRef.current) {\n onChange(newValue, stateRef.current);\n }\n stateRef.current = newValue;\n forceUpdate({});\n }\n return [stateRef.current, setState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState, useRef } from 'react';\nvar MIN_SWIPE_DISTANCE = 0.1;\nvar STOP_SWIPE_DISTANCE = 0.01;\nvar REFRESH_INTERVAL = 20;\nvar SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL);\n\n// ================================= Hook =================================\nexport default function useTouchMove(ref, onOffset) {\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n touchPosition = _useState2[0],\n setTouchPosition = _useState2[1];\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n lastTimestamp = _useState4[0],\n setLastTimestamp = _useState4[1];\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n lastTimeDiff = _useState6[0],\n setLastTimeDiff = _useState6[1];\n var _useState7 = useState(),\n _useState8 = _slicedToArray(_useState7, 2),\n lastOffset = _useState8[0],\n setLastOffset = _useState8[1];\n var motionRef = useRef();\n\n // ========================= Events =========================\n // >>> Touch events\n function onTouchStart(e) {\n var _e$touches$ = e.touches[0],\n screenX = _e$touches$.screenX,\n screenY = _e$touches$.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n window.clearInterval(motionRef.current);\n }\n function onTouchMove(e) {\n if (!touchPosition) return;\n e.preventDefault();\n var _e$touches$2 = e.touches[0],\n screenX = _e$touches$2.screenX,\n screenY = _e$touches$2.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n var offsetX = screenX - touchPosition.x;\n var offsetY = screenY - touchPosition.y;\n onOffset(offsetX, offsetY);\n var now = Date.now();\n setLastTimestamp(now);\n setLastTimeDiff(now - lastTimestamp);\n setLastOffset({\n x: offsetX,\n y: offsetY\n });\n }\n function onTouchEnd() {\n if (!touchPosition) return;\n setTouchPosition(null);\n setLastOffset(null);\n\n // Swipe if needed\n if (lastOffset) {\n var distanceX = lastOffset.x / lastTimeDiff;\n var distanceY = lastOffset.y / lastTimeDiff;\n var absX = Math.abs(distanceX);\n var absY = Math.abs(distanceY);\n\n // Skip swipe if low distance\n if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;\n var currentX = distanceX;\n var currentY = distanceY;\n motionRef.current = window.setInterval(function () {\n if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n window.clearInterval(motionRef.current);\n return;\n }\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n }\n\n // >>> Wheel event\n var lastWheelDirectionRef = useRef();\n function onWheel(e) {\n var deltaX = e.deltaX,\n deltaY = e.deltaY;\n\n // Convert both to x & y since wheel only happened on PC\n var mixed = 0;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n if (absX === absY) {\n mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;\n } else if (absX > absY) {\n mixed = deltaX;\n lastWheelDirectionRef.current = 'x';\n } else {\n mixed = deltaY;\n lastWheelDirectionRef.current = 'y';\n }\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n }\n\n // ========================= Effect =========================\n var touchEventsRef = useRef(null);\n touchEventsRef.current = {\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd,\n onWheel: onWheel\n };\n React.useEffect(function () {\n function onProxyTouchStart(e) {\n touchEventsRef.current.onTouchStart(e);\n }\n function onProxyTouchMove(e) {\n touchEventsRef.current.onTouchMove(e);\n }\n function onProxyTouchEnd(e) {\n touchEventsRef.current.onTouchEnd(e);\n }\n function onProxyWheel(e) {\n touchEventsRef.current.onWheel(e);\n }\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: false\n });\n\n // No need to clean up since element removed\n ref.current.addEventListener('touchstart', onProxyTouchStart, {\n passive: false\n });\n ref.current.addEventListener('wheel', onProxyWheel);\n return function () {\n document.removeEventListener('touchmove', onProxyTouchMove);\n document.removeEventListener('touchend', onProxyTouchEnd);\n };\n }, []);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useLayoutUpdateEffect } from \"rc-util/es/hooks/useLayoutEffect\";\nimport { useRef, useState } from 'react';\n\n/**\n * Help to merge callback with `useLayoutEffect`.\n * One time will only trigger once.\n */\nexport default function useUpdate(callback) {\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n count = _useState2[0],\n setCount = _useState2[1];\n var effectRef = useRef(0);\n var callbackRef = useRef();\n callbackRef.current = callback;\n\n // Trigger on `useLayoutEffect`\n useLayoutUpdateEffect(function () {\n var _callbackRef$current;\n (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef);\n }, [count]);\n\n // Trigger to update count\n return function () {\n if (effectRef.current !== count) {\n return;\n }\n effectRef.current += 1;\n setCount(effectRef.current);\n };\n}\nexport function useUpdateState(defaultState) {\n var batchRef = useRef([]);\n var _useState3 = useState({}),\n _useState4 = _slicedToArray(_useState3, 2),\n forceUpdate = _useState4[1];\n var state = useRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n var flushUpdate = useUpdate(function () {\n var current = state.current;\n batchRef.current.forEach(function (callback) {\n current = callback(current);\n });\n batchRef.current = [];\n state.current = current;\n forceUpdate({});\n });\n function updater(callback) {\n batchRef.current.push(callback);\n flushUpdate();\n }\n return [state.current, updater];\n}","import { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0\n};\nexport default function useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, _ref) {\n var tabs = _ref.tabs,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl;\n var charUnit;\n var position;\n var transformSize;\n if (['top', 'bottom'].includes(tabPosition)) {\n charUnit = 'width';\n position = rtl ? 'right' : 'left';\n transformSize = Math.abs(transform);\n } else {\n charUnit = 'height';\n position = 'top';\n transformSize = -transform;\n }\n return useMemo(function () {\n if (!tabs.length) {\n return [0, 0];\n }\n var len = tabs.length;\n var endIndex = len;\n for (var i = 0; i < len; i += 1) {\n var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n if (offset[position] + offset[charUnit] > transformSize + visibleTabContentValue) {\n endIndex = i - 1;\n break;\n }\n }\n var startIndex = 0;\n for (var _i = len - 1; _i >= 0; _i -= 1) {\n var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n if (_offset[position] < transformSize) {\n startIndex = _i + 1;\n break;\n }\n }\n return startIndex >= endIndex ? [0, 0] : [startIndex, endIndex];\n }, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) {\n return tab.key;\n }).join('_'), rtl]);\n}","/**\n * We trade Map as deps which may change with same value but different ref object.\n * We should make it as hash for deps\n * */\nexport function stringify(obj) {\n var tgt;\n if (obj instanceof Map) {\n tgt = {};\n obj.forEach(function (v, k) {\n tgt[k] = v;\n });\n } else {\n tgt = obj;\n }\n return JSON.stringify(tgt);\n}\nvar RC_TABS_DOUBLE_QUOTE = 'TABS_DQ';\nexport function genDataNodeKey(key) {\n return String(key).replace(/\"/g, RC_TABS_DOUBLE_QUOTE);\n}\nexport function getRemovable(closable, closeIcon, editable, disabled) {\n if (\n // Only editable tabs can be removed\n !editable ||\n // Tabs cannot be removed when disabled\n disabled ||\n // closable is false\n closable === false ||\n // If closable is undefined, the remove button should be hidden when closeIcon is null or false\n closable === undefined && (closeIcon === false || closeIcon === null)) {\n return false;\n }\n return true;\n}","import * as React from 'react';\nfunction AddButton(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n editable = _ref.editable,\n locale = _ref.locale,\n style = _ref.style;\n if (!editable || editable.showAdd === false) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: ref,\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-add\"),\n style: style,\n \"aria-label\": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab',\n onClick: function onClick(event) {\n editable.onEdit('add', {\n event: event\n });\n }\n }, editable.addIcon || '+');\n}\nexport default /*#__PURE__*/React.forwardRef(AddButton);","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nvar ExtraContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var position = _ref.position,\n prefixCls = _ref.prefixCls,\n extra = _ref.extra;\n if (!extra) return null;\n var content;\n\n // Parse extra\n var assertExtra = {};\n if (_typeof(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {\n assertExtra = extra;\n } else {\n assertExtra.right = extra;\n }\n if (position === 'right') {\n content = assertExtra.right;\n }\n if (position === 'left') {\n content = assertExtra.left;\n }\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra-content\"),\n ref: ref\n }, content) : null;\n});\nif (process.env.NODE_ENV !== 'production') {\n ExtraContent.displayName = 'ExtraContent';\n}\nexport default ExtraContent;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem } from 'rc-menu';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport AddButton from \"./AddButton\";\nimport { getRemovable } from \"../util\";\nfunction OperationNode(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n tabs = _ref.tabs,\n locale = _ref.locale,\n mobile = _ref.mobile,\n _ref$moreIcon = _ref.moreIcon,\n moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n style = _ref.style,\n className = _ref.className,\n editable = _ref.editable,\n tabBarGutter = _ref.tabBarGutter,\n rtl = _ref.rtl,\n removeAriaLabel = _ref.removeAriaLabel,\n onTabClick = _ref.onTabClick,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName;\n // ======================== Dropdown ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedKey = _useState4[0],\n setSelectedKey = _useState4[1];\n var popupId = \"\".concat(id, \"-more-popup\");\n var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n var selectedItemId = selectedKey !== null ? \"\".concat(popupId, \"-\").concat(selectedKey) : null;\n var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;\n function onRemoveTab(event, key) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var menu = /*#__PURE__*/React.createElement(Menu, {\n onClick: function onClick(_ref2) {\n var key = _ref2.key,\n domEvent = _ref2.domEvent;\n onTabClick(key, domEvent);\n setOpen(false);\n },\n prefixCls: \"\".concat(dropdownPrefix, \"-menu\"),\n id: popupId,\n tabIndex: -1,\n role: \"listbox\",\n \"aria-activedescendant\": selectedItemId,\n selectedKeys: [selectedKey],\n \"aria-label\": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown'\n }, tabs.map(function (tab) {\n var closable = tab.closable,\n disabled = tab.disabled,\n closeIcon = tab.closeIcon,\n key = tab.key,\n label = tab.label;\n var removable = getRemovable(closable, closeIcon, editable, disabled);\n return /*#__PURE__*/React.createElement(MenuItem, {\n key: key,\n id: \"\".concat(popupId, \"-\").concat(key),\n role: \"option\",\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n disabled: disabled\n }, /*#__PURE__*/React.createElement(\"span\", null, label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(dropdownPrefix, \"-menu-item-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e, key);\n }\n }, closeIcon || editable.removeIcon || '×'));\n }));\n function selectOffset(offset) {\n var enabledTabs = tabs.filter(function (tab) {\n return !tab.disabled;\n });\n var selectedIndex = enabledTabs.findIndex(function (tab) {\n return tab.key === selectedKey;\n }) || 0;\n var len = enabledTabs.length;\n for (var i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n var tab = enabledTabs[selectedIndex];\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n }\n function onKeyDown(e) {\n var which = e.which;\n if (!open) {\n if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n return;\n }\n switch (which) {\n case KeyCode.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n case KeyCode.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n case KeyCode.ESC:\n setOpen(false);\n break;\n case KeyCode.SPACE:\n case KeyCode.ENTER:\n if (selectedKey !== null) onTabClick(selectedKey, e);\n break;\n }\n }\n\n // ========================= Effect =========================\n useEffect(function () {\n // We use query element here to avoid React strict warning\n var ele = document.getElementById(selectedItemId);\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, [selectedKey]);\n useEffect(function () {\n if (!open) {\n setSelectedKey(null);\n }\n }, [open]);\n\n // ========================= Render =========================\n var moreStyle = _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\n var overlayClassName = classNames(_defineProperty({}, \"\".concat(dropdownPrefix, \"-rtl\"), rtl));\n var moreNode = mobile ? null : /*#__PURE__*/React.createElement(Dropdown, {\n prefixCls: dropdownPrefix,\n overlay: menu,\n trigger: ['hover'],\n visible: tabs.length ? open : false,\n transitionName: moreTransitionName,\n onVisibleChange: setOpen,\n overlayClassName: classNames(overlayClassName, popupClassName),\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-more\"),\n style: moreStyle,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": popupId,\n id: \"\".concat(id, \"-more\"),\n \"aria-expanded\": open,\n onKeyDown: onKeyDown\n }, moreIcon));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-nav-operations\"), className),\n style: style,\n ref: ref\n }, moreNode, /*#__PURE__*/React.createElement(AddButton, {\n prefixCls: prefixCls,\n locale: locale,\n editable: editable\n }));\n}\nexport default /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(OperationNode), function (_, next) {\n return (\n // https://github.com/ant-design/ant-design/issues/32544\n // We'd better remove syntactic sugar in `rc-menu` since this has perf issue\n next.tabMoving\n );\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { genDataNodeKey, getRemovable } from \"../util\";\nfunction TabNode(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n active = _ref.active,\n _ref$tab = _ref.tab,\n key = _ref$tab.key,\n label = _ref$tab.label,\n disabled = _ref$tab.disabled,\n closeIcon = _ref$tab.closeIcon,\n closable = _ref.closable,\n renderWrapper = _ref.renderWrapper,\n removeAriaLabel = _ref.removeAriaLabel,\n editable = _ref.editable,\n onClick = _ref.onClick,\n onFocus = _ref.onFocus,\n style = _ref.style;\n var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n var removable = getRemovable(closable, closeIcon, editable, disabled);\n function onInternalClick(e) {\n if (disabled) {\n return;\n }\n onClick(e);\n }\n function onRemoveTab(event) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var node = /*#__PURE__*/React.createElement(\"div\", {\n key: key\n // ref={ref}\n ,\n \"data-node-key\": genDataNodeKey(key),\n className: classNames(tabPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(tabPrefix, \"-with-remove\"), removable), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-active\"), active), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-disabled\"), disabled), _classNames)),\n style: style,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tab\",\n \"aria-selected\": active,\n id: id && \"\".concat(id, \"-tab-\").concat(key),\n className: \"\".concat(tabPrefix, \"-btn\"),\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n \"aria-disabled\": disabled,\n tabIndex: disabled ? null : 0,\n onClick: function onClick(e) {\n e.stopPropagation();\n onInternalClick(e);\n },\n onKeyDown: function onKeyDown(e) {\n if ([KeyCode.SPACE, KeyCode.ENTER].includes(e.which)) {\n e.preventDefault();\n onInternalClick(e);\n }\n },\n onFocus: onFocus\n }, label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(tabPrefix, \"-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e);\n }\n }, closeIcon || editable.removeIcon || '×'));\n return renderWrapper ? renderWrapper(node) : node;\n}\nexport default TabNode;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport raf from \"rc-util/es/raf\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport useOffsets from \"../hooks/useOffsets\";\nimport useSyncState from \"../hooks/useSyncState\";\nimport useTouchMove from \"../hooks/useTouchMove\";\nimport useUpdate, { useUpdateState } from \"../hooks/useUpdate\";\nimport useVisibleRange from \"../hooks/useVisibleRange\";\nimport TabContext from \"../TabContext\";\nimport { genDataNodeKey, stringify } from \"../util\";\nimport AddButton from \"./AddButton\";\nimport ExtraContent from \"./ExtraContent\";\nimport OperationNode from \"./OperationNode\";\nimport TabNode from \"./TabNode\";\nvar getSize = function getSize(refObj) {\n var _ref = refObj.current || {},\n _ref$offsetWidth = _ref.offsetWidth,\n offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,\n _ref$offsetHeight = _ref.offsetHeight,\n offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;\n return [offsetWidth, offsetHeight];\n};\n\n/**\n * Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`\n */\nvar getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {\n return size[tabPositionTopOrBottom ? 0 : 1];\n};\nfunction TabNavList(props, ref) {\n var _classNames;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var className = props.className,\n style = props.style,\n id = props.id,\n animated = props.animated,\n activeKey = props.activeKey,\n rtl = props.rtl,\n extra = props.extra,\n editable = props.editable,\n locale = props.locale,\n tabPosition = props.tabPosition,\n tabBarGutter = props.tabBarGutter,\n children = props.children,\n onTabClick = props.onTabClick,\n onTabScroll = props.onTabScroll;\n var containerRef = useRef();\n var extraLeftRef = useRef();\n var extraRightRef = useRef();\n var tabsWrapperRef = useRef();\n var tabListRef = useRef();\n var operationsRef = useRef();\n var innerAddButtonRef = useRef();\n // const [getBtnRef, removeBtnRef] = useRefs();\n\n var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n var _useSyncState = useSyncState(0, function (next, prev) {\n if (tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'left' : 'right'\n });\n }\n }),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n transformLeft = _useSyncState2[0],\n setTransformLeft = _useSyncState2[1];\n var _useSyncState3 = useSyncState(0, function (next, prev) {\n if (!tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'top' : 'bottom'\n });\n }\n }),\n _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n transformTop = _useSyncState4[0],\n setTransformTop = _useSyncState4[1];\n var _useState = useState([0, 0]),\n _useState2 = _slicedToArray(_useState, 2),\n containerExcludeExtraSize = _useState2[0],\n setContainerExcludeExtraSize = _useState2[1];\n var _useState3 = useState([0, 0]),\n _useState4 = _slicedToArray(_useState3, 2),\n tabContentSize = _useState4[0],\n setTabContentSize = _useState4[1];\n var _useState5 = useState([0, 0]),\n _useState6 = _slicedToArray(_useState5, 2),\n addSize = _useState6[0],\n setAddSize = _useState6[1];\n var _useState7 = useState([0, 0]),\n _useState8 = _slicedToArray(_useState7, 2),\n operationSize = _useState8[0],\n setOperationSize = _useState8[1];\n var _useUpdateState = useUpdateState(new Map()),\n _useUpdateState2 = _slicedToArray(_useUpdateState, 2),\n tabSizes = _useUpdateState2[0],\n setTabSizes = _useUpdateState2[1];\n var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]);\n\n // ========================== Unit =========================\n var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);\n var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);\n var addSizeValue = getUnitValue(addSize, tabPositionTopOrBottom);\n var operationSizeValue = getUnitValue(operationSize, tabPositionTopOrBottom);\n var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue;\n var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue;\n\n // ========================== Util =========================\n var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n var transformMin = 0;\n var transformMax = 0;\n if (!tabPositionTopOrBottom) {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n } else if (rtl) {\n transformMin = 0;\n transformMax = Math.max(0, tabContentSizeValue - visibleTabContentValue);\n } else {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n }\n function alignInRange(value) {\n if (value < transformMin) {\n return transformMin;\n }\n if (value > transformMax) {\n return transformMax;\n }\n return value;\n }\n\n // ========================= Mobile ========================\n var touchMovingRef = useRef();\n var _useState9 = useState(),\n _useState10 = _slicedToArray(_useState9, 2),\n lockAnimation = _useState10[0],\n setLockAnimation = _useState10[1];\n function doLockAnimation() {\n setLockAnimation(Date.now());\n }\n function clearTouchMoving() {\n window.clearTimeout(touchMovingRef.current);\n }\n useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {\n function doMove(setState, offset) {\n setState(function (value) {\n var newValue = alignInRange(value + offset);\n return newValue;\n });\n }\n\n // Skip scroll if place is enough\n if (!needScroll) {\n return false;\n }\n if (tabPositionTopOrBottom) {\n doMove(setTransformLeft, offsetX);\n } else {\n doMove(setTransformTop, offsetY);\n }\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n useEffect(function () {\n clearTouchMoving();\n if (lockAnimation) {\n touchMovingRef.current = window.setTimeout(function () {\n setLockAnimation(0);\n }, 100);\n }\n return clearTouchMoving;\n }, [lockAnimation]);\n\n // ===================== Visible Range =====================\n // Render tab node & collect tab offset\n var _useVisibleRange = useVisibleRange(tabOffsets,\n // Container\n visibleTabContentValue,\n // Transform\n tabPositionTopOrBottom ? transformLeft : transformTop,\n // Tabs\n tabContentSizeValue,\n // Add\n addSizeValue,\n // Operation\n operationSizeValue, _objectSpread(_objectSpread({}, props), {}, {\n tabs: tabs\n })),\n _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n visibleStart = _useVisibleRange2[0],\n visibleEnd = _useVisibleRange2[1];\n\n // ========================= Scroll ========================\n var scrollToTab = useEvent(function () {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n var tabOffset = tabOffsets.get(key) || {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0\n };\n if (tabPositionTopOrBottom) {\n // ============ Align with top & bottom ============\n var newTransform = transformLeft;\n\n // RTL\n if (rtl) {\n if (tabOffset.right < transformLeft) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft + visibleTabContentValue) {\n newTransform = tabOffset.right + tabOffset.width - visibleTabContentValue;\n }\n }\n // LTR\n else if (tabOffset.left < -transformLeft) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft + visibleTabContentValue) {\n newTransform = -(tabOffset.left + tabOffset.width - visibleTabContentValue);\n }\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n var _newTransform = transformTop;\n if (tabOffset.top < -transformTop) {\n _newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop + visibleTabContentValue) {\n _newTransform = -(tabOffset.top + tabOffset.height - visibleTabContentValue);\n }\n setTransformLeft(0);\n setTransformTop(alignInRange(_newTransform));\n }\n });\n\n // ========================== Tab ==========================\n var tabNodeStyle = {};\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n } else {\n tabNodeStyle.marginTop = tabBarGutter;\n }\n var tabNodes = tabs.map(function (tab, i) {\n var key = tab.key;\n return /*#__PURE__*/React.createElement(TabNode, {\n id: id,\n prefixCls: prefixCls,\n key: key,\n tab: tab\n /* first node should not have margin left */,\n style: i === 0 ? undefined : tabNodeStyle,\n closable: tab.closable,\n editable: editable,\n active: key === activeKey,\n renderWrapper: children,\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n onClick: function onClick(e) {\n onTabClick(key, e);\n },\n onFocus: function onFocus() {\n scrollToTab(key);\n doLockAnimation();\n if (!tabsWrapperRef.current) {\n return;\n }\n // Focus element will make scrollLeft change which we should reset back\n if (!rtl) {\n tabsWrapperRef.current.scrollLeft = 0;\n }\n tabsWrapperRef.current.scrollTop = 0;\n }\n });\n });\n\n // Update buttons records\n var updateTabSizes = function updateTabSizes() {\n return setTabSizes(function () {\n var newSizes = new Map();\n tabs.forEach(function (_ref2) {\n var _tabListRef$current;\n var key = _ref2.key;\n var btnNode = (_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.querySelector(\"[data-node-key=\\\"\".concat(genDataNodeKey(key), \"\\\"]\"));\n if (btnNode) {\n newSizes.set(key, {\n width: btnNode.offsetWidth,\n height: btnNode.offsetHeight,\n left: btnNode.offsetLeft,\n top: btnNode.offsetTop\n });\n }\n });\n return newSizes;\n });\n };\n useEffect(function () {\n updateTabSizes();\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_')]);\n var onListHolderResize = useUpdate(function () {\n // Update wrapper records\n var containerSize = getSize(containerRef);\n var extraLeftSize = getSize(extraLeftRef);\n var extraRightSize = getSize(extraRightRef);\n setContainerExcludeExtraSize([containerSize[0] - extraLeftSize[0] - extraRightSize[0], containerSize[1] - extraLeftSize[1] - extraRightSize[1]]);\n var newAddSize = getSize(innerAddButtonRef);\n setAddSize(newAddSize);\n var newOperationSize = getSize(operationsRef);\n setOperationSize(newOperationSize);\n\n // Which includes add button size\n var tabContentFullSize = getSize(tabListRef);\n setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]);\n\n // Update buttons records\n updateTabSizes();\n });\n\n // ======================== Dropdown =======================\n var startHiddenTabs = tabs.slice(0, visibleStart);\n var endHiddenTabs = tabs.slice(visibleEnd + 1);\n var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs));\n\n // =================== Link & Operations ===================\n var _useState11 = useState(),\n _useState12 = _slicedToArray(_useState11, 2),\n inkStyle = _useState12[0],\n setInkStyle = _useState12[1];\n var activeTabOffset = tabOffsets.get(activeKey);\n\n // Delay set ink style to avoid remove tab blink\n var inkBarRafRef = useRef();\n function cleanInkBarRaf() {\n raf.cancel(inkBarRafRef.current);\n }\n useEffect(function () {\n var newInkStyle = {};\n if (activeTabOffset) {\n if (tabPositionTopOrBottom) {\n if (rtl) {\n newInkStyle.right = activeTabOffset.right;\n } else {\n newInkStyle.left = activeTabOffset.left;\n }\n newInkStyle.width = activeTabOffset.width;\n } else {\n newInkStyle.top = activeTabOffset.top;\n newInkStyle.height = activeTabOffset.height;\n }\n }\n cleanInkBarRaf();\n inkBarRafRef.current = raf(function () {\n setInkStyle(newInkStyle);\n });\n return cleanInkBarRaf;\n }, [activeTabOffset, tabPositionTopOrBottom, rtl]);\n\n // ========================= Effect ========================\n useEffect(function () {\n scrollToTab();\n // eslint-disable-next-line\n }, [activeKey, transformMin, transformMax, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]);\n\n // Should recalculate when rtl changed\n useEffect(function () {\n onListHolderResize();\n // eslint-disable-next-line\n }, [rtl]);\n\n // ========================= Render ========================\n var hasDropdown = !!hiddenTabs.length;\n var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n var pingLeft;\n var pingRight;\n var pingTop;\n var pingBottom;\n if (tabPositionTopOrBottom) {\n if (rtl) {\n pingRight = transformLeft > 0;\n pingLeft = transformLeft !== transformMax;\n } else {\n pingLeft = transformLeft < 0;\n pingRight = transformLeft !== transformMin;\n }\n } else {\n pingTop = transformTop < 0;\n pingBottom = transformTop !== transformMin;\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: useComposeRef(ref, containerRef),\n role: \"tablist\",\n className: classNames(\"\".concat(prefixCls, \"-nav\"), className),\n style: style,\n onKeyDown: function onKeyDown() {\n // No need animation when use keyboard\n doLockAnimation();\n }\n }, /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraLeftRef,\n position: \"left\",\n extra: extra,\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(wrapPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom), _classNames)),\n ref: tabsWrapperRef\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: tabListRef,\n className: \"\".concat(prefixCls, \"-nav-list\"),\n style: {\n transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n transition: lockAnimation ? 'none' : undefined\n }\n }, tabNodes, /*#__PURE__*/React.createElement(AddButton, {\n ref: innerAddButtonRef,\n prefixCls: prefixCls,\n locale: locale,\n editable: editable,\n style: _objectSpread(_objectSpread({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n visibility: hasDropdown ? 'hidden' : null\n })\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-ink-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n style: inkStyle\n })))), /*#__PURE__*/React.createElement(OperationNode, _extends({}, props, {\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n ref: operationsRef,\n prefixCls: prefixCls,\n tabs: hiddenTabs,\n className: !hasDropdown && operationsHiddenClassName,\n tabMoving: !!lockAnimation\n })), /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraRightRef,\n position: \"right\",\n extra: extra,\n prefixCls: prefixCls\n })));\n /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"renderTabBar\"],\n _excluded2 = [\"label\", \"key\"];\n// zombieJ: To compatible with `renderTabBar` usage.\n\nimport * as React from 'react';\nimport TabNavList from '.';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"../TabPanelList/TabPane\";\n// We have to create a TabNavList components.\nexport default function TabNavListWrapper(_ref) {\n var renderTabBar = _ref.renderTabBar,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(TabContext),\n tabs = _React$useContext.tabs;\n if (renderTabBar) {\n var tabNavBarProps = _objectSpread(_objectSpread({}, restProps), {}, {\n // Legacy support. We do not use this actually\n panes: tabs.map(function (_ref2) {\n var label = _ref2.label,\n key = _ref2.key,\n restTabProps = _objectWithoutProperties(_ref2, _excluded2);\n return /*#__PURE__*/React.createElement(TabPane, _extends({\n tab: label,\n key: key,\n tabKey: key\n }, restTabProps));\n })\n });\n return renderTabBar(tabNavBarProps, TabNavList);\n }\n return /*#__PURE__*/React.createElement(TabNavList, restProps);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nexport default function useAnimateConfig() {\n var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n inkBar: true,\n tabPane: false\n };\n var mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: false\n };\n } else {\n mergedAnimated = _objectSpread({\n inkBar: true\n }, _typeof(animated) === 'object' ? animated : {});\n }\n\n // Enable tabPane animation if provide motion\n if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) {\n mergedAnimated.tabPane = true;\n }\n if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`animated.tabPane` is true but `animated.tabPaneMotion` is not provided. Motion will not work.');\n }\n mergedAnimated.tabPane = false;\n }\n return mergedAnimated;\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 _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"items\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"moreIcon\", \"moreTransitionName\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\", \"getPopupContainer\", \"popupClassName\"];\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport isMobile from \"rc-util/es/isMobile\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TabPanelList from \"./TabPanelList\";\nimport TabContext from \"./TabContext\";\nimport TabNavListWrapper from \"./TabNavList/Wrapper\";\nimport useAnimateConfig from \"./hooks/useAnimateConfig\";\n\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */\n\n// Used for accessibility\nvar uuid = 0;\nfunction Tabs(_ref, ref) {\n var _classNames;\n var id = _ref.id,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,\n className = _ref.className,\n items = _ref.items,\n direction = _ref.direction,\n activeKey = _ref.activeKey,\n defaultActiveKey = _ref.defaultActiveKey,\n editable = _ref.editable,\n animated = _ref.animated,\n _ref$tabPosition = _ref.tabPosition,\n tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,\n tabBarGutter = _ref.tabBarGutter,\n tabBarStyle = _ref.tabBarStyle,\n tabBarExtraContent = _ref.tabBarExtraContent,\n locale = _ref.locale,\n moreIcon = _ref.moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n renderTabBar = _ref.renderTabBar,\n onChange = _ref.onChange,\n onTabClick = _ref.onTabClick,\n onTabScroll = _ref.onTabScroll,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var tabs = React.useMemo(function () {\n return (items || []).filter(function (item) {\n return item && _typeof(item) === 'object' && 'key' in item;\n });\n }, [items]);\n var rtl = direction === 'rtl';\n var mergedAnimated = useAnimateConfig(animated);\n\n // ======================== Mobile ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []);\n\n // ====================== Active Key ======================\n var _useMergedState = useMergedState(function () {\n var _tabs$;\n return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;\n }, {\n value: activeKey,\n defaultValue: defaultActiveKey\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedActiveKey = _useMergedState2[0],\n setMergedActiveKey = _useMergedState2[1];\n var _useState3 = useState(function () {\n return tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n activeIndex = _useState4[0],\n setActiveIndex = _useState4[1];\n\n // Reset active key if not exist anymore\n useEffect(function () {\n var newActiveIndex = tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n if (newActiveIndex === -1) {\n var _tabs$newActiveIndex;\n newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));\n setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);\n }\n setActiveIndex(newActiveIndex);\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), mergedActiveKey, activeIndex]);\n\n // ===================== Accessibility ====================\n var _useMergedState3 = useMergedState(null, {\n value: id\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedId = _useMergedState4[0],\n setMergedId = _useMergedState4[1];\n\n // Async generate id to avoid ssr mapping failed\n useEffect(function () {\n if (!id) {\n setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n uuid += 1;\n }\n }, []);\n\n // ======================== Events ========================\n function onInternalTabClick(key, e) {\n onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);\n var isActiveChanged = key !== mergedActiveKey;\n setMergedActiveKey(key);\n if (isActiveChanged) {\n onChange === null || onChange === void 0 ? void 0 : onChange(key);\n }\n }\n\n // ======================== Render ========================\n var sharedProps = {\n id: mergedId,\n activeKey: mergedActiveKey,\n animated: mergedAnimated,\n tabPosition: tabPosition,\n rtl: rtl,\n mobile: mobile\n };\n var tabNavBar;\n var tabNavBarProps = _objectSpread(_objectSpread({}, sharedProps), {}, {\n editable: editable,\n locale: locale,\n moreIcon: moreIcon,\n moreTransitionName: moreTransitionName,\n tabBarGutter: tabBarGutter,\n onTabClick: onInternalTabClick,\n onTabScroll: onTabScroll,\n extra: tabBarExtraContent,\n style: tabBarStyle,\n panes: null,\n getPopupContainer: getPopupContainer,\n popupClassName: popupClassName\n });\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: {\n tabs: tabs,\n prefixCls: prefixCls\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n id: id,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(tabPosition), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-mobile\"), mobile), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable\"), editable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl), _classNames), className)\n }, restProps), tabNavBar, /*#__PURE__*/React.createElement(TabNavListWrapper, _extends({}, tabNavBarProps, {\n renderTabBar: renderTabBar\n })), /*#__PURE__*/React.createElement(TabPanelList, _extends({\n destroyInactiveTabPane: destroyInactiveTabPane\n }, sharedProps, {\n animated: mergedAnimated\n }))));\n}\nvar ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);\nif (process.env.NODE_ENV !== 'production') {\n ForwardTabs.displayName = 'Tabs';\n}\nexport default ForwardTabs;","import Tabs from \"./Tabs\";\nexport default Tabs;","const TabPane = () => null;\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'DeprecatedTabPane';\n}\nexport default TabPane;","import { getTransitionName } from '../../_util/motion';\nconst motion = {\n motionAppear: false,\n motionEnter: true,\n motionLeave: true\n};\nexport default function useAnimateConfig(prefixCls) {\n let animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n inkBar: true,\n tabPane: false\n };\n let mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: true\n };\n } else {\n mergedAnimated = Object.assign({\n inkBar: true\n }, typeof animated === 'object' ? animated : {});\n }\n if (mergedAnimated.tabPane) {\n mergedAnimated.tabPaneMotion = Object.assign(Object.assign({}, motion), {\n motionName: getTransitionName(prefixCls, 'switch')\n });\n }\n return mergedAnimated;\n}","var __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 toArray from \"rc-util/es/Children/toArray\";\nimport warning from '../../_util/warning';\nfunction filter(items) {\n return items.filter(item => item);\n}\nexport default function useLegacyItems(items, children) {\n if (items) {\n return items;\n }\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Tabs', 'Tabs.TabPane is deprecated. Please use `items` directly.') : void 0;\n const childrenItems = toArray(children).map(node => {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n const {\n key,\n props\n } = node;\n const _a = props || {},\n {\n tab\n } = _a,\n restProps = __rest(_a, [\"tab\"]);\n const item = Object.assign(Object.assign({\n key: String(key)\n }, restProps), {\n label: tab\n });\n return item;\n }\n return null;\n });\n return filter(childrenItems);\n}","import { initSlideMotion } from '../../style/motion';\nconst genMotionStyle = token => {\n const {\n componentCls,\n motionDurationSlow\n } = token;\n return [{\n [componentCls]: {\n [`${componentCls}-switch`]: {\n '&-appear, &-enter': {\n transition: 'none',\n '&-start': {\n opacity: 0\n },\n '&-active': {\n opacity: 1,\n transition: `opacity ${motionDurationSlow}`\n }\n },\n '&-leave': {\n position: 'absolute',\n transition: 'none',\n inset: 0,\n '&-start': {\n opacity: 1\n },\n '&-active': {\n opacity: 0,\n transition: `opacity ${motionDurationSlow}`\n }\n }\n }\n }\n },\n // Follow code may reuse in other components\n [initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down')]];\n};\nexport default genMotionStyle;","import { genFocusStyle, resetComponent, textEllipsis } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genMotionStyle from './motion';\nconst genCardStyle = token => {\n const {\n componentCls,\n tabsCardPadding,\n cardBg,\n cardGutter,\n colorBorderSecondary,\n itemSelectedColor\n } = token;\n return {\n [`${componentCls}-card`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n margin: 0,\n padding: tabsCardPadding,\n background: cardBg,\n border: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}`\n },\n [`${componentCls}-tab-active`]: {\n color: itemSelectedColor,\n background: token.colorBgContainer\n },\n [`${componentCls}-ink-bar`]: {\n visibility: 'hidden'\n }\n },\n // ========================== Top & Bottom ==========================\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginLeft: {\n _skip_check_: true,\n value: `${cardGutter}px`\n }\n }\n }\n },\n [`&${componentCls}-top`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`\n },\n [`${componentCls}-tab-active`]: {\n borderBottomColor: token.colorBgContainer\n }\n }\n },\n [`&${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`\n },\n [`${componentCls}-tab-active`]: {\n borderTopColor: token.colorBgContainer\n }\n }\n },\n // ========================== Left & Right ==========================\n [`&${componentCls}-left, &${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginTop: `${cardGutter}px`\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `${token.borderRadiusLG}px 0 0 ${token.borderRadiusLG}px`\n }\n },\n [`${componentCls}-tab-active`]: {\n borderRightColor: {\n _skip_check_: true,\n value: token.colorBgContainer\n }\n }\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px 0`\n }\n },\n [`${componentCls}-tab-active`]: {\n borderLeftColor: {\n _skip_check_: true,\n value: token.colorBgContainer\n }\n }\n }\n }\n }\n };\n};\nconst genDropdownStyle = token => {\n const {\n componentCls,\n itemHoverColor,\n dropdownEdgeChildVerticalPadding\n } = token;\n return {\n [`${componentCls}-dropdown`]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: token.zIndexPopup,\n display: 'block',\n '&-hidden': {\n display: 'none'\n },\n [`${componentCls}-dropdown-menu`]: {\n maxHeight: token.tabsDropdownHeight,\n margin: 0,\n padding: `${dropdownEdgeChildVerticalPadding}px 0`,\n overflowX: 'hidden',\n overflowY: 'auto',\n textAlign: {\n _skip_check_: true,\n value: 'left'\n },\n listStyleType: 'none',\n backgroundColor: token.colorBgContainer,\n backgroundClip: 'padding-box',\n borderRadius: token.borderRadiusLG,\n outline: 'none',\n boxShadow: token.boxShadowSecondary,\n '&-item': Object.assign(Object.assign({}, textEllipsis), {\n display: 'flex',\n alignItems: 'center',\n minWidth: token.tabsDropdownWidth,\n margin: 0,\n padding: `${token.paddingXXS}px ${token.paddingSM}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '> span': {\n flex: 1,\n whiteSpace: 'nowrap'\n },\n '&-remove': {\n flex: 'none',\n marginLeft: {\n _skip_check_: true,\n value: token.marginSM\n },\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n background: 'transparent',\n border: 0,\n cursor: 'pointer',\n '&:hover': {\n color: itemHoverColor\n }\n },\n '&:hover': {\n background: token.controlItemBgHover\n },\n '&-disabled': {\n '&, &:hover': {\n color: token.colorTextDisabled,\n background: 'transparent',\n cursor: 'not-allowed'\n }\n }\n })\n }\n })\n };\n};\nconst genPositionStyle = token => {\n const {\n componentCls,\n margin,\n colorBorderSecondary,\n horizontalMargin,\n verticalItemPadding,\n verticalItemMargin\n } = token;\n return {\n // ========================== Top & Bottom ==========================\n [`${componentCls}-top, ${componentCls}-bottom`]: {\n flexDirection: 'column',\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n margin: horizontalMargin,\n '&::before': {\n position: 'absolute',\n right: {\n _skip_check_: true,\n value: 0\n },\n left: {\n _skip_check_: true,\n value: 0\n },\n borderBottom: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n content: \"''\"\n },\n [`${componentCls}-ink-bar`]: {\n height: token.lineWidthBold,\n '&-animated': {\n transition: `width ${token.motionDurationSlow}, left ${token.motionDurationSlow},\n right ${token.motionDurationSlow}`\n }\n },\n [`${componentCls}-nav-wrap`]: {\n '&::before, &::after': {\n top: 0,\n bottom: 0,\n width: token.controlHeight\n },\n '&::before': {\n left: {\n _skip_check_: true,\n value: 0\n },\n boxShadow: token.boxShadowTabsOverflowLeft\n },\n '&::after': {\n right: {\n _skip_check_: true,\n value: 0\n },\n boxShadow: token.boxShadowTabsOverflowRight\n },\n [`&${componentCls}-nav-wrap-ping-left::before`]: {\n opacity: 1\n },\n [`&${componentCls}-nav-wrap-ping-right::after`]: {\n opacity: 1\n }\n }\n }\n },\n [`${componentCls}-top`]: {\n [`> ${componentCls}-nav,\n > div > ${componentCls}-nav`]: {\n '&::before': {\n bottom: 0\n },\n [`${componentCls}-ink-bar`]: {\n bottom: 0\n }\n }\n },\n [`${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n order: 1,\n marginTop: `${margin}px`,\n marginBottom: 0,\n '&::before': {\n top: 0\n },\n [`${componentCls}-ink-bar`]: {\n top: 0\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n order: 0\n }\n },\n // ========================== Left & Right ==========================\n [`${componentCls}-left, ${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n flexDirection: 'column',\n minWidth: token.controlHeight * 1.25,\n // >>>>>>>>>>> Tab\n [`${componentCls}-tab`]: {\n padding: verticalItemPadding,\n textAlign: 'center'\n },\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n margin: verticalItemMargin\n },\n // >>>>>>>>>>> Nav\n [`${componentCls}-nav-wrap`]: {\n flexDirection: 'column',\n '&::before, &::after': {\n right: {\n _skip_check_: true,\n value: 0\n },\n left: {\n _skip_check_: true,\n value: 0\n },\n height: token.controlHeight\n },\n '&::before': {\n top: 0,\n boxShadow: token.boxShadowTabsOverflowTop\n },\n '&::after': {\n bottom: 0,\n boxShadow: token.boxShadowTabsOverflowBottom\n },\n [`&${componentCls}-nav-wrap-ping-top::before`]: {\n opacity: 1\n },\n [`&${componentCls}-nav-wrap-ping-bottom::after`]: {\n opacity: 1\n }\n },\n // >>>>>>>>>>> Ink Bar\n [`${componentCls}-ink-bar`]: {\n width: token.lineWidthBold,\n '&-animated': {\n transition: `height ${token.motionDurationSlow}, top ${token.motionDurationSlow}`\n }\n },\n [`${componentCls}-nav-list, ${componentCls}-nav-operations`]: {\n flex: '1 0 auto',\n flexDirection: 'column'\n }\n }\n },\n [`${componentCls}-left`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-ink-bar`]: {\n right: {\n _skip_check_: true,\n value: 0\n }\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n marginLeft: {\n _skip_check_: true,\n value: `-${token.lineWidth}px`\n },\n borderLeft: {\n _skip_check_: true,\n value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n [`> ${componentCls}-content > ${componentCls}-tabpane`]: {\n paddingLeft: {\n _skip_check_: true,\n value: token.paddingLG\n }\n }\n }\n },\n [`${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n order: 1,\n [`${componentCls}-ink-bar`]: {\n left: {\n _skip_check_: true,\n value: 0\n }\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n order: 0,\n marginRight: {\n _skip_check_: true,\n value: -token.lineWidth\n },\n borderRight: {\n _skip_check_: true,\n value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n [`> ${componentCls}-content > ${componentCls}-tabpane`]: {\n paddingRight: {\n _skip_check_: true,\n value: token.paddingLG\n }\n }\n }\n }\n };\n};\nconst genSizeStyle = token => {\n const {\n componentCls,\n cardPaddingSM,\n cardPaddingLG,\n horizontalItemPaddingSM,\n horizontalItemPaddingLG\n } = token;\n return {\n [componentCls]: {\n '&-small': {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: horizontalItemPaddingSM,\n fontSize: token.titleFontSizeSM\n }\n }\n },\n '&-large': {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: horizontalItemPaddingLG,\n fontSize: token.titleFontSizeLG\n }\n }\n }\n },\n [`${componentCls}-card`]: {\n [`&${componentCls}-small`]: {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: cardPaddingSM\n }\n },\n [`&${componentCls}-bottom`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: `0 0 ${token.borderRadius}px ${token.borderRadius}px`\n }\n },\n [`&${componentCls}-top`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: `${token.borderRadius}px ${token.borderRadius}px 0 0`\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `0 ${token.borderRadius}px ${token.borderRadius}px 0`\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `${token.borderRadius}px 0 0 ${token.borderRadius}px`\n }\n }\n }\n },\n [`&${componentCls}-large`]: {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: cardPaddingLG\n }\n }\n }\n }\n };\n};\nconst genTabStyle = token => {\n const {\n componentCls,\n itemActiveColor,\n itemHoverColor,\n iconCls,\n tabsHorizontalItemMargin,\n horizontalItemPadding,\n itemSelectedColor\n } = token;\n const tabCls = `${componentCls}-tab`;\n return {\n [tabCls]: {\n position: 'relative',\n WebkitTouchCallout: 'none',\n WebkitTapHighlightColor: 'transparent',\n display: 'inline-flex',\n alignItems: 'center',\n padding: horizontalItemPadding,\n fontSize: token.titleFontSize,\n background: 'transparent',\n border: 0,\n outline: 'none',\n cursor: 'pointer',\n '&-btn, &-remove': Object.assign({\n '&:focus:not(:focus-visible), &:active': {\n color: itemActiveColor\n }\n }, genFocusStyle(token)),\n '&-btn': {\n outline: 'none',\n transition: 'all 0.3s'\n },\n '&-remove': {\n flex: 'none',\n marginRight: {\n _skip_check_: true,\n value: -token.marginXXS\n },\n marginLeft: {\n _skip_check_: true,\n value: token.marginXS\n },\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n background: 'transparent',\n border: 'none',\n outline: 'none',\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '&:hover': {\n color: token.colorTextHeading\n }\n },\n '&:hover': {\n color: itemHoverColor\n },\n [`&${tabCls}-active ${tabCls}-btn`]: {\n color: itemSelectedColor,\n textShadow: token.tabsActiveTextShadow\n },\n [`&${tabCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n },\n [`&${tabCls}-disabled ${tabCls}-btn, &${tabCls}-disabled ${componentCls}-remove`]: {\n '&:focus, &:active': {\n color: token.colorTextDisabled\n }\n },\n [`& ${tabCls}-remove ${iconCls}`]: {\n margin: 0\n },\n [iconCls]: {\n marginRight: {\n _skip_check_: true,\n value: token.marginSM\n }\n }\n },\n [`${tabCls} + ${tabCls}`]: {\n margin: {\n _skip_check_: true,\n value: tabsHorizontalItemMargin\n }\n }\n };\n};\nconst genRtlStyle = token => {\n const {\n componentCls,\n tabsHorizontalItemMarginRTL,\n iconCls,\n cardGutter\n } = token;\n const rtlCls = `${componentCls}-rtl`;\n return {\n [rtlCls]: {\n direction: 'rtl',\n [`${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n margin: {\n _skip_check_: true,\n value: tabsHorizontalItemMarginRTL\n },\n [`${componentCls}-tab:last-of-type`]: {\n marginLeft: {\n _skip_check_: true,\n value: 0\n }\n },\n [iconCls]: {\n marginRight: {\n _skip_check_: true,\n value: 0\n },\n marginLeft: {\n _skip_check_: true,\n value: `${token.marginSM}px`\n }\n },\n [`${componentCls}-tab-remove`]: {\n marginRight: {\n _skip_check_: true,\n value: `${token.marginXS}px`\n },\n marginLeft: {\n _skip_check_: true,\n value: `-${token.marginXXS}px`\n },\n [iconCls]: {\n margin: 0\n }\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav`]: {\n order: 1\n },\n [`> ${componentCls}-content-holder`]: {\n order: 0\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav`]: {\n order: 0\n },\n [`> ${componentCls}-content-holder`]: {\n order: 1\n }\n },\n // ====================== Card ======================\n [`&${componentCls}-card${componentCls}-top, &${componentCls}-card${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginRight: {\n _skip_check_: true,\n value: cardGutter\n },\n marginLeft: {\n _skip_check_: true,\n value: 0\n }\n }\n }\n }\n },\n [`${componentCls}-dropdown-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-menu-item`]: {\n [`${componentCls}-dropdown-rtl`]: {\n textAlign: {\n _skip_check_: true,\n value: 'right'\n }\n }\n }\n };\n};\nconst genTabsStyle = token => {\n const {\n componentCls,\n tabsCardPadding,\n cardHeight,\n cardGutter,\n itemHoverColor,\n itemActiveColor,\n colorBorderSecondary\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n // ========================== Navigation ==========================\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n position: 'relative',\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n [`${componentCls}-nav-wrap`]: {\n position: 'relative',\n display: 'flex',\n flex: 'auto',\n alignSelf: 'stretch',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n transform: 'translate(0)',\n // >>>>> Ping shadow\n '&::before, &::after': {\n position: 'absolute',\n zIndex: 1,\n opacity: 0,\n transition: `opacity ${token.motionDurationSlow}`,\n content: \"''\",\n pointerEvents: 'none'\n }\n },\n [`${componentCls}-nav-list`]: {\n position: 'relative',\n display: 'flex',\n transition: `opacity ${token.motionDurationSlow}`\n },\n // >>>>>>>> Operations\n [`${componentCls}-nav-operations`]: {\n display: 'flex',\n alignSelf: 'stretch'\n },\n [`${componentCls}-nav-operations-hidden`]: {\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none'\n },\n [`${componentCls}-nav-more`]: {\n position: 'relative',\n padding: tabsCardPadding,\n background: 'transparent',\n border: 0,\n color: token.colorText,\n '&::after': {\n position: 'absolute',\n right: {\n _skip_check_: true,\n value: 0\n },\n bottom: 0,\n left: {\n _skip_check_: true,\n value: 0\n },\n height: token.controlHeightLG / 8,\n transform: 'translateY(100%)',\n content: \"''\"\n }\n },\n [`${componentCls}-nav-add`]: Object.assign({\n minWidth: cardHeight,\n marginLeft: {\n _skip_check_: true,\n value: cardGutter\n },\n padding: `0 ${token.paddingXS}px`,\n background: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`,\n outline: 'none',\n cursor: 'pointer',\n color: token.colorText,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n '&:hover': {\n color: itemHoverColor\n },\n '&:active, &:focus:not(:focus-visible)': {\n color: itemActiveColor\n }\n }, genFocusStyle(token))\n },\n [`${componentCls}-extra-content`]: {\n flex: 'none'\n },\n // ============================ InkBar ============================\n [`${componentCls}-ink-bar`]: {\n position: 'absolute',\n background: token.inkBarColor,\n pointerEvents: 'none'\n }\n }), genTabStyle(token)), {\n // =========================== TabPanes ===========================\n [`${componentCls}-content`]: {\n position: 'relative',\n width: '100%'\n },\n [`${componentCls}-content-holder`]: {\n flex: 'auto',\n minWidth: 0,\n minHeight: 0\n },\n [`${componentCls}-tabpane`]: {\n outline: 'none',\n '&-hidden': {\n display: 'none'\n }\n }\n }),\n [`${componentCls}-centered`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-nav-wrap`]: {\n [`&:not([class*='${componentCls}-nav-wrap-ping'])`]: {\n justifyContent: 'center'\n }\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tabs', token => {\n const tabsToken = mergeToken(token, {\n // `cardPadding` is empty by default, so we could calculate with dynamic `cardHeight`\n tabsCardPadding: token.cardPadding || `${(token.cardHeight - Math.round(token.fontSize * token.lineHeight)) / 2 - token.lineWidth}px ${token.padding}px`,\n dropdownEdgeChildVerticalPadding: token.paddingXXS,\n tabsActiveTextShadow: '0 0 0.25px currentcolor',\n tabsDropdownHeight: 200,\n tabsDropdownWidth: 120,\n tabsHorizontalItemMargin: `0 0 0 ${token.horizontalItemGutter}px`,\n tabsHorizontalItemMarginRTL: `0 0 0 ${token.horizontalItemGutter}px`\n });\n return [genSizeStyle(tabsToken), genRtlStyle(tabsToken), genPositionStyle(tabsToken), genDropdownStyle(tabsToken), genCardStyle(tabsToken), genTabsStyle(tabsToken), genMotionStyle(tabsToken)];\n}, token => {\n const cardHeight = token.controlHeightLG;\n return {\n zIndexPopup: token.zIndexPopupBase + 50,\n cardBg: token.colorFillAlter,\n cardHeight,\n // Initialize with empty string, because cardPadding will be calculated with cardHeight by default.\n cardPadding: ``,\n cardPaddingSM: `${token.paddingXXS * 1.5}px ${token.padding}px`,\n cardPaddingLG: `${token.paddingXS}px ${token.padding}px ${token.paddingXXS * 1.5}px`,\n titleFontSize: token.fontSize,\n titleFontSizeLG: token.fontSizeLG,\n titleFontSizeSM: token.fontSize,\n inkBarColor: token.colorPrimary,\n horizontalMargin: `0 0 ${token.margin}px 0`,\n horizontalItemGutter: 32,\n // Initialize with empty string, because horizontalItemMargin will be calculated with horizontalItemGutter by default.\n horizontalItemMargin: ``,\n horizontalItemMarginRTL: ``,\n horizontalItemPadding: `${token.paddingSM}px 0`,\n horizontalItemPaddingSM: `${token.paddingXS}px 0`,\n horizontalItemPaddingLG: `${token.padding}px 0`,\n verticalItemPadding: `${token.paddingXS}px ${token.paddingLG}px`,\n verticalItemMargin: `${token.margin}px 0 0 0`,\n itemSelectedColor: token.colorPrimary,\n itemHoverColor: token.colorPrimaryHover,\n itemActiveColor: token.colorPrimaryActive,\n cardGutter: token.marginXXS / 2\n };\n});","'use client';\n\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 EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport PlusOutlined from \"@ant-design/icons/es/icons/PlusOutlined\";\nimport classNames from 'classnames';\nimport RcTabs from 'rc-tabs';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport TabPane from './TabPane';\nimport useAnimateConfig from './hooks/useAnimateConfig';\nimport useLegacyItems from './hooks/useLegacyItems';\nimport useStyle from './style';\nconst Tabs = props => {\n const {\n type,\n className,\n rootClassName,\n size: customSize,\n onEdit,\n hideAdd,\n centered,\n addIcon,\n popupClassName,\n children,\n items,\n animated,\n style\n } = props,\n otherProps = __rest(props, [\"type\", \"className\", \"rootClassName\", \"size\", \"onEdit\", \"hideAdd\", \"centered\", \"addIcon\", \"popupClassName\", \"children\", \"items\", \"animated\", \"style\"]);\n const {\n prefixCls: customizePrefixCls,\n moreIcon = /*#__PURE__*/React.createElement(EllipsisOutlined, null)\n } = otherProps;\n const {\n direction,\n tabs,\n getPrefixCls,\n getPopupContainer\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tabs', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n let editable;\n if (type === 'editable-card') {\n editable = {\n onEdit: (editType, _ref) => {\n let {\n key,\n event\n } = _ref;\n onEdit === null || onEdit === void 0 ? void 0 : onEdit(editType === 'add' ? event : key, editType);\n },\n removeIcon: /*#__PURE__*/React.createElement(CloseOutlined, null),\n addIcon: addIcon || /*#__PURE__*/React.createElement(PlusOutlined, null),\n showAdd: hideAdd !== true\n };\n }\n const rootPrefixCls = getPrefixCls();\n process.env.NODE_ENV !== \"production\" ? warning(!('onPrevClick' in props) && !('onNextClick' in props), 'Tabs', '`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead.') : void 0;\n const mergedItems = useLegacyItems(items, children);\n const mergedAnimated = useAnimateConfig(prefixCls, animated);\n const size = useSize(customSize);\n const mergedStyle = Object.assign(Object.assign({}, tabs === null || tabs === void 0 ? void 0 : tabs.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(RcTabs, Object.assign({\n direction: direction,\n getPopupContainer: getPopupContainer,\n moreTransitionName: `${rootPrefixCls}-slide-up`\n }, otherProps, {\n items: mergedItems,\n className: classNames({\n [`${prefixCls}-${size}`]: size,\n [`${prefixCls}-card`]: ['card', 'editable-card'].includes(type),\n [`${prefixCls}-editable-card`]: type === 'editable-card',\n [`${prefixCls}-centered`]: centered\n }, tabs === null || tabs === void 0 ? void 0 : tabs.className, className, rootClassName, hashId),\n popupClassName: classNames(popupClassName, hashId),\n style: mergedStyle,\n editable: editable,\n moreIcon: moreIcon,\n prefixCls: prefixCls,\n animated: mergedAnimated\n })));\n};\nTabs.TabPane = TabPane;\nif (process.env.NODE_ENV !== 'production') {\n Tabs.displayName = 'Tabs';\n}\nexport default Tabs;","export default function capitalize(str) {\n if (typeof str !== 'string') {\n return str;\n }\n const ret = str.charAt(0).toUpperCase() + str.slice(1);\n return ret;\n}","import capitalize from '../../_util/capitalize';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, genPresetColor, mergeToken } from '../../theme/internal';\nconst genTagStatusStyle = (token, status, cssVariableType) => {\n const capitalizedCssVariableType = capitalize(cssVariableType);\n return {\n [`${token.componentCls}-${status}`]: {\n color: token[`color${cssVariableType}`],\n background: token[`color${capitalizedCssVariableType}Bg`],\n borderColor: token[`color${capitalizedCssVariableType}Border`],\n [`&${token.componentCls}-borderless`]: {\n borderColor: 'transparent'\n }\n }\n };\n};\nconst genPresetStyle = token => genPresetColor(token, (colorKey, _ref) => {\n let {\n textColor,\n lightBorderColor,\n lightColor,\n darkColor\n } = _ref;\n return {\n [`${token.componentCls}-${colorKey}`]: {\n color: textColor,\n background: lightColor,\n borderColor: lightBorderColor,\n // Inverse color\n '&-inverse': {\n color: token.colorTextLightSolid,\n background: darkColor,\n borderColor: darkColor\n },\n [`&${token.componentCls}-borderless`]: {\n borderColor: 'transparent'\n }\n }\n };\n});\nconst genBaseStyle = token => {\n const {\n paddingXXS,\n lineWidth,\n tagPaddingHorizontal,\n componentCls\n } = token;\n const paddingInline = tagPaddingHorizontal - lineWidth;\n const iconMarginInline = paddingXXS - lineWidth;\n return {\n // Result\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n height: 'auto',\n marginInlineEnd: token.marginXS,\n paddingInline,\n fontSize: token.tagFontSize,\n lineHeight: token.tagLineHeight,\n whiteSpace: 'nowrap',\n background: token.defaultBg,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadiusSM,\n opacity: 1,\n transition: `all ${token.motionDurationMid}`,\n textAlign: 'start',\n position: 'relative',\n // RTL\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n '&, a, a:hover': {\n color: token.defaultColor\n },\n [`${componentCls}-close-icon`]: {\n marginInlineStart: iconMarginInline,\n color: token.colorTextDescription,\n fontSize: token.tagIconSize,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`,\n '&:hover': {\n color: token.colorTextHeading\n }\n },\n [`&${componentCls}-has-color`]: {\n borderColor: 'transparent',\n [`&, a, a:hover, ${token.iconCls}-close, ${token.iconCls}-close:hover`]: {\n color: token.colorTextLightSolid\n }\n },\n [`&-checkable`]: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n cursor: 'pointer',\n [`&:not(${componentCls}-checkable-checked):hover`]: {\n color: token.colorPrimary,\n backgroundColor: token.colorFillSecondary\n },\n '&:active, &-checked': {\n color: token.colorTextLightSolid\n },\n '&-checked': {\n backgroundColor: token.colorPrimary,\n '&:hover': {\n backgroundColor: token.colorPrimaryHover\n }\n },\n '&:active': {\n backgroundColor: token.colorPrimaryActive\n }\n },\n [`&-hidden`]: {\n display: 'none'\n },\n // To ensure that a space will be placed between character and `Icon`.\n [`> ${token.iconCls} + span, > span + ${token.iconCls}`]: {\n marginInlineStart: paddingInline\n }\n }),\n [`${componentCls}-borderless`]: {\n borderColor: 'transparent',\n background: token.tagBorderlessBg\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tag', token => {\n const {\n lineWidth,\n fontSizeIcon\n } = token;\n const tagFontSize = token.fontSizeSM;\n const tagLineHeight = `${token.lineHeightSM * tagFontSize}px`;\n const tagToken = mergeToken(token, {\n tagFontSize,\n tagLineHeight,\n tagIconSize: fontSizeIcon - 2 * lineWidth,\n tagPaddingHorizontal: 8,\n tagBorderlessBg: token.colorFillTertiary\n });\n return [genBaseStyle(tagToken), genPresetStyle(tagToken), genTagStatusStyle(tagToken, 'success', 'Success'), genTagStatusStyle(tagToken, 'processing', 'Info'), genTagStatusStyle(tagToken, 'error', 'Error'), genTagStatusStyle(tagToken, 'warning', 'Warning')];\n}, token => ({\n defaultBg: token.colorFillQuaternary,\n defaultColor: token.colorText\n}));","var __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 useStyle from './style';\nconst CheckableTag = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n checked,\n onChange,\n onClick\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"checked\", \"onChange\", \"onClick\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const handleClick = e => {\n onChange === null || onChange === void 0 ? void 0 : onChange(!checked);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n const prefixCls = getPrefixCls('tag', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cls = classNames(prefixCls, `${prefixCls}-checkable`, {\n [`${prefixCls}-checkable-checked`]: checked\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", Object.assign({}, restProps, {\n className: cls,\n onClick: handleClick\n })));\n};\nexport default CheckableTag;","'use client';\n\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 * as React from 'react';\nimport { isPresetColor, isPresetStatusColor } from '../_util/colors';\nimport useClosable from '../_util/hooks/useClosable';\nimport warning from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { ConfigContext } from '../config-provider';\nimport CheckableTag from './CheckableTag';\nimport useStyle from './style';\nconst InternalTag = (tagProps, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n children,\n icon,\n color,\n onClose,\n closeIcon,\n closable,\n bordered = true\n } = tagProps,\n props = __rest(tagProps, [\"prefixCls\", \"className\", \"rootClassName\", \"style\", \"children\", \"icon\", \"color\", \"onClose\", \"closeIcon\", \"closable\", \"bordered\"]);\n const {\n getPrefixCls,\n direction,\n tag\n } = React.useContext(ConfigContext);\n const [visible, setVisible] = React.useState(true);\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('visible' in props), 'Tag', '`visible` is deprecated, please use `visible && ` instead.') : void 0;\n }\n React.useEffect(() => {\n if ('visible' in props) {\n setVisible(props.visible);\n }\n }, [props.visible]);\n const isInternalColor = isPresetColor(color) || isPresetStatusColor(color);\n const tagStyle = Object.assign(Object.assign({\n backgroundColor: color && !isInternalColor ? color : undefined\n }, tag === null || tag === void 0 ? void 0 : tag.style), style);\n const prefixCls = getPrefixCls('tag', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const tagClassName = classNames(prefixCls, tag === null || tag === void 0 ? void 0 : tag.className, {\n [`${prefixCls}-${color}`]: isInternalColor,\n [`${prefixCls}-has-color`]: color && !isInternalColor,\n [`${prefixCls}-hidden`]: !visible,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-borderless`]: !bordered\n }, className, rootClassName, hashId);\n const handleCloseClick = e => {\n e.stopPropagation();\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n if (e.defaultPrevented) {\n return;\n }\n setVisible(false);\n };\n const [, mergedCloseIcon] = useClosable(closable, closeIcon, iconNode => iconNode === null ? /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`,\n onClick: handleCloseClick\n }) : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-icon`,\n onClick: handleCloseClick\n }, iconNode), null, false);\n const isNeedWave = typeof props.onClick === 'function' || children && children.type === 'a';\n const iconNode = icon || null;\n const kids = iconNode ? /*#__PURE__*/React.createElement(React.Fragment, null, iconNode, children && /*#__PURE__*/React.createElement(\"span\", null, children)) : children;\n const tagNode = /*#__PURE__*/React.createElement(\"span\", Object.assign({}, props, {\n ref: ref,\n className: tagClassName,\n style: tagStyle\n }), kids, mergedCloseIcon);\n return wrapSSR(isNeedWave ? /*#__PURE__*/React.createElement(Wave, {\n component: \"Tag\"\n }, tagNode) : tagNode);\n};\nconst Tag = /*#__PURE__*/React.forwardRef(InternalTag);\nif (process.env.NODE_ENV !== 'production') {\n Tag.displayName = 'Tag';\n}\nTag.CheckableTag = CheckableTag;\nexport default Tag;","import { createTheme } from '@ant-design/cssinjs';\nimport React from 'react';\nimport defaultDerivative from './themes/default';\nimport defaultSeedToken from './themes/seed';\nexport const defaultTheme = createTheme(defaultDerivative);\n// ================================ Context =================================\n// To ensure snapshot stable. We disable hashed in test env.\nexport const defaultConfig = {\n token: defaultSeedToken,\n hashed: true\n};\nexport const DesignTokenContext = /*#__PURE__*/React.createContext(defaultConfig);","import { createTheme, getComputedToken } from '@ant-design/cssinjs';\nimport defaultDerivative from './themes/default';\nimport seedToken from './themes/seed';\nimport formatToken from './util/alias';\nconst getDesignToken = config => {\n const theme = (config === null || config === void 0 ? void 0 : config.algorithm) ? createTheme(config.algorithm) : createTheme(defaultDerivative);\n const mergedToken = Object.assign(Object.assign({}, seedToken), config === null || config === void 0 ? void 0 : config.token);\n return getComputedToken(mergedToken, {\n override: config === null || config === void 0 ? void 0 : config.token\n }, theme, formatToken);\n};\nexport default getDesignToken;","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n const compactSizeStep = sizeStep - 2;\n return {\n sizeXXL: sizeUnit * (compactSizeStep + 10),\n sizeXL: sizeUnit * (compactSizeStep + 6),\n sizeLG: sizeUnit * (compactSizeStep + 2),\n sizeMD: sizeUnit * (compactSizeStep + 2),\n sizeMS: sizeUnit * (compactSizeStep + 1),\n size: sizeUnit * compactSizeStep,\n sizeSM: sizeUnit * compactSizeStep,\n sizeXS: sizeUnit * (compactSizeStep - 1),\n sizeXXS: sizeUnit * (compactSizeStep - 1)\n };\n}","import genControlHeight from '../shared/genControlHeight';\nimport defaultAlgorithm from '../default';\nimport genCompactSizeMapToken from './genCompactSizeMapToken';\nimport genFontMapToken from '../shared/genFontMapToken';\nconst derivative = (token, mapToken) => {\n const mergedMapToken = mapToken !== null && mapToken !== void 0 ? mapToken : defaultAlgorithm(token);\n const fontSize = mergedMapToken.fontSizeSM; // Smaller size font-size as base\n const controlHeight = mergedMapToken.controlHeight - 4;\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, mergedMapToken), genCompactSizeMapToken(mapToken !== null && mapToken !== void 0 ? mapToken : token)), genFontMapToken(fontSize)), {\n // controlHeight\n controlHeight\n }), genControlHeight(Object.assign(Object.assign({}, mergedMapToken), {\n controlHeight\n })));\n};\nexport default derivative;","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.lighten(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n const colors = generate(baseColor, {\n theme: 'dark'\n });\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[6],\n 6: colors[5],\n 7: colors[4],\n 8: colors[6],\n 9: colors[5],\n 10: colors[4]\n // 8: colors[9],\n // 9: colors[8],\n // 10: colors[7],\n };\n};\n\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#000';\n const colorTextBase = textBaseColor || '#fff';\n return {\n colorBgBase,\n colorTextBase,\n colorText: getAlphaColor(colorTextBase, 0.85),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n colorFill: getAlphaColor(colorTextBase, 0.18),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.12),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.08),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.04),\n colorBgElevated: getSolidColor(colorBgBase, 12),\n colorBgContainer: getSolidColor(colorBgBase, 8),\n colorBgLayout: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getSolidColor(colorBgBase, 26),\n colorBorder: getSolidColor(colorBgBase, 26),\n colorBorderSecondary: getSolidColor(colorBgBase, 19)\n };\n};","import { generate } from '@ant-design/colors';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport defaultAlgorithm from '../default';\nconst derivative = (token, mapToken) => {\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = generate(token[colorKey], {\n theme: 'dark'\n });\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n prev = Object.assign(Object.assign({}, prev), cur);\n return prev;\n }, {});\n const mergedMapToken = mapToken !== null && mapToken !== void 0 ? mapToken : defaultAlgorithm(token);\n return Object.assign(Object.assign(Object.assign({}, mergedMapToken), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n }));\n};\nexport default derivative;","'use client';\n\n/* eslint-disable import/prefer-default-export */\nimport getDesignToken from './getDesignToken';\nimport { defaultConfig, useToken as useInternalToken } from './internal';\nimport compactAlgorithm from './themes/compact';\nimport darkAlgorithm from './themes/dark';\nimport defaultAlgorithm from './themes/default';\n// ZombieJ: We export as object to user but array in internal.\n// This is used to minimize the bundle size for antd package but safe to refactor as object also.\n// Please do not export internal `useToken` directly to avoid something export unexpected.\n/** Get current context Design Token. Will be different if you are using nest theme config. */\nfunction useToken() {\n const [theme, token, hashId] = useInternalToken();\n return {\n theme,\n token,\n hashId\n };\n}\nexport default {\n /** @private Test Usage. Do not use in production. */\n defaultConfig,\n /** Default seedToken */\n defaultSeed: defaultConfig.token,\n useToken,\n defaultAlgorithm,\n darkAlgorithm,\n compactAlgorithm,\n getDesignToken\n};","export const PresetColors = ['blue', 'purple', 'cyan', 'green', 'magenta', 'pink', 'red', 'orange', 'yellow', 'volcano', 'geekblue', 'lime', 'gold'];","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n return {\n sizeXXL: sizeUnit * (sizeStep + 8),\n sizeXL: sizeUnit * (sizeStep + 4),\n sizeLG: sizeUnit * (sizeStep + 2),\n sizeMD: sizeUnit * (sizeStep + 1),\n sizeMS: sizeUnit * sizeStep,\n size: sizeUnit * sizeStep,\n sizeSM: sizeUnit * (sizeStep - 1),\n sizeXS: sizeUnit * (sizeStep - 2),\n sizeXXS: sizeUnit * (sizeStep - 3) // 4\n };\n}","const genRadius = radiusBase => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusOuter = radiusBase;\n // radiusLG\n if (radiusBase < 6 && radiusBase >= 5) {\n radiusLG = radiusBase + 1;\n } else if (radiusBase < 16 && radiusBase >= 6) {\n radiusLG = radiusBase + 2;\n } else if (radiusBase >= 16) {\n radiusLG = 16;\n }\n // radiusSM\n if (radiusBase < 7 && radiusBase >= 5) {\n radiusSM = 4;\n } else if (radiusBase < 8 && radiusBase >= 7) {\n radiusSM = 5;\n } else if (radiusBase < 14 && radiusBase >= 8) {\n radiusSM = 6;\n } else if (radiusBase < 16 && radiusBase >= 14) {\n radiusSM = 7;\n } else if (radiusBase >= 16) {\n radiusSM = 8;\n }\n // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n return {\n borderRadius: radiusBase > 16 ? 16 : radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusOuter: radiusOuter\n };\n};\nexport default genRadius;","import genRadius from './genRadius';\nexport default function genCommonMapToken(token) {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth\n } = token;\n return Object.assign({\n // motion\n motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n // line\n lineWidthBold: lineWidth + 1\n }, genRadius(borderRadius));\n}","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n const colors = generate(baseColor);\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[4],\n 6: colors[5],\n 7: colors[6],\n 8: colors[4],\n 9: colors[5],\n 10: colors[6]\n // 8: colors[7],\n // 9: colors[8],\n // 10: colors[9],\n };\n};\n\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n return {\n colorBgBase,\n colorTextBase,\n colorText: getAlphaColor(colorTextBase, 0.88),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n colorBgLayout: getSolidColor(colorBgBase, 4),\n colorBgContainer: getSolidColor(colorBgBase, 0),\n colorBgElevated: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n colorBorder: getSolidColor(colorBgBase, 15),\n colorBorderSecondary: getSolidColor(colorBgBase, 6)\n };\n};","import { generate } from '@ant-design/colors';\nimport genControlHeight from '../shared/genControlHeight';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport genFontMapToken from '../shared/genFontMapToken';\nexport default function derivative(token) {\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = generate(token[colorKey]);\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n prev = Object.assign(Object.assign({}, prev), cur);\n return prev;\n }, {});\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, token), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n })), genFontMapToken(token.fontSize)), genSizeMapToken(token)), genControlHeight(token)), genCommonMapToken(token));\n}","export const defaultPresetColors = {\n blue: '#1677ff',\n purple: '#722ED1',\n cyan: '#13C2C2',\n green: '#52C41A',\n magenta: '#EB2F96',\n pink: '#eb2f96',\n red: '#F5222D',\n orange: '#FA8C16',\n yellow: '#FADB14',\n volcano: '#FA541C',\n geekblue: '#2F54EB',\n gold: '#FAAD14',\n lime: '#A0D911'\n};\nconst seedToken = Object.assign(Object.assign({}, defaultPresetColors), {\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorLink: '',\n colorTextBase: '',\n colorBgBase: '',\n // Font\n fontFamily: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'`,\n fontFamilyCode: `'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`,\n fontSize: 14,\n // Line\n lineWidth: 1,\n lineType: 'solid',\n // Motion\n motionUnit: 0.1,\n motionBase: 0,\n motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n motionEaseInQuint: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n // Radius\n borderRadius: 6,\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n // Control Base\n controlHeight: 32,\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n // Image\n opacityImage: 1,\n // Wireframe\n wireframe: false,\n // Motion\n motion: true\n});\nexport default seedToken;","import { TinyColor } from '@ctrl/tinycolor';\nexport default function genColorMapToken(seed, _ref) {\n let {\n generateColorPalettes,\n generateNeutralColorPalettes\n } = _ref;\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase\n } = seed;\n const primaryColors = generateColorPalettes(colorPrimaryBase);\n const successColors = generateColorPalettes(colorSuccessBase);\n const warningColors = generateColorPalettes(colorWarningBase);\n const errorColors = generateColorPalettes(colorErrorBase);\n const infoColors = generateColorPalettes(colorInfoBase);\n const neutralColors = generateNeutralColorPalettes(colorBgBase, colorTextBase);\n // Color Link\n const colorLink = seed.colorLink || seed.colorInfo;\n const linkColors = generateColorPalettes(colorLink);\n return Object.assign(Object.assign({}, neutralColors), {\n colorPrimaryBg: primaryColors[1],\n colorPrimaryBgHover: primaryColors[2],\n colorPrimaryBorder: primaryColors[3],\n colorPrimaryBorderHover: primaryColors[4],\n colorPrimaryHover: primaryColors[5],\n colorPrimary: primaryColors[6],\n colorPrimaryActive: primaryColors[7],\n colorPrimaryTextHover: primaryColors[8],\n colorPrimaryText: primaryColors[9],\n colorPrimaryTextActive: primaryColors[10],\n colorSuccessBg: successColors[1],\n colorSuccessBgHover: successColors[2],\n colorSuccessBorder: successColors[3],\n colorSuccessBorderHover: successColors[4],\n colorSuccessHover: successColors[4],\n colorSuccess: successColors[6],\n colorSuccessActive: successColors[7],\n colorSuccessTextHover: successColors[8],\n colorSuccessText: successColors[9],\n colorSuccessTextActive: successColors[10],\n colorErrorBg: errorColors[1],\n colorErrorBgHover: errorColors[2],\n colorErrorBorder: errorColors[3],\n colorErrorBorderHover: errorColors[4],\n colorErrorHover: errorColors[5],\n colorError: errorColors[6],\n colorErrorActive: errorColors[7],\n colorErrorTextHover: errorColors[8],\n colorErrorText: errorColors[9],\n colorErrorTextActive: errorColors[10],\n colorWarningBg: warningColors[1],\n colorWarningBgHover: warningColors[2],\n colorWarningBorder: warningColors[3],\n colorWarningBorderHover: warningColors[4],\n colorWarningHover: warningColors[4],\n colorWarning: warningColors[6],\n colorWarningActive: warningColors[7],\n colorWarningTextHover: warningColors[8],\n colorWarningText: warningColors[9],\n colorWarningTextActive: warningColors[10],\n colorInfoBg: infoColors[1],\n colorInfoBgHover: infoColors[2],\n colorInfoBorder: infoColors[3],\n colorInfoBorderHover: infoColors[4],\n colorInfoHover: infoColors[4],\n colorInfo: infoColors[6],\n colorInfoActive: infoColors[7],\n colorInfoTextHover: infoColors[8],\n colorInfoText: infoColors[9],\n colorInfoTextActive: infoColors[10],\n colorLinkHover: linkColors[4],\n colorLink: linkColors[6],\n colorLinkActive: linkColors[7],\n colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff'\n });\n}","const genControlHeight = token => {\n const {\n controlHeight\n } = token;\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25\n };\n};\nexport default genControlHeight;","// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * Math.pow(2.71828, i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n fontSizes[1] = base;\n return fontSizes.map(size => {\n const height = size + 8;\n return {\n size,\n lineHeight: height / size\n };\n });\n}","import genFontSizes from './genFontSizes';\nconst genFontMapToken = fontSize => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map(pair => pair.size);\n const lineHeights = fontSizePairs.map(pair => pair.lineHeight);\n return {\n fontSizeSM: fontSizes[0],\n fontSize: fontSizes[1],\n fontSizeLG: fontSizes[2],\n fontSizeXL: fontSizes[3],\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n lineHeight: lineHeights[1],\n lineHeightLG: lineHeights[2],\n lineHeightSM: lineHeights[0],\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2]\n };\n};\nexport default genFontMapToken;","var __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 { useCacheToken } from '@ant-design/cssinjs';\nimport React from 'react';\nimport version from '../version';\nimport { defaultTheme, DesignTokenContext } from './context';\nimport defaultSeedToken from './themes/seed';\nimport formatToken from './util/alias';\nexport const getComputedToken = (originToken, overrideToken, theme) => {\n const derivativeToken = theme.getDerivativeToken(originToken);\n const {\n override\n } = overrideToken,\n components = __rest(overrideToken, [\"override\"]);\n // Merge with override\n let mergedDerivativeToken = Object.assign(Object.assign({}, derivativeToken), {\n override\n });\n // Format if needed\n mergedDerivativeToken = formatToken(mergedDerivativeToken);\n if (components) {\n Object.entries(components).forEach(_ref => {\n let [key, value] = _ref;\n const {\n theme: componentTheme\n } = value,\n componentTokens = __rest(value, [\"theme\"]);\n let mergedComponentToken = componentTokens;\n if (componentTheme) {\n mergedComponentToken = getComputedToken(Object.assign(Object.assign({}, mergedDerivativeToken), componentTokens), {\n override: componentTokens\n }, componentTheme);\n }\n mergedDerivativeToken[key] = mergedComponentToken;\n });\n }\n return mergedDerivativeToken;\n};\n// ================================== Hook ==================================\nexport default function useToken() {\n const {\n token: rootDesignToken,\n hashed,\n theme,\n components\n } = React.useContext(DesignTokenContext);\n const salt = `${version}-${hashed || ''}`;\n const mergedTheme = theme || defaultTheme;\n const [token, hashId] = useCacheToken(mergedTheme, [defaultSeedToken, rootDesignToken], {\n salt,\n override: Object.assign({\n override: rootDesignToken\n }, components),\n getComputedToken,\n // formatToken will not be consumed after 1.15.0 with getComputedToken.\n // But token will break if @ant-design/cssinjs is under 1.15.0 without it\n formatToken\n });\n return [mergedTheme, token, hashed ? hashId : ''];\n}","import { TinyColor } from '@ctrl/tinycolor';\nfunction isStableColor(color) {\n return color >= 0 && color <= 255;\n}\nfunction getAlphaColor(frontColor, backgroundColor) {\n const {\n r: fR,\n g: fG,\n b: fB,\n a: originAlpha\n } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n const {\n r: bR,\n g: bG,\n b: bB\n } = new TinyColor(backgroundColor).toRgb();\n for (let fA = 0.01; fA <= 1; fA += 0.01) {\n const r = Math.round((fR - bR * (1 - fA)) / fA);\n const g = Math.round((fG - bG * (1 - fA)) / fA);\n const b = Math.round((fB - bB * (1 - fA)) / fA);\n if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n return new TinyColor({\n r,\n g,\n b,\n a: Math.round(fA * 100) / 100\n }).toRgbString();\n }\n }\n // fallback\n /* istanbul ignore next */\n return new TinyColor({\n r: fR,\n g: fG,\n b: fB,\n a: 1\n }).toRgbString();\n}\nexport default getAlphaColor;","var __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 { TinyColor } from '@ctrl/tinycolor';\nimport seedToken from '../themes/seed';\nimport getAlphaColor from './getAlphaColor';\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken) {\n const {\n override\n } = derivativeToken,\n restToken = __rest(derivativeToken, [\"override\"]);\n const overrideTokens = Object.assign({}, override);\n Object.keys(seedToken).forEach(token => {\n delete overrideTokens[token];\n });\n const mergedToken = Object.assign(Object.assign({}, restToken), overrideTokens);\n const screenXS = 480;\n const screenSM = 576;\n const screenMD = 768;\n const screenLG = 992;\n const screenXL = 1200;\n const screenXXL = 1600;\n // Motion\n if (mergedToken.motion === false) {\n const fastDuration = '0s';\n mergedToken.motionDurationFast = fastDuration;\n mergedToken.motionDurationMid = fastDuration;\n mergedToken.motionDurationSlow = fastDuration;\n }\n // Generate alias token\n const aliasToken = Object.assign(Object.assign(Object.assign({}, mergedToken), {\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n // ============== Text ============== //\n colorTextPlaceholder: mergedToken.colorTextQuaternary,\n colorTextDisabled: mergedToken.colorTextQuaternary,\n colorTextHeading: mergedToken.colorText,\n colorTextLabel: mergedToken.colorTextSecondary,\n colorTextDescription: mergedToken.colorTextTertiary,\n colorTextLightSolid: mergedToken.colorWhite,\n colorHighlight: mergedToken.colorError,\n colorBgTextHover: mergedToken.colorFillSecondary,\n colorBgTextActive: mergedToken.colorFill,\n colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n // Line\n lineWidthFocus: mergedToken.lineWidth * 4,\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\n controlItemBgHover: mergedToken.colorFillTertiary,\n controlItemBgActive: mergedToken.colorPrimaryBg,\n controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n controlItemBgActiveDisabled: mergedToken.colorFill,\n controlTmpOutline: mergedToken.colorFillQuaternary,\n controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n fontWeightStrong: 600,\n opacityLoading: 0.65,\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\n paddingXXS: mergedToken.sizeXXS,\n paddingXS: mergedToken.sizeXS,\n paddingSM: mergedToken.sizeSM,\n padding: mergedToken.size,\n paddingMD: mergedToken.sizeMD,\n paddingLG: mergedToken.sizeLG,\n paddingXL: mergedToken.sizeXL,\n paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\n marginXXS: mergedToken.sizeXXS,\n marginXS: mergedToken.sizeXS,\n marginSM: mergedToken.sizeSM,\n margin: mergedToken.size,\n marginMD: mergedToken.sizeMD,\n marginLG: mergedToken.sizeLG,\n marginXL: mergedToken.sizeXL,\n marginXXL: mergedToken.sizeXXL,\n boxShadow: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowSecondary: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTertiary: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.03),\n 0 1px 6px -1px rgba(0, 0, 0, 0.02),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n screenXS,\n screenXSMin: screenXS,\n screenXSMax: screenSM - 1,\n screenSM,\n screenSMMin: screenSM,\n screenSMMax: screenMD - 1,\n screenMD,\n screenMDMin: screenMD,\n screenMDMax: screenLG - 1,\n screenLG,\n screenLGMin: screenLG,\n screenLGMax: screenXL - 1,\n screenXL,\n screenXLMin: screenXL,\n screenXLMax: screenXXL - 1,\n screenXXL,\n screenXXLMin: screenXXL,\n boxShadowPopoverArrow: '2px 2px 5px rgba(0, 0, 0, 0.05)',\n boxShadowCard: `\n 0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n 0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n 0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n `,\n boxShadowDrawerRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.08),\n 3px 0 6px -4px rgba(0, 0, 0, 0.12),\n 9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerUp: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerDown: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)'\n }), overrideTokens);\n return aliasToken;\n}","/* eslint-disable no-redeclare */\nimport { useContext } from 'react';\nimport { useStyleRegister } from '@ant-design/cssinjs';\nimport { warning } from 'rc-util';\nimport { ConfigContext } from '../../config-provider/context';\nimport { genCommonStyle, genLinkStyle } from '../../style';\nimport useToken from '../useToken';\nimport statisticToken, { merge as mergeToken } from './statistic';\nimport useResetIconStyle from './useResetIconStyle';\nexport default function genComponentStyleHook(componentName, styleFn, getDefaultToken, options) {\n const cells = Array.isArray(componentName) ? componentName : [componentName, componentName];\n const [component] = cells;\n const concatComponent = cells.join('-');\n return prefixCls => {\n const [theme, token, hashId] = useToken();\n const {\n getPrefixCls,\n iconPrefixCls,\n csp\n } = useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n // Shared config\n const sharedConfig = {\n theme,\n token,\n hashId,\n nonce: () => csp === null || csp === void 0 ? void 0 : csp.nonce,\n clientOnly: options === null || options === void 0 ? void 0 : options.clientOnly,\n // antd is always at top of styles\n order: -999\n };\n // Generate style for all a tags in antd component.\n useStyleRegister(Object.assign(Object.assign({}, sharedConfig), {\n clientOnly: false,\n path: ['Shared', rootPrefixCls]\n }), () => [{\n // Link\n '&': genLinkStyle(token)\n }]);\n // Generate style for icons\n useResetIconStyle(iconPrefixCls);\n return [useStyleRegister(Object.assign(Object.assign({}, sharedConfig), {\n path: [concatComponent, prefixCls, iconPrefixCls]\n }), () => {\n const {\n token: proxyToken,\n flush\n } = statisticToken(token);\n const customComponentToken = Object.assign({}, token[component]);\n if (options === null || options === void 0 ? void 0 : options.deprecatedTokens) {\n const {\n deprecatedTokens\n } = options;\n deprecatedTokens.forEach(_ref => {\n let [oldTokenKey, newTokenKey] = _ref;\n var _a;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(customComponentToken === null || customComponentToken === void 0 ? void 0 : customComponentToken[oldTokenKey]), `The token '${String(oldTokenKey)}' of ${component} had deprecated, use '${String(newTokenKey)}' instead.`) : void 0;\n }\n // Should wrap with `if` clause, or there will be `undefined` in object.\n if ((customComponentToken === null || customComponentToken === void 0 ? void 0 : customComponentToken[oldTokenKey]) || (customComponentToken === null || customComponentToken === void 0 ? void 0 : customComponentToken[newTokenKey])) {\n (_a = customComponentToken[newTokenKey]) !== null && _a !== void 0 ? _a : customComponentToken[newTokenKey] = customComponentToken === null || customComponentToken === void 0 ? void 0 : customComponentToken[oldTokenKey];\n }\n });\n }\n const defaultComponentToken = typeof getDefaultToken === 'function' ? getDefaultToken(mergeToken(proxyToken, customComponentToken !== null && customComponentToken !== void 0 ? customComponentToken : {})) : getDefaultToken;\n const mergedComponentToken = Object.assign(Object.assign({}, defaultComponentToken), customComponentToken);\n const componentCls = `.${prefixCls}`;\n const mergedToken = mergeToken(proxyToken, {\n componentCls,\n prefixCls,\n iconCls: `.${iconPrefixCls}`,\n antCls: `.${rootPrefixCls}`\n }, mergedComponentToken);\n const styleInterpolation = styleFn(mergedToken, {\n hashId,\n prefixCls,\n rootPrefixCls,\n iconPrefixCls,\n overrideComponentToken: customComponentToken\n });\n flush(component, mergedComponentToken);\n return [(options === null || options === void 0 ? void 0 : options.resetStyle) === false ? null : genCommonStyle(token, prefixCls), styleInterpolation];\n }), hashId];\n };\n}","import { PresetColors } from '../interface';\nexport default function genPresetColor(token, genCss) {\n return PresetColors.reduce((prev, colorKey) => {\n const lightColor = token[`${colorKey}1`];\n const lightBorderColor = token[`${colorKey}3`];\n const darkColor = token[`${colorKey}6`];\n const textColor = token[`${colorKey}7`];\n return Object.assign(Object.assign({}, prev), genCss(colorKey, {\n lightColor,\n lightBorderColor,\n darkColor,\n textColor\n }));\n }, {});\n}","const enableStatistic = process.env.NODE_ENV !== 'production' || typeof CSSINJS_STATISTIC !== 'undefined';\nlet recording = true;\n/**\n * This function will do as `Object.assign` in production. But will use Object.defineProperty:get to\n * pass all value access in development. To support statistic field usage with alias token.\n */\nexport function merge() {\n for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n objs[_key] = arguments[_key];\n }\n /* istanbul ignore next */\n if (!enableStatistic) {\n return Object.assign.apply(Object, [{}].concat(objs));\n }\n recording = false;\n const ret = {};\n objs.forEach(obj => {\n const keys = Object.keys(obj);\n keys.forEach(key => {\n Object.defineProperty(ret, key, {\n configurable: true,\n enumerable: true,\n get: () => obj[key]\n });\n });\n });\n recording = true;\n return ret;\n}\n/** @internal Internal Usage. Not use in your production. */\nexport const statistic = {};\n/** @internal Internal Usage. Not use in your production. */\n// eslint-disable-next-line camelcase\nexport const _statistic_build_ = {};\n/* istanbul ignore next */\nfunction noop() {}\n/** Statistic token usage case. Should use `merge` function if you do not want spread record. */\nexport default function statisticToken(token) {\n let tokenKeys;\n let proxy = token;\n let flush = noop;\n if (enableStatistic) {\n tokenKeys = new Set();\n proxy = new Proxy(token, {\n get(obj, prop) {\n if (recording) {\n tokenKeys.add(prop);\n }\n return obj[prop];\n }\n });\n flush = (componentName, componentToken) => {\n var _a;\n statistic[componentName] = {\n global: Array.from(tokenKeys),\n component: Object.assign(Object.assign({}, (_a = statistic[componentName]) === null || _a === void 0 ? void 0 : _a.component), componentToken)\n };\n };\n }\n return {\n token: proxy,\n keys: tokenKeys,\n flush\n };\n}","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { resetIcon } from '../../style';\nimport useToken from '../useToken';\nconst useResetIconStyle = (iconPrefixCls, csp) => {\n const [theme, token] = useToken();\n // Generate style for icons\n return useStyleRegister({\n theme,\n token,\n hashId: '',\n path: ['ant-design-icons', iconPrefixCls],\n nonce: () => csp === null || csp === void 0 ? void 0 : csp.nonce\n }, () => [{\n [`.${iconPrefixCls}`]: Object.assign(Object.assign({}, resetIcon()), {\n [`.${iconPrefixCls} .${iconPrefixCls}-icon`]: {\n display: 'block'\n }\n })\n }]);\n};\nexport default useResetIconStyle;","const locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import { resetComponent } from '../../style';\nimport { initZoomMotion } from '../../style/motion';\nimport getArrowStyle, { MAX_VERTICAL_CONTENT_RADIUS } from '../../style/placementArrow';\nimport { genComponentStyleHook, genPresetColor, mergeToken } from '../../theme/internal';\nconst genTooltipStyle = token => {\n const {\n componentCls,\n // ant-tooltip\n tooltipMaxWidth,\n tooltipColor,\n tooltipBg,\n tooltipBorderRadius,\n zIndexPopup,\n controlHeight,\n boxShadowSecondary,\n paddingSM,\n paddingXS,\n tooltipRadiusOuter\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n zIndex: zIndexPopup,\n display: 'block',\n width: 'max-content',\n maxWidth: tooltipMaxWidth,\n visibility: 'visible',\n transformOrigin: `var(--arrow-x, 50%) var(--arrow-y, 50%)`,\n '&-hidden': {\n display: 'none'\n },\n '--antd-arrow-background-color': tooltipBg,\n // Wrapper for the tooltip content\n [`${componentCls}-inner`]: {\n minWidth: controlHeight,\n minHeight: controlHeight,\n padding: `${paddingSM / 2}px ${paddingXS}px`,\n color: tooltipColor,\n textAlign: 'start',\n textDecoration: 'none',\n wordWrap: 'break-word',\n backgroundColor: tooltipBg,\n borderRadius: tooltipBorderRadius,\n boxShadow: boxShadowSecondary,\n boxSizing: 'border-box'\n },\n // Limit left and right placement radius\n [[`&-placement-left`, `&-placement-leftTop`, `&-placement-leftBottom`, `&-placement-right`, `&-placement-rightTop`, `&-placement-rightBottom`].join(',')]: {\n [`${componentCls}-inner`]: {\n borderRadius: Math.min(tooltipBorderRadius, MAX_VERTICAL_CONTENT_RADIUS)\n }\n },\n [`${componentCls}-content`]: {\n position: 'relative'\n }\n }), genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${componentCls}-${colorKey}`]: {\n [`${componentCls}-inner`]: {\n backgroundColor: darkColor\n },\n [`${componentCls}-arrow`]: {\n '--antd-arrow-background-color': darkColor\n }\n }\n };\n })), {\n // RTL\n '&-rtl': {\n direction: 'rtl'\n }\n })\n },\n // Arrow Style\n getArrowStyle(mergeToken(token, {\n borderRadiusOuter: tooltipRadiusOuter\n }), {\n colorBg: 'var(--antd-arrow-background-color)',\n contentRadius: tooltipBorderRadius,\n limitVerticalRadius: true\n }),\n // Pure Render\n {\n [`${componentCls}-pure`]: {\n position: 'relative',\n maxWidth: 'none',\n margin: token.sizePopupArrow\n }\n }];\n};\n// ============================== Export ==============================\nexport default ((prefixCls, injectStyle) => {\n const useOriginHook = genComponentStyleHook('Tooltip', token => {\n // Popover use Tooltip as internal component. We do not need to handle this.\n if (injectStyle === false) {\n return [];\n }\n const {\n borderRadius,\n colorTextLightSolid,\n colorBgDefault,\n borderRadiusOuter\n } = token;\n const TooltipToken = mergeToken(token, {\n // default variables\n tooltipMaxWidth: 250,\n tooltipColor: colorTextLightSolid,\n tooltipBorderRadius: borderRadius,\n tooltipBg: colorBgDefault,\n tooltipRadiusOuter: borderRadiusOuter > 4 ? 4 : borderRadiusOuter\n });\n return [genTooltipStyle(TooltipToken), initZoomMotion(token, 'zoom-big-fast')];\n }, _ref2 => {\n let {\n zIndexPopupBase,\n colorBgSpotlight\n } = _ref2;\n return {\n zIndexPopup: zIndexPopupBase + 70,\n colorBgDefault: colorBgSpotlight\n };\n }, {\n resetStyle: false\n });\n return useOriginHook(prefixCls);\n});","/* eslint-disable import/prefer-default-export */\nimport classNames from 'classnames';\nimport { isPresetColor } from '../_util/colors';\nexport function parseColor(prefixCls, color) {\n const isInternalColor = isPresetColor(color);\n const className = classNames({\n [`${prefixCls}-${color}`]: color && isInternalColor\n });\n const overlayStyle = {};\n const arrowStyle = {};\n if (color && !isInternalColor) {\n overlayStyle.background = color;\n // @ts-ignore\n arrowStyle['--antd-arrow-background-color'] = color;\n }\n return {\n className,\n overlayStyle,\n arrowStyle\n };\n}","import classNames from 'classnames';\nimport { Popup } from 'rc-tooltip';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { parseColor } from './util';\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n placement = 'top',\n title,\n color,\n overlayInnerStyle\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls, true);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const arrowContentStyle = colorInfo.arrowStyle;\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const cls = classNames(hashId, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className, colorInfo.className);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: arrowContentStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-arrow`\n }), /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n className: hashId,\n prefixCls: prefixCls,\n overlayInnerStyle: formattedOverlayInnerStyle\n }), title)));\n};\nexport default PurePanel;","'use client';\n\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 { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isFragment, isValidElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { NoCompactStyle } from '../space/Compact';\nimport theme from '../theme';\nimport PurePanel from './PurePanel';\nimport useStyle from './style';\nimport { parseColor } from './util';\nconst {\n useToken\n} = theme;\nconst splitObject = (obj, keys) => {\n const picked = {};\n const omitted = Object.assign({}, obj);\n keys.forEach(key => {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked,\n omitted\n };\n};\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 const 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 const {\n picked,\n omitted\n } = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']);\n const spanStyle = Object.assign(Object.assign({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : undefined\n });\n const buttonStyle = Object.assign(Object.assign({}, omitted), {\n pointerEvents: 'none'\n });\n const 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, `${prefixCls}-disabled-compatible-wrapper`)\n }, child);\n }\n return element;\n}\nconst Tooltip = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b;\n const {\n prefixCls: customizePrefixCls,\n openClassName,\n getTooltipContainer,\n overlayClassName,\n color,\n overlayInnerStyle,\n children,\n afterOpenChange,\n afterVisibleChange,\n destroyTooltipOnHide,\n arrow = true,\n title,\n overlay,\n builtinPlacements,\n arrowPointAtCenter = false,\n autoAdjustOverflow = true\n } = props;\n const mergedShowArrow = !!arrow;\n const {\n token\n } = useToken();\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n // ============================== Ref ===============================\n const tooltipRef = React.useRef(null);\n const forceAlign = () => {\n var _a;\n (_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.forceAlign();\n };\n React.useImperativeHandle(ref, () => ({\n forceAlign,\n forcePopupAlign: () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Tooltip', '`forcePopupAlign` is align to `forceAlign` instead.') : void 0;\n forceAlign();\n }\n }));\n // ============================== Warn ==============================\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange'], ['arrowPointAtCenter', 'arrow={{ pointAtCenter: true }}']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Tooltip', `\\`${deprecatedName}\\` is deprecated, please use \\`${newName}\\` instead.`) : void 0;\n });\n process.env.NODE_ENV !== \"production\" ? warning(!destroyTooltipOnHide || typeof destroyTooltipOnHide === 'boolean', 'Tooltip', '`destroyTooltipOnHide` no need config `keepParent` anymore. Please use `boolean` value directly.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!arrow || typeof arrow === 'boolean' || !('arrowPointAtCenter' in arrow), 'Tooltip', '`arrowPointAtCenter` in `arrow` is deprecated, please use `pointAtCenter` instead.') : void 0;\n }\n // ============================== Open ==============================\n const [open, setOpen] = useMergedState(false, {\n value: (_a = props.open) !== null && _a !== void 0 ? _a : props.visible,\n defaultValue: (_b = props.defaultOpen) !== null && _b !== void 0 ? _b : props.defaultVisible\n });\n const noTitle = !title && !overlay && title !== 0; // overlay for old version compatibility\n const onOpenChange = vis => {\n var _a, _b;\n setOpen(noTitle ? false : vis);\n if (!noTitle) {\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 const tooltipPlacements = React.useMemo(() => {\n var _a, _b;\n let mergedArrowPointAtCenter = arrowPointAtCenter;\n if (typeof arrow === 'object') {\n mergedArrowPointAtCenter = (_b = (_a = arrow.pointAtCenter) !== null && _a !== void 0 ? _a : arrow.arrowPointAtCenter) !== null && _b !== void 0 ? _b : arrowPointAtCenter;\n }\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: mergedArrowPointAtCenter,\n autoAdjustOverflow,\n arrowWidth: mergedShowArrow ? token.sizePopupArrow : 0,\n borderRadius: token.borderRadius,\n offset: token.marginXXS,\n visibleFirst: true\n });\n }, [arrowPointAtCenter, arrow, builtinPlacements, token]);\n const memoOverlay = React.useMemo(() => {\n if (title === 0) {\n return title;\n }\n return overlay || title || '';\n }, [overlay, title]);\n const memoOverlayWrapper = /*#__PURE__*/React.createElement(NoCompactStyle, null, typeof memoOverlay === 'function' ? memoOverlay() : memoOverlay);\n const {\n getPopupContainer,\n placement = 'top',\n mouseEnterDelay = 0.1,\n mouseLeaveDelay = 0.1,\n overlayStyle,\n rootClassName\n } = props,\n otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"rootClassName\"]);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const injectFromPopover = props['data-popover-inject'];\n let tempOpen = open;\n // Hide tooltip when there is no title\n if (!('open' in props) && !('visible' in props) && noTitle) {\n tempOpen = false;\n }\n // ============================= Render =============================\n const child = getDisabledCompatibleChildren(isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n const childProps = child.props;\n const childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, openClassName || `${prefixCls}-open`) : childProps.className;\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls, !injectFromPopover);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const arrowContentStyle = colorInfo.arrowStyle;\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const customOverlayClassName = classNames(overlayClassName, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, colorInfo.className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(RcTooltip, Object.assign({}, otherProps, {\n showArrow: mergedShowArrow,\n placement: placement,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n overlayStyle: Object.assign(Object.assign({}, arrowContentStyle), overlayStyle),\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: tooltipRef,\n builtinPlacements: tooltipPlacements,\n overlay: memoOverlayWrapper,\n visible: tempOpen,\n onVisibleChange: onOpenChange,\n afterVisibleChange: afterOpenChange !== null && afterOpenChange !== void 0 ? afterOpenChange : afterVisibleChange,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-arrow-content`\n }),\n motion: {\n motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n },\n destroyTooltipOnHide: !!destroyTooltipOnHide\n }), tempOpen ? cloneElement(child, {\n className: childCls\n }) : child));\n});\nif (process.env.NODE_ENV !== 'production') {\n Tooltip.displayName = 'Tooltip';\n}\nTooltip._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Tooltip;","function getError(option, xhr) {\n var msg = \"cannot \".concat(option.method, \" \").concat(option.action, \" \").concat(xhr.status, \"'\");\n var err = new Error(msg);\n err.status = xhr.status;\n err.method = option.method;\n err.url = option.action;\n return err;\n}\n\nfunction getBody(xhr) {\n var text = xhr.responseText || xhr.response;\n\n if (!text) {\n return text;\n }\n\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\n\nexport default function upload(option) {\n // eslint-disable-next-line no-undef\n var xhr = new XMLHttpRequest();\n\n if (option.onProgress && xhr.upload) {\n xhr.upload.onprogress = function progress(e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n\n option.onProgress(e);\n };\n } // eslint-disable-next-line no-undef\n\n\n var formData = new FormData();\n\n if (option.data) {\n Object.keys(option.data).forEach(function (key) {\n var value = option.data[key]; // support key-value array data\n\n if (Array.isArray(value)) {\n value.forEach(function (item) {\n // { list: [ 11, 22 ] }\n // formData.append('list[]', 11);\n formData.append(\"\".concat(key, \"[]\"), item);\n });\n return;\n }\n\n formData.append(key, value);\n });\n } // eslint-disable-next-line no-undef\n\n\n if (option.file instanceof Blob) {\n formData.append(option.filename, option.file, option.file.name);\n } else {\n formData.append(option.filename, option.file);\n }\n\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n\n xhr.onload = function onload() {\n // allow success when 2xx status\n // see https://github.com/react-component/upload/issues/34\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(option, xhr), getBody(xhr));\n }\n\n return option.onSuccess(getBody(xhr), xhr);\n };\n\n xhr.open(option.method, option.action, true); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n var headers = option.headers || {}; // when set headers['X-Requested-With'] = null , can close default XHR header\n // see https://github.com/react-component/upload/issues/33\n\n if (headers['X-Requested-With'] !== null) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n Object.keys(headers).forEach(function (h) {\n if (headers[h] !== null) {\n xhr.setRequestHeader(h, headers[h]);\n }\n });\n xhr.send(formData);\n return {\n abort: function abort() {\n xhr.abort();\n }\n };\n}","var now = +new Date();\nvar index = 0;\nexport default function uid() {\n // eslint-disable-next-line no-plusplus\n return \"rc-upload-\".concat(now, \"-\").concat(++index);\n}","import warning from \"rc-util/es/warning\";\nexport default (function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = file.type || '';\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim(); // This is something like */*,* allow all files\n\n if (/^\\*(\\/\\*)?$/.test(type)) {\n return true;\n } // like .jpg, .png\n\n\n if (validType.charAt(0) === '.') {\n var lowerFileName = fileName.toLowerCase();\n var lowerType = validType.toLowerCase();\n var affixList = [lowerType];\n\n if (lowerType === '.jpg' || lowerType === '.jpeg') {\n affixList = ['.jpg', '.jpeg'];\n }\n\n return affixList.some(function (affix) {\n return lowerFileName.endsWith(affix);\n });\n } // This is something like a image/* mime type\n\n\n if (/\\/\\*$/.test(validType)) {\n return baseMimeType === validType.replace(/\\/.*$/, '');\n } // Full match\n\n\n if (mimeType === validType) {\n return true;\n } // Invalidate type should skip\n\n\n if (/^\\w+$/.test(validType)) {\n warning(false, \"Upload takes an invalidate 'accept' type '\".concat(validType, \"'.Skip for check.\"));\n return true;\n }\n\n return false;\n });\n }\n\n return true;\n});","function loopFiles(item, callback) {\n var dirReader = item.createReader();\n var fileList = [];\n\n function sequence() {\n dirReader.readEntries(function (entries) {\n var entryList = Array.prototype.slice.apply(entries);\n fileList = fileList.concat(entryList); // Check if all the file has been viewed\n\n var isFinished = !entryList.length;\n\n if (isFinished) {\n callback(fileList);\n } else {\n sequence();\n }\n });\n }\n\n sequence();\n}\n\nvar traverseFileTree = function traverseFileTree(files, callback, isAccepted) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n var _traverseFileTree = function _traverseFileTree(item, path) {\n // eslint-disable-next-line no-param-reassign\n item.path = path || '';\n\n if (item.isFile) {\n item.file(function (file) {\n if (isAccepted(file)) {\n // https://github.com/ant-design/ant-design/issues/16426\n if (item.fullPath && !file.webkitRelativePath) {\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: true\n }\n }); // eslint-disable-next-line no-param-reassign\n\n file.webkitRelativePath = item.fullPath.replace(/^\\//, '');\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: false\n }\n });\n }\n\n callback([file]);\n }\n });\n } else if (item.isDirectory) {\n loopFiles(item, function (entries) {\n entries.forEach(function (entryItem) {\n _traverseFileTree(entryItem, \"\".concat(path).concat(item.name, \"/\"));\n });\n });\n }\n };\n\n files.forEach(function (file) {\n _traverseFileTree(file.webkitGetAsEntry());\n });\n};\n\nexport default traverseFileTree;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\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 = [\"component\", \"prefixCls\", \"className\", \"disabled\", \"id\", \"style\", \"multiple\", \"accept\", \"capture\", \"children\", \"directory\", \"openFileDialogOnClick\", \"onMouseEnter\", \"onMouseLeave\"];\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport defaultRequest from './request';\nimport getUid from './uid';\nimport attrAccept from './attr-accept';\nimport traverseFileTree from './traverseFileTree';\n\nvar AjaxUploader = /*#__PURE__*/function (_Component) {\n _inherits(AjaxUploader, _Component);\n\n var _super = _createSuper(AjaxUploader);\n\n function AjaxUploader() {\n var _this;\n\n _classCallCheck(this, AjaxUploader);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n uid: getUid()\n };\n _this.reqs = {};\n _this.fileInput = void 0;\n _this._isMounted = void 0;\n\n _this.onChange = function (e) {\n var _this$props = _this.props,\n accept = _this$props.accept,\n directory = _this$props.directory;\n var files = e.target.files;\n\n var acceptedFiles = _toConsumableArray(files).filter(function (file) {\n return !directory || attrAccept(file, accept);\n });\n\n _this.uploadFiles(acceptedFiles);\n\n _this.reset();\n };\n\n _this.onClick = function (e) {\n var el = _this.fileInput;\n\n if (!el) {\n return;\n }\n\n var _this$props2 = _this.props,\n children = _this$props2.children,\n onClick = _this$props2.onClick;\n\n if (children && children.type === 'button') {\n var parent = el.parentNode;\n parent.focus();\n parent.querySelector('button').blur();\n }\n\n el.click();\n\n if (onClick) {\n onClick(e);\n }\n };\n\n _this.onKeyDown = function (e) {\n if (e.key === 'Enter') {\n _this.onClick(e);\n }\n };\n\n _this.onFileDrop = function (e) {\n var multiple = _this.props.multiple;\n e.preventDefault();\n\n if (e.type === 'dragover') {\n return;\n }\n\n if (_this.props.directory) {\n traverseFileTree(Array.prototype.slice.call(e.dataTransfer.items), _this.uploadFiles, function (_file) {\n return attrAccept(_file, _this.props.accept);\n });\n } else {\n var files = _toConsumableArray(e.dataTransfer.files).filter(function (file) {\n return attrAccept(file, _this.props.accept);\n });\n\n if (multiple === false) {\n files = files.slice(0, 1);\n }\n\n _this.uploadFiles(files);\n }\n };\n\n _this.uploadFiles = function (files) {\n var originFiles = _toConsumableArray(files);\n\n var postFiles = originFiles.map(function (file) {\n // eslint-disable-next-line no-param-reassign\n file.uid = getUid();\n return _this.processFile(file, originFiles);\n }); // Batch upload files\n\n Promise.all(postFiles).then(function (fileList) {\n var onBatchStart = _this.props.onBatchStart;\n onBatchStart === null || onBatchStart === void 0 ? void 0 : onBatchStart(fileList.map(function (_ref) {\n var origin = _ref.origin,\n parsedFile = _ref.parsedFile;\n return {\n file: origin,\n parsedFile: parsedFile\n };\n }));\n fileList.filter(function (file) {\n return file.parsedFile !== null;\n }).forEach(function (file) {\n _this.post(file);\n });\n });\n };\n\n _this.processFile = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(file, fileList) {\n var beforeUpload, transformedFile, action, mergedAction, data, mergedData, parsedData, parsedFile, mergedParsedFile;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n beforeUpload = _this.props.beforeUpload;\n transformedFile = file;\n\n if (!beforeUpload) {\n _context.next = 14;\n break;\n }\n\n _context.prev = 3;\n _context.next = 6;\n return beforeUpload(file, fileList);\n\n case 6:\n transformedFile = _context.sent;\n _context.next = 12;\n break;\n\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](3);\n // Rejection will also trade as false\n transformedFile = false;\n\n case 12:\n if (!(transformedFile === false)) {\n _context.next = 14;\n break;\n }\n\n return _context.abrupt(\"return\", {\n origin: file,\n parsedFile: null,\n action: null,\n data: null\n });\n\n case 14:\n // Get latest action\n action = _this.props.action;\n\n if (!(typeof action === 'function')) {\n _context.next = 21;\n break;\n }\n\n _context.next = 18;\n return action(file);\n\n case 18:\n mergedAction = _context.sent;\n _context.next = 22;\n break;\n\n case 21:\n mergedAction = action;\n\n case 22:\n // Get latest data\n data = _this.props.data;\n\n if (!(typeof data === 'function')) {\n _context.next = 29;\n break;\n }\n\n _context.next = 26;\n return data(file);\n\n case 26:\n mergedData = _context.sent;\n _context.next = 30;\n break;\n\n case 29:\n mergedData = data;\n\n case 30:\n parsedData = // string type is from legacy `transformFile`.\n // Not sure if this will work since no related test case works with it\n (_typeof(transformedFile) === 'object' || typeof transformedFile === 'string') && transformedFile ? transformedFile : file;\n\n if (parsedData instanceof File) {\n parsedFile = parsedData;\n } else {\n parsedFile = new File([parsedData], file.name, {\n type: file.type\n });\n }\n\n mergedParsedFile = parsedFile;\n mergedParsedFile.uid = file.uid;\n return _context.abrupt(\"return\", {\n origin: file,\n data: mergedData,\n parsedFile: mergedParsedFile,\n action: mergedAction\n });\n\n case 35:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 9]]);\n }));\n\n return function (_x, _x2) {\n return _ref2.apply(this, arguments);\n };\n }();\n\n _this.saveFileInput = function (node) {\n _this.fileInput = node;\n };\n\n return _this;\n }\n\n _createClass(AjaxUploader, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._isMounted = true;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._isMounted = false;\n this.abort();\n }\n }, {\n key: \"post\",\n value: function post(_ref3) {\n var _this2 = this;\n\n var data = _ref3.data,\n origin = _ref3.origin,\n action = _ref3.action,\n parsedFile = _ref3.parsedFile;\n\n if (!this._isMounted) {\n return;\n }\n\n var _this$props3 = this.props,\n onStart = _this$props3.onStart,\n customRequest = _this$props3.customRequest,\n name = _this$props3.name,\n headers = _this$props3.headers,\n withCredentials = _this$props3.withCredentials,\n method = _this$props3.method;\n var uid = origin.uid;\n var request = customRequest || defaultRequest;\n var requestOption = {\n action: action,\n filename: name,\n data: data,\n file: parsedFile,\n headers: headers,\n withCredentials: withCredentials,\n method: method || 'post',\n onProgress: function onProgress(e) {\n var onProgress = _this2.props.onProgress;\n onProgress === null || onProgress === void 0 ? void 0 : onProgress(e, parsedFile);\n },\n onSuccess: function onSuccess(ret, xhr) {\n var onSuccess = _this2.props.onSuccess;\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(ret, parsedFile, xhr);\n delete _this2.reqs[uid];\n },\n onError: function onError(err, ret) {\n var onError = _this2.props.onError;\n onError === null || onError === void 0 ? void 0 : onError(err, ret, parsedFile);\n delete _this2.reqs[uid];\n }\n };\n onStart(origin);\n this.reqs[uid] = request(requestOption);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.setState({\n uid: getUid()\n });\n }\n }, {\n key: \"abort\",\n value: function abort(file) {\n var reqs = this.reqs;\n\n if (file) {\n var uid = file.uid ? file.uid : file;\n\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n\n delete reqs[uid];\n } else {\n Object.keys(reqs).forEach(function (uid) {\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n\n delete reqs[uid];\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props4 = this.props,\n Tag = _this$props4.component,\n prefixCls = _this$props4.prefixCls,\n className = _this$props4.className,\n disabled = _this$props4.disabled,\n id = _this$props4.id,\n style = _this$props4.style,\n multiple = _this$props4.multiple,\n accept = _this$props4.accept,\n capture = _this$props4.capture,\n children = _this$props4.children,\n directory = _this$props4.directory,\n openFileDialogOnClick = _this$props4.openFileDialogOnClick,\n onMouseEnter = _this$props4.onMouseEnter,\n onMouseLeave = _this$props4.onMouseLeave,\n otherProps = _objectWithoutProperties(_this$props4, _excluded);\n\n var cls = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, className, className), _classNames)); // because input don't have directory/webkitdirectory type declaration\n\n var dirProps = directory ? {\n directory: 'directory',\n webkitdirectory: 'webkitdirectory'\n } : {};\n var events = disabled ? {} : {\n onClick: openFileDialogOnClick ? this.onClick : function () {},\n onKeyDown: openFileDialogOnClick ? this.onKeyDown : function () {},\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onDrop: this.onFileDrop,\n onDragOver: this.onFileDrop,\n tabIndex: '0'\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({}, events, {\n className: cls,\n role: \"button\",\n style: style\n }), /*#__PURE__*/React.createElement(\"input\", _extends({}, pickAttrs(otherProps, {\n aria: true,\n data: true\n }), {\n id: id,\n type: \"file\",\n ref: this.saveFileInput,\n onClick: function onClick(e) {\n return e.stopPropagation();\n } // https://github.com/ant-design/ant-design/issues/19948\n ,\n key: this.state.uid,\n style: {\n display: 'none'\n },\n accept: accept\n }, dirProps, {\n multiple: multiple,\n onChange: this.onChange\n }, capture != null ? {\n capture: capture\n } : {})), children);\n }\n }]);\n\n return AjaxUploader;\n}(Component);\n\nexport default AjaxUploader;","import _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\";\n\n/* eslint react/prop-types:0 */\nimport React, { Component } from 'react';\nimport AjaxUpload from './AjaxUploader';\n\nfunction empty() {}\n\nvar Upload = /*#__PURE__*/function (_Component) {\n _inherits(Upload, _Component);\n\n var _super = _createSuper(Upload);\n\n function Upload() {\n var _this;\n\n _classCallCheck(this, Upload);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.uploader = void 0;\n\n _this.saveUploader = function (node) {\n _this.uploader = node;\n };\n\n return _this;\n }\n\n _createClass(Upload, [{\n key: \"abort\",\n value: function abort(file) {\n this.uploader.abort(file);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(AjaxUpload, _extends({}, this.props, {\n ref: this.saveUploader\n }));\n }\n }]);\n\n return Upload;\n}(Component);\n\nUpload.defaultProps = {\n component: 'span',\n prefixCls: 'rc-upload',\n data: {},\n headers: {},\n name: 'file',\n multipart: false,\n onStart: empty,\n onError: empty,\n onSuccess: empty,\n multiple: false,\n beforeUpload: null,\n customRequest: null,\n withCredentials: false,\n openFileDialogOnClick: true\n};\nexport default Upload;","import Upload from './Upload';\nexport default Upload;","// This icon file is generated automatically.\nvar FileTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M534 352V136H232v752h560V394H576a42 42 0 01-42-42z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z\", \"fill\": primaryColor } }] }; }, \"name\": \"file\", \"theme\": \"twotone\" };\nexport default FileTwoTone;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FileTwoToneSvg from \"@ant-design/icons-svg/es/asn/FileTwoTone\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FileTwoTone = function FileTwoTone(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FileTwoToneSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n FileTwoTone.displayName = 'FileTwoTone';\n}\nexport default /*#__PURE__*/React.forwardRef(FileTwoTone);","// This icon file is generated automatically.\nvar PaperClipOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z\" } }] }, \"name\": \"paper-clip\", \"theme\": \"outlined\" };\nexport default PaperClipOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PaperClipOutlinedSvg from \"@ant-design/icons-svg/es/asn/PaperClipOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PaperClipOutlined = function PaperClipOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PaperClipOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n PaperClipOutlined.displayName = 'PaperClipOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(PaperClipOutlined);","// This icon file is generated automatically.\nvar PictureTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z\", \"fill\": primaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 110 176 88 88 0 010-176z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M276 368a28 28 0 1056 0 28 28 0 10-56 0z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z\", \"fill\": primaryColor } }] }; }, \"name\": \"picture\", \"theme\": \"twotone\" };\nexport default PictureTwoTone;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PictureTwoToneSvg from \"@ant-design/icons-svg/es/asn/PictureTwoTone\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PictureTwoTone = function PictureTwoTone(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PictureTwoToneSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n PictureTwoTone.displayName = 'PictureTwoTone';\n}\nexport default /*#__PURE__*/React.forwardRef(PictureTwoTone);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function file2Obj(file) {\n return Object.assign(Object.assign({}, file), {\n lastModified: file.lastModified,\n lastModifiedDate: file.lastModifiedDate,\n name: file.name,\n size: file.size,\n type: file.type,\n uid: file.uid,\n percent: 0,\n originFileObj: file\n });\n}\n/** Upload fileList. Replace file if exist or just push into it. */\nexport function updateFileList(file, fileList) {\n const nextFileList = _toConsumableArray(fileList);\n const fileIndex = nextFileList.findIndex(_ref => {\n let {\n uid\n } = _ref;\n return uid === file.uid;\n });\n if (fileIndex === -1) {\n nextFileList.push(file);\n } else {\n nextFileList[fileIndex] = file;\n }\n return nextFileList;\n}\nexport function getFileItem(file, fileList) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n return fileList.filter(item => item[matchKey] === file[matchKey])[0];\n}\nexport function removeFileItem(file, fileList) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n const removed = fileList.filter(item => item[matchKey] !== file[matchKey]);\n if (removed.length === fileList.length) {\n return null;\n }\n return removed;\n}\n// ==================== Default Image Preview ====================\nconst extname = function () {\n let url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n const temp = url.split('/');\n const filename = temp[temp.length - 1];\n const filenameWithoutSuffix = filename.split(/#|\\?/)[0];\n return (/\\.[^./\\\\]*$/.exec(filenameWithoutSuffix) || [''])[0];\n};\nconst isImageFileType = type => type.indexOf('image/') === 0;\nexport const isImageUrl = file => {\n if (file.type && !file.thumbUrl) {\n return isImageFileType(file.type);\n }\n const url = file.thumbUrl || file.url || '';\n const extension = extname(url);\n if (/^data:image\\//.test(url) || /(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico|heic|heif)$/i.test(extension)) {\n return true;\n }\n if (/^data:/.test(url)) {\n // other file types of base64\n return false;\n }\n if (extension) {\n // other file types which have extension\n return false;\n }\n return true;\n};\nconst MEASURE_SIZE = 200;\nexport function previewImage(file) {\n return new Promise(resolve => {\n if (!file.type || !isImageFileType(file.type)) {\n resolve('');\n return;\n }\n const canvas = document.createElement('canvas');\n canvas.width = MEASURE_SIZE;\n canvas.height = MEASURE_SIZE;\n canvas.style.cssText = `position: fixed; left: 0; top: 0; width: ${MEASURE_SIZE}px; height: ${MEASURE_SIZE}px; z-index: 9999; display: none;`;\n document.body.appendChild(canvas);\n const ctx = canvas.getContext('2d');\n const img = new Image();\n img.onload = () => {\n const {\n width,\n height\n } = img;\n let drawWidth = MEASURE_SIZE;\n let drawHeight = MEASURE_SIZE;\n let offsetX = 0;\n let offsetY = 0;\n if (width > height) {\n drawHeight = height * (MEASURE_SIZE / width);\n offsetY = -(drawHeight - drawWidth) / 2;\n } else {\n drawWidth = width * (MEASURE_SIZE / height);\n offsetX = -(drawWidth - drawHeight) / 2;\n }\n ctx.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);\n const dataURL = canvas.toDataURL();\n document.body.removeChild(canvas);\n window.URL.revokeObjectURL(img.src);\n resolve(dataURL);\n };\n img.crossOrigin = 'anonymous';\n if (file.type.startsWith('image/svg+xml')) {\n const reader = new FileReader();\n reader.onload = () => {\n if (reader.result) img.src = reader.result;\n };\n reader.readAsDataURL(file);\n } else if (file.type.startsWith('image/gif')) {\n const reader = new FileReader();\n reader.onload = () => {\n if (reader.result) resolve(reader.result);\n };\n reader.readAsDataURL(file);\n } else {\n img.src = window.URL.createObjectURL(file);\n }\n });\n}","// This icon file is generated automatically.\nvar DownloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"download\", \"theme\": \"outlined\" };\nexport default DownloadOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DownloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownloadOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DownloadOutlined = function DownloadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DownloadOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n DownloadOutlined.displayName = 'DownloadOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(DownloadOutlined);","import DeleteOutlined from \"@ant-design/icons/es/icons/DeleteOutlined\";\nimport DownloadOutlined from \"@ant-design/icons/es/icons/DownloadOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport Progress from '../../progress';\nimport Tooltip from '../../tooltip';\nconst ListItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n prefixCls,\n className,\n style,\n locale,\n listType,\n file,\n items,\n progress: progressProps,\n iconRender,\n actionIconRender,\n itemRender,\n isImgUrl,\n showPreviewIcon,\n showRemoveIcon,\n showDownloadIcon,\n previewIcon: customPreviewIcon,\n removeIcon: customRemoveIcon,\n downloadIcon: customDownloadIcon,\n onPreview,\n onDownload,\n onClose\n } = _ref;\n var _a, _b;\n // Status: which will ignore `removed` status\n const {\n status\n } = file;\n const [mergedStatus, setMergedStatus] = React.useState(status);\n React.useEffect(() => {\n if (status !== 'removed') {\n setMergedStatus(status);\n }\n }, [status]);\n // Delay to show the progress bar\n const [showProgress, setShowProgress] = React.useState(false);\n React.useEffect(() => {\n const timer = setTimeout(() => {\n setShowProgress(true);\n }, 300);\n return () => {\n clearTimeout(timer);\n };\n }, []);\n const iconNode = iconRender(file);\n let icon = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-icon`\n }, iconNode);\n if (listType === 'picture' || listType === 'picture-card' || listType === 'picture-circle') {\n if (mergedStatus === 'uploading' || !file.thumbUrl && !file.url) {\n const uploadingClassName = classNames(`${prefixCls}-list-item-thumbnail`, {\n [`${prefixCls}-list-item-file`]: mergedStatus !== 'uploading'\n });\n icon = /*#__PURE__*/React.createElement(\"div\", {\n className: uploadingClassName\n }, iconNode);\n } else {\n const thumbnail = (isImgUrl === null || isImgUrl === void 0 ? void 0 : isImgUrl(file)) ? /*#__PURE__*/React.createElement(\"img\", {\n src: file.thumbUrl || file.url,\n alt: file.name,\n className: `${prefixCls}-list-item-image`,\n crossOrigin: file.crossOrigin\n }) : iconNode;\n const aClassName = classNames(`${prefixCls}-list-item-thumbnail`, {\n [`${prefixCls}-list-item-file`]: isImgUrl && !isImgUrl(file)\n });\n icon = /*#__PURE__*/React.createElement(\"a\", {\n className: aClassName,\n onClick: e => onPreview(file, e),\n href: file.url || file.thumbUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, thumbnail);\n }\n }\n const listItemClassName = classNames(`${prefixCls}-list-item`, `${prefixCls}-list-item-${mergedStatus}`);\n const linkProps = typeof file.linkProps === 'string' ? JSON.parse(file.linkProps) : file.linkProps;\n const removeIcon = showRemoveIcon ? actionIconRender((typeof customRemoveIcon === 'function' ? customRemoveIcon(file) : customRemoveIcon) || /*#__PURE__*/React.createElement(DeleteOutlined, null), () => onClose(file), prefixCls, locale.removeFile) : null;\n const downloadIcon = showDownloadIcon && mergedStatus === 'done' ? actionIconRender((typeof customDownloadIcon === 'function' ? customDownloadIcon(file) : customDownloadIcon) || /*#__PURE__*/React.createElement(DownloadOutlined, null), () => onDownload(file), prefixCls, locale.downloadFile) : null;\n const downloadOrDelete = listType !== 'picture-card' && listType !== 'picture-circle' && /*#__PURE__*/React.createElement(\"span\", {\n key: \"download-delete\",\n className: classNames(`${prefixCls}-list-item-actions`, {\n picture: listType === 'picture'\n })\n }, downloadIcon, removeIcon);\n const listItemNameClass = classNames(`${prefixCls}-list-item-name`);\n const fileName = file.url ? [/*#__PURE__*/React.createElement(\"a\", Object.assign({\n key: \"view\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: listItemNameClass,\n title: file.name\n }, linkProps, {\n href: file.url,\n onClick: e => onPreview(file, e)\n }), file.name), downloadOrDelete] : [/*#__PURE__*/React.createElement(\"span\", {\n key: \"view\",\n className: listItemNameClass,\n onClick: e => onPreview(file, e),\n title: file.name\n }, file.name), downloadOrDelete];\n const previewStyle = {\n pointerEvents: 'none',\n opacity: 0.5\n };\n const previewIcon = showPreviewIcon ? /*#__PURE__*/React.createElement(\"a\", {\n href: file.url || file.thumbUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n style: file.url || file.thumbUrl ? undefined : previewStyle,\n onClick: e => onPreview(file, e),\n title: locale.previewFile\n }, typeof customPreviewIcon === 'function' ? customPreviewIcon(file) : customPreviewIcon || /*#__PURE__*/React.createElement(EyeOutlined, null)) : null;\n const pictureCardActions = (listType === 'picture-card' || listType === 'picture-circle') && mergedStatus !== 'uploading' && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-list-item-actions`\n }, previewIcon, mergedStatus === 'done' && downloadIcon, removeIcon);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n const dom = /*#__PURE__*/React.createElement(\"div\", {\n className: listItemClassName\n }, icon, fileName, pictureCardActions, showProgress && /*#__PURE__*/React.createElement(CSSMotion, {\n motionName: `${rootPrefixCls}-fade`,\n visible: mergedStatus === 'uploading',\n motionDeadline: 2000\n }, _ref2 => {\n let {\n className: motionClassName\n } = _ref2;\n // show loading icon if upload progress listener is disabled\n const loadingProgress = 'percent' in file ? /*#__PURE__*/React.createElement(Progress, Object.assign({}, progressProps, {\n type: \"line\",\n percent: file.percent,\n \"aria-label\": file['aria-label'],\n \"aria-labelledby\": file['aria-labelledby']\n })) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-list-item-progress`, motionClassName)\n }, loadingProgress);\n }));\n const message = file.response && typeof file.response === 'string' ? file.response : ((_a = file.error) === null || _a === void 0 ? void 0 : _a.statusText) || ((_b = file.error) === null || _b === void 0 ? void 0 : _b.message) || locale.uploadError;\n const item = mergedStatus === 'error' ? /*#__PURE__*/React.createElement(Tooltip, {\n title: message,\n getPopupContainer: node => node.parentNode\n }, dom) : dom;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-list-item-container`, className),\n style: style,\n ref: ref\n }, itemRender ? itemRender(item, file, items, {\n download: onDownload.bind(null, file),\n preview: onPreview.bind(null, file),\n remove: onClose.bind(null, file)\n }) : item);\n});\nexport default ListItem;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport FileTwoTone from \"@ant-design/icons/es/icons/FileTwoTone\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport PaperClipOutlined from \"@ant-design/icons/es/icons/PaperClipOutlined\";\nimport PictureTwoTone from \"@ant-design/icons/es/icons/PictureTwoTone\";\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport * as React from 'react';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport initCollapseMotion from '../../_util/motion';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nimport Button from '../../button';\nimport { ConfigContext } from '../../config-provider';\nimport { isImageUrl, previewImage } from '../utils';\nimport ListItem from './ListItem';\nconst InternalUploadList = (props, ref) => {\n const {\n listType = 'text',\n previewFile = previewImage,\n onPreview,\n onDownload,\n onRemove,\n locale,\n iconRender,\n isImageUrl: isImgUrl = isImageUrl,\n prefixCls: customizePrefixCls,\n items = [],\n showPreviewIcon = true,\n showRemoveIcon = true,\n showDownloadIcon = false,\n removeIcon,\n previewIcon,\n downloadIcon,\n progress = {\n size: [-1, 2],\n showInfo: false\n },\n appendAction,\n appendActionVisible = true,\n itemRender,\n disabled\n } = props;\n const forceUpdate = useForceUpdate();\n const [motionAppear, setMotionAppear] = React.useState(false);\n // ============================= Effect =============================\n React.useEffect(() => {\n if (listType !== 'picture' && listType !== 'picture-card' && listType !== 'picture-circle') {\n return;\n }\n (items || []).forEach(file => {\n if (typeof document === 'undefined' || typeof window === 'undefined' || !window.FileReader || !window.File || !(file.originFileObj instanceof File || file.originFileObj instanceof Blob) || file.thumbUrl !== undefined) {\n return;\n }\n file.thumbUrl = '';\n if (previewFile) {\n previewFile(file.originFileObj).then(previewDataUrl => {\n // Need append '' to avoid dead loop\n file.thumbUrl = previewDataUrl || '';\n forceUpdate();\n });\n }\n });\n }, [listType, items, previewFile]);\n React.useEffect(() => {\n setMotionAppear(true);\n }, []);\n // ============================= Events =============================\n const onInternalPreview = (file, e) => {\n if (!onPreview) {\n return;\n }\n e === null || e === void 0 ? void 0 : e.preventDefault();\n return onPreview(file);\n };\n const onInternalDownload = file => {\n if (typeof onDownload === 'function') {\n onDownload(file);\n } else if (file.url) {\n window.open(file.url);\n }\n };\n const onInternalClose = file => {\n onRemove === null || onRemove === void 0 ? void 0 : onRemove(file);\n };\n const internalIconRender = file => {\n if (iconRender) {\n return iconRender(file, listType);\n }\n const isLoading = file.status === 'uploading';\n const fileIcon = isImgUrl && isImgUrl(file) ? /*#__PURE__*/React.createElement(PictureTwoTone, null) : /*#__PURE__*/React.createElement(FileTwoTone, null);\n let icon = isLoading ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : /*#__PURE__*/React.createElement(PaperClipOutlined, null);\n if (listType === 'picture') {\n icon = isLoading ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : fileIcon;\n } else if (listType === 'picture-card' || listType === 'picture-circle') {\n icon = isLoading ? locale.uploading : fileIcon;\n }\n return icon;\n };\n const actionIconRender = (customIcon, callback, prefixCls, title) => {\n const btnProps = {\n type: 'text',\n size: 'small',\n title,\n onClick: e => {\n callback();\n if (isValidElement(customIcon) && customIcon.props.onClick) {\n customIcon.props.onClick(e);\n }\n },\n className: `${prefixCls}-list-item-action`,\n disabled\n };\n if (isValidElement(customIcon)) {\n const btnIcon = cloneElement(customIcon, Object.assign(Object.assign({}, customIcon.props), {\n onClick: () => {}\n }));\n return /*#__PURE__*/React.createElement(Button, Object.assign({}, btnProps, {\n icon: btnIcon\n }));\n }\n return /*#__PURE__*/React.createElement(Button, Object.assign({}, btnProps), /*#__PURE__*/React.createElement(\"span\", null, customIcon));\n };\n // ============================== Ref ===============================\n // Test needs\n React.useImperativeHandle(ref, () => ({\n handlePreview: onInternalPreview,\n handleDownload: onInternalDownload\n }));\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n // ============================= Render =============================\n const prefixCls = getPrefixCls('upload', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const listClassNames = classNames(`${prefixCls}-list`, `${prefixCls}-list-${listType}`);\n // >>> Motion config\n const motionKeyList = _toConsumableArray(items.map(file => ({\n key: file.uid,\n file\n })));\n const animationDirection = listType === 'picture-card' || listType === 'picture-circle' ? 'animate-inline' : 'animate';\n // const transitionName = list.length === 0 ? '' : `${prefixCls}-${animationDirection}`;\n let motionConfig = {\n motionDeadline: 2000,\n motionName: `${prefixCls}-${animationDirection}`,\n keys: motionKeyList,\n motionAppear\n };\n const listItemMotion = React.useMemo(() => {\n const motion = Object.assign({}, initCollapseMotion(rootPrefixCls));\n delete motion.onAppearEnd;\n delete motion.onEnterEnd;\n delete motion.onLeaveEnd;\n return motion;\n }, [rootPrefixCls]);\n if (listType !== 'picture-card' && listType !== 'picture-circle') {\n motionConfig = Object.assign(Object.assign({}, listItemMotion), motionConfig);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: listClassNames\n }, /*#__PURE__*/React.createElement(CSSMotionList, Object.assign({}, motionConfig, {\n component: false\n }), _ref => {\n let {\n key,\n file,\n className: motionClassName,\n style: motionStyle\n } = _ref;\n return /*#__PURE__*/React.createElement(ListItem, {\n key: key,\n locale: locale,\n prefixCls: prefixCls,\n className: motionClassName,\n style: motionStyle,\n file: file,\n items: items,\n progress: progress,\n listType: listType,\n isImgUrl: isImgUrl,\n showPreviewIcon: showPreviewIcon,\n showRemoveIcon: showRemoveIcon,\n showDownloadIcon: showDownloadIcon,\n removeIcon: removeIcon,\n previewIcon: previewIcon,\n downloadIcon: downloadIcon,\n iconRender: internalIconRender,\n actionIconRender: actionIconRender,\n itemRender: itemRender,\n onPreview: onInternalPreview,\n onDownload: onInternalDownload,\n onClose: onInternalClose\n });\n }), appendAction && /*#__PURE__*/React.createElement(CSSMotion, Object.assign({}, motionConfig, {\n visible: appendActionVisible,\n forceRender: true\n }), _ref2 => {\n let {\n className: motionClassName,\n style: motionStyle\n } = _ref2;\n return cloneElement(appendAction, oriProps => ({\n className: classNames(oriProps.className, motionClassName),\n style: Object.assign(Object.assign(Object.assign({}, motionStyle), {\n // prevent the element has hover css pseudo-class that may cause animation to end prematurely.\n pointerEvents: motionClassName ? 'none' : undefined\n }), oriProps.style)\n }));\n }));\n};\nconst UploadList = /*#__PURE__*/React.forwardRef(InternalUploadList);\nif (process.env.NODE_ENV !== 'production') {\n UploadList.displayName = 'UploadList';\n}\nexport default UploadList;","const genDraggerStyle = token => {\n const {\n componentCls,\n iconCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-drag`]: {\n position: 'relative',\n width: '100%',\n height: '100%',\n textAlign: 'center',\n background: token.colorFillAlter,\n border: `${token.lineWidth}px dashed ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n cursor: 'pointer',\n transition: `border-color ${token.motionDurationSlow}`,\n [componentCls]: {\n padding: `${token.padding}px 0`\n },\n [`${componentCls}-btn`]: {\n display: 'table',\n width: '100%',\n height: '100%',\n outline: 'none'\n },\n [`${componentCls}-drag-container`]: {\n display: 'table-cell',\n verticalAlign: 'middle'\n },\n [`&:not(${componentCls}-disabled):hover`]: {\n borderColor: token.colorPrimaryHover\n },\n [`p${componentCls}-drag-icon`]: {\n marginBottom: token.margin,\n [iconCls]: {\n color: token.colorPrimary,\n fontSize: token.uploadThumbnailSize\n }\n },\n [`p${componentCls}-text`]: {\n margin: `0 0 ${token.marginXXS}px`,\n color: token.colorTextHeading,\n fontSize: token.fontSizeLG\n },\n [`p${componentCls}-hint`]: {\n color: token.colorTextDescription,\n fontSize: token.fontSize\n },\n // ===================== Disabled =====================\n [`&${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [`p${componentCls}-drag-icon ${iconCls},\n p${componentCls}-text,\n p${componentCls}-hint\n `]: {\n color: token.colorTextDisabled\n }\n }\n }\n }\n };\n};\nexport default genDraggerStyle;","import { clearFix, textEllipsis } from '../../style';\nconst genListStyle = token => {\n const {\n componentCls,\n antCls,\n iconCls,\n fontSize,\n lineHeight\n } = token;\n const itemCls = `${componentCls}-list-item`;\n const actionsCls = `${itemCls}-actions`;\n const actionCls = `${itemCls}-action`;\n const listItemHeightSM = Math.round(fontSize * lineHeight);\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-list`]: Object.assign(Object.assign({}, clearFix()), {\n lineHeight: token.lineHeight,\n [itemCls]: {\n position: 'relative',\n height: token.lineHeight * fontSize,\n marginTop: token.marginXS,\n fontSize,\n display: 'flex',\n alignItems: 'center',\n transition: `background-color ${token.motionDurationSlow}`,\n '&:hover': {\n backgroundColor: token.controlItemBgHover\n },\n [`${itemCls}-name`]: Object.assign(Object.assign({}, textEllipsis), {\n padding: `0 ${token.paddingXS}px`,\n lineHeight,\n flex: 'auto',\n transition: `all ${token.motionDurationSlow}`\n }),\n [actionsCls]: {\n [actionCls]: {\n opacity: 0\n },\n [`${actionCls}${antCls}-btn-sm`]: {\n height: listItemHeightSM,\n border: 0,\n lineHeight: 1,\n // FIXME: should not override small button\n '> span': {\n transform: 'scale(1)'\n }\n },\n [`\n ${actionCls}:focus,\n &.picture ${actionCls}\n `]: {\n opacity: 1\n },\n [iconCls]: {\n color: token.actionsColor,\n transition: `all ${token.motionDurationSlow}`\n },\n [`&:hover ${iconCls}`]: {\n color: token.colorText\n }\n },\n [`${componentCls}-icon ${iconCls}`]: {\n color: token.colorTextDescription,\n fontSize\n },\n [`${itemCls}-progress`]: {\n position: 'absolute',\n bottom: -token.uploadProgressOffset,\n width: '100%',\n paddingInlineStart: fontSize + token.paddingXS,\n fontSize,\n lineHeight: 0,\n pointerEvents: 'none',\n '> div': {\n margin: 0\n }\n }\n },\n [`${itemCls}:hover ${actionCls}`]: {\n opacity: 1,\n color: token.colorText\n },\n [`${itemCls}-error`]: {\n color: token.colorError,\n [`${itemCls}-name, ${componentCls}-icon ${iconCls}`]: {\n color: token.colorError\n },\n [actionsCls]: {\n [`${iconCls}, ${iconCls}:hover`]: {\n color: token.colorError\n },\n [actionCls]: {\n opacity: 1\n }\n }\n },\n [`${componentCls}-list-item-container`]: {\n transition: `opacity ${token.motionDurationSlow}, height ${token.motionDurationSlow}`,\n // For smooth removing animation\n '&::before': {\n display: 'table',\n width: 0,\n height: 0,\n content: '\"\"'\n }\n }\n })\n }\n };\n};\nexport default genListStyle;","import { Keyframes } from '@ant-design/cssinjs';\nimport { initFadeMotion } from '../../style/motion';\nconst uploadAnimateInlineIn = new Keyframes('uploadAnimateInlineIn', {\n from: {\n width: 0,\n height: 0,\n margin: 0,\n padding: 0,\n opacity: 0\n }\n});\nconst uploadAnimateInlineOut = new Keyframes('uploadAnimateInlineOut', {\n to: {\n width: 0,\n height: 0,\n margin: 0,\n padding: 0,\n opacity: 0\n }\n});\n// =========================== Motion ===========================\nconst genMotionStyle = token => {\n const {\n componentCls\n } = token;\n const inlineCls = `${componentCls}-animate-inline`;\n return [{\n [`${componentCls}-wrapper`]: {\n [`${inlineCls}-appear, ${inlineCls}-enter, ${inlineCls}-leave`]: {\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseInOutCirc,\n animationFillMode: 'forwards'\n },\n [`${inlineCls}-appear, ${inlineCls}-enter`]: {\n animationName: uploadAnimateInlineIn\n },\n [`${inlineCls}-leave`]: {\n animationName: uploadAnimateInlineOut\n }\n }\n }, {\n [`${componentCls}-wrapper`]: initFadeMotion(token)\n }, uploadAnimateInlineIn, uploadAnimateInlineOut];\n};\nexport default genMotionStyle;","import { blue } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { clearFix, textEllipsis } from '../../style';\nconst genPictureStyle = token => {\n const {\n componentCls,\n iconCls,\n uploadThumbnailSize,\n uploadProgressOffset\n } = token;\n const listCls = `${componentCls}-list`;\n const itemCls = `${listCls}-item`;\n return {\n [`${componentCls}-wrapper`]: {\n // ${listCls} 增加优先级\n [`\n ${listCls}${listCls}-picture,\n ${listCls}${listCls}-picture-card,\n ${listCls}${listCls}-picture-circle\n `]: {\n [itemCls]: {\n position: 'relative',\n height: uploadThumbnailSize + token.lineWidth * 2 + token.paddingXS * 2,\n padding: token.paddingXS,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n '&:hover': {\n background: 'transparent'\n },\n [`${itemCls}-thumbnail`]: Object.assign(Object.assign({}, textEllipsis), {\n width: uploadThumbnailSize,\n height: uploadThumbnailSize,\n lineHeight: `${uploadThumbnailSize + token.paddingSM}px`,\n textAlign: 'center',\n flex: 'none',\n [iconCls]: {\n fontSize: token.fontSizeHeading2,\n color: token.colorPrimary\n },\n img: {\n display: 'block',\n width: '100%',\n height: '100%',\n overflow: 'hidden'\n }\n }),\n [`${itemCls}-progress`]: {\n bottom: uploadProgressOffset,\n width: `calc(100% - ${token.paddingSM * 2}px)`,\n marginTop: 0,\n paddingInlineStart: uploadThumbnailSize + token.paddingXS\n }\n },\n [`${itemCls}-error`]: {\n borderColor: token.colorError,\n // Adjust the color of the error icon : https://github.com/ant-design/ant-design/pull/24160\n [`${itemCls}-thumbnail ${iconCls}`]: {\n [`svg path[fill='${blue[0]}']`]: {\n fill: token.colorErrorBg\n },\n [`svg path[fill='${blue.primary}']`]: {\n fill: token.colorError\n }\n }\n },\n [`${itemCls}-uploading`]: {\n borderStyle: 'dashed',\n [`${itemCls}-name`]: {\n marginBottom: uploadProgressOffset\n }\n }\n },\n [`${listCls}${listCls}-picture-circle ${itemCls}`]: {\n [`&, &::before, ${itemCls}-thumbnail`]: {\n borderRadius: '50%'\n }\n }\n }\n };\n};\nconst genPictureCardStyle = token => {\n const {\n componentCls,\n iconCls,\n fontSizeLG,\n colorTextLightSolid\n } = token;\n const listCls = `${componentCls}-list`;\n const itemCls = `${listCls}-item`;\n const uploadPictureCardSize = token.uploadPicCardSize;\n return {\n [`\n ${componentCls}-wrapper${componentCls}-picture-card-wrapper,\n ${componentCls}-wrapper${componentCls}-picture-circle-wrapper\n `]: Object.assign(Object.assign({}, clearFix()), {\n display: 'inline-block',\n width: '100%',\n [`${componentCls}${componentCls}-select`]: {\n width: uploadPictureCardSize,\n height: uploadPictureCardSize,\n marginInlineEnd: token.marginXS,\n marginBottom: token.marginXS,\n textAlign: 'center',\n verticalAlign: 'top',\n backgroundColor: token.colorFillAlter,\n border: `${token.lineWidth}px dashed ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n cursor: 'pointer',\n transition: `border-color ${token.motionDurationSlow}`,\n [`> ${componentCls}`]: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n textAlign: 'center'\n },\n [`&:not(${componentCls}-disabled):hover`]: {\n borderColor: token.colorPrimary\n }\n },\n // list\n [`${listCls}${listCls}-picture-card, ${listCls}${listCls}-picture-circle`]: {\n [`${listCls}-item-container`]: {\n display: 'inline-block',\n width: uploadPictureCardSize,\n height: uploadPictureCardSize,\n marginBlock: `0 ${token.marginXS}px`,\n marginInline: `0 ${token.marginXS}px`,\n verticalAlign: 'top'\n },\n '&::after': {\n display: 'none'\n },\n [itemCls]: {\n height: '100%',\n margin: 0,\n '&::before': {\n position: 'absolute',\n zIndex: 1,\n width: `calc(100% - ${token.paddingXS * 2}px)`,\n height: `calc(100% - ${token.paddingXS * 2}px)`,\n backgroundColor: token.colorBgMask,\n opacity: 0,\n transition: `all ${token.motionDurationSlow}`,\n content: '\" \"'\n }\n },\n [`${itemCls}:hover`]: {\n [`&::before, ${itemCls}-actions`]: {\n opacity: 1\n }\n },\n [`${itemCls}-actions`]: {\n position: 'absolute',\n insetInlineStart: 0,\n zIndex: 10,\n width: '100%',\n whiteSpace: 'nowrap',\n textAlign: 'center',\n opacity: 0,\n transition: `all ${token.motionDurationSlow}`,\n [`${iconCls}-eye, ${iconCls}-download, ${iconCls}-delete`]: {\n zIndex: 10,\n width: fontSizeLG,\n margin: `0 ${token.marginXXS}px`,\n fontSize: fontSizeLG,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n svg: {\n verticalAlign: 'baseline'\n }\n }\n },\n [`${itemCls}-actions, ${itemCls}-actions:hover`]: {\n [`${iconCls}-eye, ${iconCls}-download, ${iconCls}-delete`]: {\n color: new TinyColor(colorTextLightSolid).setAlpha(0.65).toRgbString(),\n '&:hover': {\n color: colorTextLightSolid\n }\n }\n },\n [`${itemCls}-thumbnail, ${itemCls}-thumbnail img`]: {\n position: 'static',\n display: 'block',\n width: '100%',\n height: '100%',\n objectFit: 'contain'\n },\n [`${itemCls}-name`]: {\n display: 'none',\n textAlign: 'center'\n },\n [`${itemCls}-file + ${itemCls}-name`]: {\n position: 'absolute',\n bottom: token.margin,\n display: 'block',\n width: `calc(100% - ${token.paddingXS * 2}px)`\n },\n [`${itemCls}-uploading`]: {\n [`&${itemCls}`]: {\n backgroundColor: token.colorFillAlter\n },\n [`&::before, ${iconCls}-eye, ${iconCls}-download, ${iconCls}-delete`]: {\n display: 'none'\n }\n },\n [`${itemCls}-progress`]: {\n bottom: token.marginXL,\n width: `calc(100% - ${token.paddingXS * 2}px)`,\n paddingInlineStart: 0\n }\n }\n }),\n [`${componentCls}-wrapper${componentCls}-picture-circle-wrapper`]: {\n [`${componentCls}${componentCls}-select`]: {\n borderRadius: '50%'\n }\n }\n };\n};\nexport { genPictureStyle, genPictureCardStyle };","// =========================== Motion ===========================\nconst genRtlStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\nexport default genRtlStyle;","import { resetComponent } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genDraggerStyle from './dragger';\nimport genListStyle from './list';\nimport genMotionStyle from './motion';\nimport { genPictureCardStyle, genPictureStyle } from './picture';\nimport genRtlStyle from './rtl';\nconst genBaseStyle = token => {\n const {\n componentCls,\n colorTextDisabled\n } = token;\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, resetComponent(token)), {\n [componentCls]: {\n outline: 0,\n \"input[type='file']\": {\n cursor: 'pointer'\n }\n },\n [`${componentCls}-select`]: {\n display: 'inline-block'\n },\n [`${componentCls}-disabled`]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Upload', token => {\n const {\n fontSizeHeading3,\n fontSize,\n lineHeight,\n lineWidth,\n controlHeightLG\n } = token;\n const listItemHeightSM = Math.round(fontSize * lineHeight);\n const uploadToken = mergeToken(token, {\n uploadThumbnailSize: fontSizeHeading3 * 2,\n uploadProgressOffset: listItemHeightSM / 2 + lineWidth,\n uploadPicCardSize: controlHeightLG * 2.55\n });\n return [genBaseStyle(uploadToken), genDraggerStyle(uploadToken), genPictureStyle(uploadToken), genPictureCardStyle(uploadToken), genListStyle(uploadToken), genMotionStyle(uploadToken), genRtlStyle(uploadToken), genCollapseMotion(uploadToken)];\n}, token => ({\n actionsColor: token.colorTextDescription\n}));","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport classNames from 'classnames';\nimport RcUpload from 'rc-upload';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { flushSync } from 'react-dom';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nimport UploadList from './UploadList';\nimport useStyle from './style';\nimport { file2Obj, getFileItem, removeFileItem, updateFileList } from './utils';\nexport const LIST_IGNORE = `__LIST_IGNORE_${Date.now()}__`;\nconst InternalUpload = (props, ref) => {\n const {\n fileList,\n defaultFileList,\n onRemove,\n showUploadList = true,\n listType = 'text',\n onPreview,\n onDownload,\n onChange,\n onDrop,\n previewFile,\n disabled: customDisabled,\n locale: propLocale,\n iconRender,\n isImageUrl,\n progress,\n prefixCls: customizePrefixCls,\n className,\n type = 'select',\n children,\n style,\n itemRender,\n maxCount,\n data = {},\n multiple = false,\n action = '',\n accept = '',\n supportServerRender = true\n } = props;\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const [mergedFileList, setMergedFileList] = useMergedState(defaultFileList || [], {\n value: fileList,\n postState: list => list !== null && list !== void 0 ? list : []\n });\n const [dragState, setDragState] = React.useState('drop');\n const upload = React.useRef(null);\n process.env.NODE_ENV !== \"production\" ? warning('fileList' in props || !('value' in props), 'Upload', '`value` is not a valid prop, do you mean `fileList`?') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!('transformFile' in props), 'Upload', '`transformFile` is deprecated. Please use `beforeUpload` directly.') : void 0;\n // Control mode will auto fill file uid if not provided\n React.useMemo(() => {\n const timestamp = Date.now();\n (fileList || []).forEach((file, index) => {\n if (!file.uid && !Object.isFrozen(file)) {\n file.uid = `__AUTO__${timestamp}_${index}__`;\n }\n });\n }, [fileList]);\n const onInternalChange = (file, changedFileList, event) => {\n let cloneList = _toConsumableArray(changedFileList);\n let exceedMaxCount = false;\n // Cut to match count\n if (maxCount === 1) {\n cloneList = cloneList.slice(-1);\n } else if (maxCount) {\n exceedMaxCount = cloneList.length > maxCount;\n cloneList = cloneList.slice(0, maxCount);\n }\n // Prevent React18 auto batch since input[upload] trigger process at same time\n // which makes fileList closure problem\n flushSync(() => {\n setMergedFileList(cloneList);\n });\n const changeInfo = {\n file: file,\n fileList: cloneList\n };\n if (event) {\n changeInfo.event = event;\n }\n if (!exceedMaxCount ||\n // We should ignore event if current file is exceed `maxCount`\n cloneList.some(f => f.uid === file.uid)) {\n flushSync(() => {\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo);\n });\n }\n };\n const mergedBeforeUpload = (file, fileListArgs) => __awaiter(void 0, void 0, void 0, function* () {\n const {\n beforeUpload,\n transformFile\n } = props;\n let parsedFile = file;\n if (beforeUpload) {\n const result = yield beforeUpload(file, fileListArgs);\n if (result === false) {\n return false;\n }\n // Hack for LIST_IGNORE, we add additional info to remove from the list\n delete file[LIST_IGNORE];\n if (result === LIST_IGNORE) {\n Object.defineProperty(file, LIST_IGNORE, {\n value: true,\n configurable: true\n });\n return false;\n }\n if (typeof result === 'object' && result) {\n parsedFile = result;\n }\n }\n if (transformFile) {\n parsedFile = yield transformFile(parsedFile);\n }\n return parsedFile;\n });\n const onBatchStart = batchFileInfoList => {\n // Skip file which marked as `LIST_IGNORE`, these file will not add to file list\n const filteredFileInfoList = batchFileInfoList.filter(info => !info.file[LIST_IGNORE]);\n // Nothing to do since no file need upload\n if (!filteredFileInfoList.length) {\n return;\n }\n const objectFileList = filteredFileInfoList.map(info => file2Obj(info.file));\n // Concat new files with prev files\n let newFileList = _toConsumableArray(mergedFileList);\n objectFileList.forEach(fileObj => {\n // Replace file if exist\n newFileList = updateFileList(fileObj, newFileList);\n });\n objectFileList.forEach((fileObj, index) => {\n // Repeat trigger `onChange` event for compatible\n let triggerFileObj = fileObj;\n if (!filteredFileInfoList[index].parsedFile) {\n // `beforeUpload` return false\n const {\n originFileObj\n } = fileObj;\n let clone;\n try {\n clone = new File([originFileObj], originFileObj.name, {\n type: originFileObj.type\n });\n } catch (e) {\n clone = new Blob([originFileObj], {\n type: originFileObj.type\n });\n clone.name = originFileObj.name;\n clone.lastModifiedDate = new Date();\n clone.lastModified = new Date().getTime();\n }\n clone.uid = fileObj.uid;\n triggerFileObj = clone;\n } else {\n // Inject `uploading` status\n fileObj.status = 'uploading';\n }\n onInternalChange(triggerFileObj, newFileList);\n });\n };\n const onSuccess = (response, file, xhr) => {\n try {\n if (typeof response === 'string') {\n response = JSON.parse(response);\n }\n } catch (e) {\n /* do nothing */\n }\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.status = 'done';\n targetItem.percent = 100;\n targetItem.response = response;\n targetItem.xhr = xhr;\n const nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList);\n };\n const onProgress = (e, file) => {\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.status = 'uploading';\n targetItem.percent = e.percent;\n const nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList, e);\n };\n const onError = (error, response, file) => {\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.error = error;\n targetItem.response = response;\n targetItem.status = 'error';\n const nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList);\n };\n const handleRemove = file => {\n let currentFile;\n Promise.resolve(typeof onRemove === 'function' ? onRemove(file) : onRemove).then(ret => {\n var _a;\n // Prevent removing file\n if (ret === false) {\n return;\n }\n const removedFileList = removeFileItem(file, mergedFileList);\n if (removedFileList) {\n currentFile = Object.assign(Object.assign({}, file), {\n status: 'removed'\n });\n mergedFileList === null || mergedFileList === void 0 ? void 0 : mergedFileList.forEach(item => {\n const matchKey = currentFile.uid !== undefined ? 'uid' : 'name';\n if (item[matchKey] === currentFile[matchKey] && !Object.isFrozen(item)) {\n item.status = 'removed';\n }\n });\n (_a = upload.current) === null || _a === void 0 ? void 0 : _a.abort(currentFile);\n onInternalChange(currentFile, removedFileList);\n }\n });\n };\n const onFileDrop = e => {\n setDragState(e.type);\n if (e.type === 'drop') {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(e);\n }\n };\n // Test needs\n React.useImperativeHandle(ref, () => ({\n onBatchStart,\n onSuccess,\n onProgress,\n onError,\n fileList: mergedFileList,\n upload: upload.current\n }));\n const {\n getPrefixCls,\n direction,\n upload: ctxUpload\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('upload', customizePrefixCls);\n const rcUploadProps = Object.assign(Object.assign({\n onBatchStart,\n onError,\n onProgress,\n onSuccess\n }, props), {\n data,\n multiple,\n action,\n accept,\n supportServerRender,\n prefixCls,\n disabled: mergedDisabled,\n beforeUpload: mergedBeforeUpload,\n onChange: undefined\n });\n delete rcUploadProps.className;\n delete rcUploadProps.style;\n // Remove id to avoid open by label when trigger is hidden\n // !children: https://github.com/ant-design/ant-design/issues/14298\n // disabled: https://github.com/ant-design/ant-design/issues/16478\n // https://github.com/ant-design/ant-design/issues/24197\n if (!children || mergedDisabled) {\n delete rcUploadProps.id;\n }\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const [contextLocale] = useLocale('Upload', defaultLocale.Upload);\n const {\n showRemoveIcon,\n showPreviewIcon,\n showDownloadIcon,\n removeIcon,\n previewIcon,\n downloadIcon\n } = typeof showUploadList === 'boolean' ? {} : showUploadList;\n const renderUploadList = (button, buttonVisible) => {\n if (!showUploadList) {\n return button;\n }\n return /*#__PURE__*/React.createElement(UploadList, {\n prefixCls: prefixCls,\n listType: listType,\n items: mergedFileList,\n previewFile: previewFile,\n onPreview: onPreview,\n onDownload: onDownload,\n onRemove: handleRemove,\n showRemoveIcon: !mergedDisabled && showRemoveIcon,\n showPreviewIcon: showPreviewIcon,\n showDownloadIcon: showDownloadIcon,\n removeIcon: removeIcon,\n previewIcon: previewIcon,\n downloadIcon: downloadIcon,\n iconRender: iconRender,\n locale: Object.assign(Object.assign({}, contextLocale), propLocale),\n isImageUrl: isImageUrl,\n progress: progress,\n appendAction: button,\n appendActionVisible: buttonVisible,\n itemRender: itemRender,\n disabled: mergedDisabled\n });\n };\n const wrapperCls = classNames(`${prefixCls}-wrapper`, className, hashId, ctxUpload === null || ctxUpload === void 0 ? void 0 : ctxUpload.className, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-picture-card-wrapper`]: listType === 'picture-card',\n [`${prefixCls}-picture-circle-wrapper`]: listType === 'picture-circle'\n });\n const mergedStyle = Object.assign(Object.assign({}, ctxUpload === null || ctxUpload === void 0 ? void 0 : ctxUpload.style), style);\n if (type === 'drag') {\n const dragCls = classNames(hashId, prefixCls, `${prefixCls}-drag`, {\n [`${prefixCls}-drag-uploading`]: mergedFileList.some(file => file.status === 'uploading'),\n [`${prefixCls}-drag-hover`]: dragState === 'dragover',\n [`${prefixCls}-disabled`]: mergedDisabled,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", {\n className: wrapperCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: dragCls,\n style: mergedStyle,\n onDrop: onFileDrop,\n onDragOver: onFileDrop,\n onDragLeave: onFileDrop\n }, /*#__PURE__*/React.createElement(RcUpload, Object.assign({}, rcUploadProps, {\n ref: upload,\n className: `${prefixCls}-btn`\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-drag-container`\n }, children))), renderUploadList()));\n }\n const uploadButtonCls = classNames(prefixCls, `${prefixCls}-select`, {\n [`${prefixCls}-disabled`]: mergedDisabled\n });\n const renderUploadButton = uploadButtonStyle => /*#__PURE__*/React.createElement(\"div\", {\n className: uploadButtonCls,\n style: uploadButtonStyle\n }, /*#__PURE__*/React.createElement(RcUpload, Object.assign({}, rcUploadProps, {\n ref: upload\n })));\n const uploadButton = renderUploadButton(children ? undefined : {\n display: 'none'\n });\n if (listType === 'picture-card' || listType === 'picture-circle') {\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", {\n className: wrapperCls\n }, renderUploadList(uploadButton, !!children)));\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", {\n className: wrapperCls\n }, uploadButton, renderUploadList()));\n};\nconst Upload = /*#__PURE__*/React.forwardRef(InternalUpload);\nif (process.env.NODE_ENV !== 'production') {\n Upload.displayName = 'Upload';\n}\nexport default Upload;","var __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 Upload from './Upload';\nconst Dragger = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n style,\n height\n } = _a,\n restProps = __rest(_a, [\"style\", \"height\"]);\n return /*#__PURE__*/React.createElement(Upload, Object.assign({\n ref: ref\n }, restProps, {\n type: \"drag\",\n style: Object.assign(Object.assign({}, style), {\n height\n })\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Dragger.displayName = 'Dragger';\n}\nexport default Dragger;","'use client';\n\nimport Dragger from './Dragger';\nimport InternalUpload, { LIST_IGNORE } from './Upload';\nconst Upload = InternalUpload;\nUpload.Dragger = Dragger;\nUpload.LIST_IGNORE = LIST_IGNORE;\nexport default Upload;","export default '5.8.5';","/* eslint import/no-unresolved: 0 */\n// @ts-ignore\nimport version from './version';\nexport default version;","function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\n/* eslint no-console:0 */\nvar formatRegExp = /%[sdj%]/g;\nvar warning = function warning() {}; // don't print warning message when in production env or node runtime\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn && typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined') {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nfunction convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n var fields = {};\n errors.forEach(function (error) {\n var field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\nfunction format(template) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var i = 0;\n var len = args.length;\n\n if (typeof template === 'function') {\n return template.apply(null, args);\n }\n\n if (typeof template === 'string') {\n var str = template.replace(formatRegExp, function (x) {\n if (x === '%%') {\n return '%';\n }\n\n if (i >= len) {\n return x;\n }\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n break;\n\n default:\n return x;\n }\n });\n return str;\n }\n\n return template;\n}\n\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'date' || type === 'pattern';\n}\n\nfunction isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n\n return false;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n\n function count(errors) {\n results.push.apply(results, errors || []);\n total++;\n\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(function (a) {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n\n var original = index;\n index = index + 1;\n\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, objArr[k] || []);\n });\n return ret;\n}\n\nvar AsyncValidationError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(AsyncValidationError, _Error);\n\n function AsyncValidationError(errors, fields) {\n var _this;\n\n _this = _Error.call(this, 'Async Validation Error') || this;\n _this.errors = errors;\n _this.fields = fields;\n return _this;\n }\n\n return AsyncValidationError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nfunction asyncMap(objArr, option, func, callback, source) {\n if (option.first) {\n var _pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n callback(errors);\n return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve(source);\n };\n\n var flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n\n _pending[\"catch\"](function (e) {\n return e;\n });\n\n return _pending;\n }\n\n var firstFields = option.firstFields === true ? Object.keys(objArr) : option.firstFields || [];\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n results.push.apply(results, errors);\n total++;\n\n if (total === objArrLength) {\n callback(results);\n return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve(source);\n }\n };\n\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n\n objArrKeys.forEach(function (key) {\n var arr = objArr[key];\n\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending[\"catch\"](function (e) {\n return e;\n });\n return pending;\n}\n\nfunction isErrorObj(obj) {\n return !!(obj && obj.message !== undefined);\n}\n\nfunction getValue(value, path) {\n var v = value;\n\n for (var i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n\n v = v[path[i]];\n }\n\n return v;\n}\n\nfunction complementError(rule, source) {\n return function (oe) {\n var fieldValue;\n\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[oe.field || rule.fullField];\n }\n\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue: fieldValue,\n field: oe.field || rule.fullField\n };\n };\n}\nfunction deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = _extends({}, target[s], value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n\n return target;\n}\n\nvar required$1 = function required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nvar whitespace = function whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\n\n// https://github.com/kevva/url-regex/blob/master/index.js\nvar urlReg;\nvar getUrlRegex = (function () {\n if (urlReg) {\n return urlReg;\n }\n\n var word = '[a-fA-F\\\\d:]';\n\n var b = function b(options) {\n return options && options.includeBoundaries ? \"(?:(?<=\\\\s|^)(?=\" + word + \")|(?<=\" + word + \")(?=\\\\s|$))\" : '';\n };\n\n var v4 = '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n var v6seg = '[a-fA-F\\\\d]{1,4}';\n var v6 = (\"\\n(?:\\n(?:\" + v6seg + \":){7}(?:\" + v6seg + \"|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\\n(?:\" + v6seg + \":){6}(?:\" + v4 + \"|:\" + v6seg + \"|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\\n(?:\" + v6seg + \":){5}(?::\" + v4 + \"|(?::\" + v6seg + \"){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\\n(?:\" + v6seg + \":){4}(?:(?::\" + v6seg + \"){0,1}:\" + v4 + \"|(?::\" + v6seg + \"){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\\n(?:\" + v6seg + \":){3}(?:(?::\" + v6seg + \"){0,2}:\" + v4 + \"|(?::\" + v6seg + \"){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\\n(?:\" + v6seg + \":){2}(?:(?::\" + v6seg + \"){0,3}:\" + v4 + \"|(?::\" + v6seg + \"){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\\n(?:\" + v6seg + \":){1}(?:(?::\" + v6seg + \"){0,4}:\" + v4 + \"|(?::\" + v6seg + \"){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\\n(?::(?:(?::\" + v6seg + \"){0,5}:\" + v4 + \"|(?::\" + v6seg + \"){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\\n\").replace(/\\s*\\/\\/.*$/gm, '').replace(/\\n/g, '').trim(); // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n\n var v46Exact = new RegExp(\"(?:^\" + v4 + \"$)|(?:^\" + v6 + \"$)\");\n var v4exact = new RegExp(\"^\" + v4 + \"$\");\n var v6exact = new RegExp(\"^\" + v6 + \"$\");\n\n var ip = function ip(options) {\n return options && options.exact ? v46Exact : new RegExp(\"(?:\" + b(options) + v4 + b(options) + \")|(?:\" + b(options) + v6 + b(options) + \")\", 'g');\n };\n\n ip.v4 = function (options) {\n return options && options.exact ? v4exact : new RegExp(\"\" + b(options) + v4 + b(options), 'g');\n };\n\n ip.v6 = function (options) {\n return options && options.exact ? v6exact : new RegExp(\"\" + b(options) + v6 + b(options), 'g');\n };\n\n var protocol = \"(?:(?:[a-z]+:)?//)\";\n var auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n var ipv4 = ip.v4().source;\n var ipv6 = ip.v6().source;\n var host = \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\";\n var domain = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\";\n var tld = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\";\n var port = '(?::\\\\d{2,5})?';\n var path = '(?:[/?#][^\\\\s\"]*)?';\n var regex = \"(?:\" + protocol + \"|www\\\\.)\" + auth + \"(?:localhost|\" + ipv4 + \"|\" + ipv6 + \"|\" + host + domain + tld + \")\" + port + path;\n urlReg = new RegExp(\"(?:^\" + regex + \"$)\", 'i');\n return urlReg;\n});\n\n/* eslint max-len:0 */\n\nvar pattern$2 = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\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,}))$/,\n // url: new RegExp(\n // '^(?!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]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n \"float\": function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function' && !isNaN(value.getTime());\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n\n return typeof value === 'number';\n },\n object: function object(value) {\n return typeof value === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && value.length <= 320 && !!value.match(pattern$2.email);\n },\n url: function url(value) {\n return typeof value === 'string' && value.length <= 2048 && !!value.match(getUrlRegex());\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern$2.hex);\n }\n};\n\nvar type$1 = function type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n required$1(rule, value, source, errors, options);\n return;\n }\n\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n } // straight typeof check\n\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n};\n\nvar range = function range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number'; // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n } // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n\n\n if (!key) {\n return false;\n }\n\n if (arr) {\n val = value.length;\n }\n\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n};\n\nvar ENUM$1 = 'enum';\n\nvar enumerable$1 = function enumerable(rule, value, source, errors, options) {\n rule[ENUM$1] = Array.isArray(rule[ENUM$1]) ? rule[ENUM$1] : [];\n\n if (rule[ENUM$1].indexOf(value) === -1) {\n errors.push(format(options.messages[ENUM$1], rule.fullField, rule[ENUM$1].join(', ')));\n }\n};\n\nvar pattern$1 = function pattern(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n\n if (!rule.pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n\n if (!_pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n};\n\nvar rules = {\n required: required$1,\n whitespace: whitespace,\n type: type$1,\n range: range,\n \"enum\": enumerable$1,\n pattern: pattern$1\n};\n\nvar string = function string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, 'string');\n\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n\n callback(errors);\n};\n\nvar method = function method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar number = function number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar _boolean = function _boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar regexp = function regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar integer = function integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar floatFn = function floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar array = function array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, 'array');\n\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar object = function object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar ENUM = 'enum';\n\nvar enumerable = function enumerable(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar pattern = function pattern(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar date = function date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); // console.log('validate on %s value', value);\n\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value, 'date')) {\n var dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n\n callback(errors);\n};\n\nvar required = function required(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\n\nvar type = function type(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, ruleType);\n\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar any = function any(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n }\n\n callback(errors);\n};\n\nvar validators = {\n string: string,\n method: method,\n number: number,\n \"boolean\": _boolean,\n regexp: regexp,\n integer: integer,\n \"float\": floatFn,\n array: array,\n object: object,\n \"enum\": enumerable,\n pattern: pattern,\n date: date,\n url: type,\n hex: type,\n email: type,\n required: required,\n any: any\n};\n\nfunction newMessages() {\n return {\n \"default\": 'Validation error on field %s',\n required: '%s is required',\n \"enum\": '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n \"boolean\": '%s is not a %s',\n integer: '%s is not an %s',\n \"float\": '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\nvar messages = newMessages();\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\n\nvar Schema = /*#__PURE__*/function () {\n // ========================= Static =========================\n // ======================== Instance ========================\n function Schema(descriptor) {\n this.rules = null;\n this._messages = messages;\n this.define(descriptor);\n }\n\n var _proto = Schema.prototype;\n\n _proto.define = function define(rules) {\n var _this = this;\n\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n\n this.rules = {};\n Object.keys(rules).forEach(function (name) {\n var item = rules[name];\n _this.rules[name] = Array.isArray(item) ? item : [item];\n });\n };\n\n _proto.messages = function messages(_messages) {\n if (_messages) {\n this._messages = deepMerge(newMessages(), _messages);\n }\n\n return this._messages;\n };\n\n _proto.validate = function validate(source_, o, oc) {\n var _this2 = this;\n\n if (o === void 0) {\n o = {};\n }\n\n if (oc === void 0) {\n oc = function oc() {};\n }\n\n var source = source_;\n var options = o;\n var callback = oc;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n\n return Promise.resolve(source);\n }\n\n function complete(results) {\n var errors = [];\n var fields = {};\n\n function add(e) {\n if (Array.isArray(e)) {\n var _errors;\n\n errors = (_errors = errors).concat.apply(_errors, e);\n } else {\n errors.push(e);\n }\n }\n\n for (var i = 0; i < results.length; i++) {\n add(results[i]);\n }\n\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n callback(errors, fields);\n }\n }\n\n if (options.messages) {\n var messages$1 = this.messages();\n\n if (messages$1 === messages) {\n messages$1 = newMessages();\n }\n\n deepMerge(messages$1, options.messages);\n options.messages = messages$1;\n } else {\n options.messages = this.messages();\n }\n\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n var arr = _this2.rules[z];\n var value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = _extends({}, source);\n }\n\n value = source[z] = rule.transform(value);\n }\n\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = _extends({}, rule);\n } // Fill validator. Skip if nothing need to validate\n\n\n rule.validator = _this2.getValidationMethod(rule);\n\n if (!rule.validator) {\n return;\n }\n\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this2.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n return asyncMap(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && (typeof rule.fields === 'object' || typeof rule.defaultField === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n\n function addFullField(key, schema) {\n return _extends({}, schema, {\n fullField: rule.fullField + \".\" + key,\n fullFields: rule.fullFields ? [].concat(rule.fullFields, [key]) : [key]\n });\n }\n\n function cb(e) {\n if (e === void 0) {\n e = [];\n }\n\n var errorList = Array.isArray(e) ? e : [e];\n\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n } // Fill error info\n\n\n var filledErrors = errorList.map(complementError(rule, source));\n\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = [].concat(rule.message).map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [options.error(rule, format(options.messages.required, rule.field))];\n }\n\n return doIt(filledErrors);\n }\n\n var fieldsSchema = {};\n\n if (rule.defaultField) {\n Object.keys(data.value).map(function (key) {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n\n fieldsSchema = _extends({}, fieldsSchema, data.rule.fields);\n var paredFieldsSchema = {};\n Object.keys(fieldsSchema).forEach(function (field) {\n var fieldSchema = fieldsSchema[field];\n var fieldSchemaList = Array.isArray(fieldSchema) ? fieldSchema : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(addFullField.bind(null, field));\n });\n var schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n\n schema.validate(data.value, data.rule.options || options, function (errs) {\n var finalErrors = [];\n\n if (filledErrors && filledErrors.length) {\n finalErrors.push.apply(finalErrors, filledErrors);\n }\n\n if (errs && errs.length) {\n finalErrors.push.apply(finalErrors, errs);\n }\n\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n var res;\n\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n console.error == null ? void 0 : console.error(error); // rethrow to report error\n\n if (!options.suppressValidatorError) {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n\n cb(error.message);\n }\n\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(typeof rule.message === 'function' ? rule.message(rule.fullField || rule.field) : rule.message || (rule.fullField || rule.field) + \" fails\");\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n }, source);\n };\n\n _proto.getType = function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n\n if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n\n return rule.type || 'string';\n };\n\n _proto.getValidationMethod = function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n\n return validators[this.getType(rule)] || undefined;\n };\n\n return Schema;\n}();\n\nSchema.register = function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n\n validators[type] = validator;\n};\n\nSchema.warning = warning;\nSchema.messages = messages;\nSchema.validators = validators;\n\nexport { Schema as default };\n//# sourceMappingURL=index.js.map\n","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 transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\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) && utils.isStandardBrowserEnv()) {\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\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(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, 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(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, 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 || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\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 CanceledError() : 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 var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\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.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\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\nvar CanceledError = require('./CanceledError');\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 CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` 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\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\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 buildFullPath = require('./buildFullPath');\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 var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\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\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\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 {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n 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});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\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 utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` 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 CanceledError();\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\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 'beforeRedirect': 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 AxiosError = require('./AxiosError');\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(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\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 AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\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: transitionalDefaults,\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\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\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 AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\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 env: {\n FormData: require('./env/FormData')\n },\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","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\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","// eslint-disable-next-line strict\nmodule.exports = null;\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\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\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 utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\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 AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\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 AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\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 AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\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// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\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 * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\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 (kindOf(val) !== '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 * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\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 FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\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\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\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 inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var has = require('../internals/map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[MapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","var has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","var has = require('../internals/weak-map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[WeakMapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","var has = require('../internals/weak-set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[WeakSetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar bind = require('../internals/function-bind-context');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar DISPOSE = wellKnownSymbol('dispose');\n\nvar push = uncurryThis([].push);\n\nvar getDisposeMethod = function (V, hint) {\n if (hint == 'async-dispose') {\n return getMethod(V, ASYNC_DISPOSE) || getMethod(V, DISPOSE);\n } return getMethod(V, DISPOSE);\n};\n\n// `CreateDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-createdisposableresource\nvar createDisposableResource = function (V, hint, method) {\n return bind(method || getDisposeMethod(V, hint), V);\n};\n\n// `AddDisposableResource` abstract operation\n// https://tc39.es/proposal-explicit-resource-management/#sec-adddisposableresource-disposable-v-hint-disposemethod\nmodule.exports = function (disposable, V, hint, method) {\n var resource;\n if (!method) {\n if (isNullOrUndefined(V)) return;\n resource = createDisposableResource(V, hint);\n } else if (isNullOrUndefined(V)) {\n resource = createDisposableResource(undefined, hint, method);\n } else {\n resource = createDisposableResource(anObject(V), hint, method);\n }\n\n push(disposable.stack, resource);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","var uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar $TypeError = TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n if (classof(O) != 'ArrayBuffer') throw $TypeError('ArrayBuffer expected');\n return O.byteLength;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar slice = uncurryThis(ArrayBuffer.prototype.slice);\n\nmodule.exports = function (O) {\n if (arrayBufferByteLength(O) !== 0) return false;\n try {\n slice(O, 0, 0);\n return false;\n } catch (error) {\n return true;\n }\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar isDetached = require('../internals/array-buffer-is-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar PROPER_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar TypeError = global.TypeError;\nvar structuredClone = global.structuredClone;\nvar ArrayBuffer = global.ArrayBuffer;\nvar DataView = global.DataView;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = PROPER_TRANSFER && function (arrayBuffer, newLength, preserveResizability) {\n var byteLength = arrayBufferByteLength(arrayBuffer);\n var newByteLength = newLength === undefined ? byteLength : min(toIndex(newLength), byteLength);\n var fixedLength = !isResizable || !isResizable(arrayBuffer);\n if (isDetached(arrayBuffer)) throw TypeError('ArrayBuffer is detached');\n var newBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n if (byteLength == newByteLength && (preserveResizability || fixedLength)) return newBuffer;\n if (!preserveResizability || fixedLength) return slice(newBuffer, 0, newByteLength);\n var newNewBuffer = new ArrayBuffer(newByteLength, maxByteLength && { maxByteLength: maxByteLength(newBuffer) });\n var a = new DataView(newBuffer);\n var b = new DataView(newNewBuffer);\n for (var i = 0; i < newByteLength; i++) setInt8(b, i, getInt8(a, i));\n return newNewBuffer;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\nvar isConstructor = require('../internals/is-constructor');\nvar getAsyncIterator = require('../internals/get-async-iterator');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar getMethod = require('../internals/get-method');\nvar getVirtual = require('../internals/entry-virtual');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar toArray = require('../internals/async-iterator-iteration').toArray;\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar arrayIterator = uncurryThis(getVirtual('Array').values);\nvar arrayIteratorNext = uncurryThis(arrayIterator([]).next);\n\nvar safeArrayIterator = function () {\n return new SafeArrayIterator(this);\n};\n\nvar SafeArrayIterator = function (O) {\n this.iterator = arrayIterator(O);\n};\n\nSafeArrayIterator.prototype.next = function () {\n return arrayIteratorNext(this.iterator);\n};\n\n// `Array.fromAsync` method implementation\n// https://github.com/tc39/proposal-array-from-async\nmodule.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {\n var C = this;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n return new (getBuiltIn('Promise'))(function (resolve) {\n var O = toObject(asyncItems);\n if (mapfn !== undefined) mapfn = bind(mapfn, thisArg);\n var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR);\n var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || safeArrayIterator;\n var A = isConstructor(C) ? new C() : [];\n var iterator = usingAsyncIterator\n ? getAsyncIterator(O, usingAsyncIterator)\n : new AsyncFromSyncIterator(getIteratorDirect(getIterator(O, usingSyncIterator)));\n resolve(toArray(iterator, mapfn, A));\n });\n};\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n var index = 0;\n var length = lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar Map = MapHelpers.Map;\nvar mapGet = MapHelpers.get;\nvar mapHas = MapHelpers.has;\nvar mapSet = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// `Array.prototype.groupToMap` method\n// https://github.com/tc39/proposal-array-grouping\nmodule.exports = function groupToMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var map = new Map();\n var length = lengthOfArrayLike(self);\n var index = 0;\n var key, value;\n for (;length > index; index++) {\n value = self[index];\n key = boundFunction(value, index, O);\n if (mapHas(map, key)) push(mapGet(map, key), value);\n else mapSet(map, key, [value]);\n } return map;\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar objectCreate = require('../internals/object-create');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar $Array = Array;\nvar push = uncurryThis([].push);\n\nmodule.exports = function ($this, callbackfn, that, specificConstructor) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var target = objectCreate(null);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var Constructor, key, value;\n for (;length > index; index++) {\n value = self[index];\n key = toPropertyKey(boundFunction(value, index, O));\n // in some IE10 builds, `hasOwnProperty` returns incorrect result on integer keys\n // but since it's a `null` prototype object, we can safely use `in`\n if (key in target) push(target[key], value);\n else target[key] = [value];\n }\n // TODO: Remove this block from `core-js@4`\n if (specificConstructor) {\n Constructor = specificConstructor(O);\n if (Constructor !== $Array) {\n for (key in target) target[key] = arrayFromConstructorAndList(Constructor, target[key]);\n }\n } return target;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_FIND_LAST_INDEX = TYPE == 1;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var index = lengthOfArrayLike(self);\n var value, result;\n while (index-- > 0) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (result) switch (TYPE) {\n case 0: return value; // findLast\n case 1: return index; // findLastIndex\n }\n }\n return IS_FIND_LAST_INDEX ? -1 : undefined;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.findLast` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLast: createMethod(0),\n // `Array.prototype.findLastIndex` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLastIndex: createMethod(1)\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nmodule.exports = function (O, C) {\n var len = lengthOfArrayLike(O);\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = O[len - k - 1];\n return A;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapSet = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// `Array.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nmodule.exports = function uniqueBy(resolver) {\n var that = toObject(this);\n var length = lengthOfArrayLike(that);\n var result = [];\n var map = new Map();\n var resolverFunction = !isNullOrUndefined(resolver) ? aCallable(resolver) : function (value) {\n return value;\n };\n var index, item, key;\n for (index = 0; index < length; index++) {\n item = that[index];\n key = resolverFunction(item);\n if (!mapHas(map, key)) mapSet(map, key, item);\n }\n iterate(map, function (value) {\n push(result, value);\n });\n return result;\n};\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n if (actualIndex >= len || actualIndex < 0) throw $RangeError('Incorrect index');\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n return A;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalStateModule = require('../internals/internal-state');\nvar getBuiltIn = require('../internals/get-built-in');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar Promise = getBuiltIn('Promise');\n\nvar ASYNC_FROM_SYNC_ITERATOR = 'AsyncFromSyncIterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ASYNC_FROM_SYNC_ITERATOR);\n\nvar asyncFromSyncIteratorContinuation = function (result, resolve, reject) {\n var done = result.done;\n Promise.resolve(result.value).then(function (value) {\n resolve(createIterResultObject(value, done));\n }, reject);\n};\n\nvar AsyncFromSyncIterator = function AsyncIterator(iteratorRecord) {\n iteratorRecord.type = ASYNC_FROM_SYNC_ITERATOR;\n setInternalState(this, iteratorRecord);\n};\n\nAsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n return new Promise(function (resolve, reject) {\n var result = anObject(call(state.next, state.iterator));\n asyncFromSyncIteratorContinuation(result, resolve, reject);\n });\n },\n 'return': function () {\n var iterator = getInternalState(this).iterator;\n return new Promise(function (resolve, reject) {\n var $return = getMethod(iterator, 'return');\n if ($return === undefined) return resolve(createIterResultObject(undefined, true));\n var result = anObject(call($return, iterator));\n asyncFromSyncIteratorContinuation(result, resolve, reject);\n });\n }\n});\n\nmodule.exports = AsyncFromSyncIterator;\n","var call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, method, argument, reject) {\n try {\n var returnMethod = getMethod(iterator, 'return');\n if (returnMethod) {\n return getBuiltIn('Promise').resolve(call(returnMethod, iterator)).then(function () {\n method(argument);\n }, function (error) {\n reject(error);\n });\n }\n } catch (error2) {\n return reject(error2);\n } method(argument);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar perform = require('../internals/perform');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Promise = getBuiltIn('Promise');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ASYNC_ITERATOR_HELPER = 'AsyncIteratorHelper';\nvar WRAP_FOR_VALID_ASYNC_ITERATOR = 'WrapForValidAsyncIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createAsyncIteratorProxyPrototype = function (IS_ITERATOR) {\n var IS_GENERATOR = !IS_ITERATOR;\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ASYNC_ITERATOR : ASYNC_ITERATOR_HELPER);\n\n var getStateOrEarlyExit = function (that) {\n var stateCompletion = perform(function () {\n return getInternalState(that);\n });\n\n var stateError = stateCompletion.error;\n var state = stateCompletion.value;\n\n if (stateError || (IS_GENERATOR && state.done)) {\n return { exit: true, value: stateError ? Promise.reject(state) : Promise.resolve(createIterResultObject(undefined, true)) };\n } return { exit: false, value: state };\n };\n\n return defineBuiltIns(create(AsyncIteratorPrototype), {\n next: function next() {\n var stateCompletion = getStateOrEarlyExit(this);\n var state = stateCompletion.value;\n if (stateCompletion.exit) return state;\n var handlerCompletion = perform(function () {\n return anObject(state.nextHandler(Promise));\n });\n var handlerError = handlerCompletion.error;\n var value = handlerCompletion.value;\n if (handlerError) state.done = true;\n return handlerError ? Promise.reject(value) : Promise.resolve(value);\n },\n 'return': function () {\n var stateCompletion = getStateOrEarlyExit(this);\n var state = stateCompletion.value;\n if (stateCompletion.exit) return state;\n state.done = true;\n var iterator = state.iterator;\n var returnMethod, result;\n var completion = perform(function () {\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n return getMethod(iterator, 'return');\n });\n returnMethod = result = completion.value;\n if (completion.error) return Promise.reject(result);\n if (returnMethod === undefined) return Promise.resolve(createIterResultObject(undefined, true));\n completion = perform(function () {\n return call(returnMethod, iterator);\n });\n result = completion.value;\n if (completion.error) return Promise.reject(result);\n return IS_ITERATOR ? Promise.resolve(result) : Promise.resolve(result).then(function (resolved) {\n anObject(resolved);\n return createIterResultObject(undefined, true);\n });\n }\n });\n};\n\nvar WrapForValidAsyncIteratorPrototype = createAsyncIteratorProxyPrototype(true);\nvar AsyncIteratorHelperPrototype = createAsyncIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(AsyncIteratorHelperPrototype, TO_STRING_TAG, 'Async Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n var AsyncIteratorProxy = function AsyncIterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ASYNC_ITERATOR : ASYNC_ITERATOR_HELPER;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n AsyncIteratorProxy.prototype = IS_ITERATOR ? WrapForValidAsyncIteratorPrototype : AsyncIteratorHelperPrototype;\n\n return AsyncIteratorProxy;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar map = require('../internals/async-iterator-map');\n\nvar callback = function (value, counter) {\n return [counter, value];\n};\n\n// `AsyncIterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function indexed() {\n return call(map, this, callback);\n};\n","'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\n// https://github.com/tc39/proposal-array-from-async\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar createMethod = function (TYPE) {\n var IS_TO_ARRAY = TYPE == 0;\n var IS_FOR_EACH = TYPE == 1;\n var IS_EVERY = TYPE == 2;\n var IS_SOME = TYPE == 3;\n return function (object, fn, target) {\n var record = getIteratorDirect(object);\n var Promise = getBuiltIn('Promise');\n var iterator = record.iterator;\n var next = record.next;\n var counter = 0;\n var MAPPING = fn !== undefined;\n if (MAPPING || !IS_TO_ARRAY) aCallable(fn);\n\n return new Promise(function (resolve, reject) {\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, reject, error, reject);\n };\n\n var loop = function () {\n try {\n if (MAPPING) try {\n doesNotExceedSafeInteger(counter);\n } catch (error5) { ifAbruptCloseAsyncIterator(error5); }\n Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n if (IS_TO_ARRAY) {\n target.length = counter;\n resolve(target);\n } else resolve(IS_SOME ? false : IS_EVERY || undefined);\n } else {\n var value = step.value;\n try {\n if (MAPPING) {\n var result = fn(value, counter);\n\n var handler = function ($result) {\n if (IS_FOR_EACH) {\n loop();\n } else if (IS_EVERY) {\n $result ? loop() : closeAsyncIteration(iterator, resolve, false, reject);\n } else if (IS_TO_ARRAY) {\n try {\n target[counter++] = $result;\n loop();\n } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n } else {\n $result ? closeAsyncIteration(iterator, resolve, IS_SOME || value, reject) : loop();\n }\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } else {\n target[counter++] = value;\n loop();\n }\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n } catch (error2) { reject(error2); }\n }, reject);\n } catch (error) { reject(error); }\n };\n\n loop();\n });\n };\n};\n\nmodule.exports = {\n toArray: createMethod(0),\n forEach: createMethod(1),\n every: createMethod(2),\n some: createMethod(3),\n find: createMethod(4)\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var mapper = state.mapper;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n };\n\n Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else {\n var value = step.value;\n try {\n var result = mapper(value, state.counter++);\n\n var handler = function (mapped) {\n resolve(createIterResultObject(mapped, false));\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error2) { ifAbruptCloseAsyncIterator(error2); }\n }\n } catch (error) { doneAndReject(error); }\n }, doneAndReject);\n });\n});\n\n// `AsyncIterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n mapper: aCallable(mapper)\n });\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared-store');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\nvar AsyncIterator = global.AsyncIterator;\nvar PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype;\nvar AsyncIteratorPrototype, prototype;\n\nif (PassedAsyncIteratorPrototype) {\n AsyncIteratorPrototype = PassedAsyncIteratorPrototype;\n} else if (isCallable(AsyncIterator)) {\n AsyncIteratorPrototype = AsyncIterator.prototype;\n} else if (shared[USE_FUNCTION_CONSTRUCTOR] || global[USE_FUNCTION_CONSTRUCTOR]) {\n try {\n // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax\n prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));\n if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;\n } catch (error) { /* empty */ }\n}\n\nif (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};\nelse if (IS_PURE) AsyncIteratorPrototype = create(AsyncIteratorPrototype);\n\nif (!isCallable(AsyncIteratorPrototype[ASYNC_ITERATOR])) {\n defineBuiltIn(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = AsyncIteratorPrototype;\n","var call = require('../internals/function-call');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\n\nmodule.exports = createAsyncIteratorProxy(function () {\n return call(this.next, this.iterator);\n}, true);\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\n\nvar push = [].push;\n\nmodule.exports = function from(source /* , mapFn, thisArg */) {\n var length = arguments.length;\n var mapFn = length > 1 ? arguments[1] : undefined;\n var mapping, array, n, boundFunction;\n aConstructor(this);\n mapping = mapFn !== undefined;\n if (mapping) aCallable(mapFn);\n if (isNullOrUndefined(source)) return new this();\n array = [];\n if (mapping) {\n n = 0;\n boundFunction = bind(mapFn, length > 2 ? arguments[2] : undefined);\n iterate(source, function (nextItem) {\n call(push, array, boundFunction(nextItem, n++));\n });\n } else {\n iterate(source, push, { that: array });\n }\n return new this(array);\n};\n","'use strict';\nvar arraySlice = require('../internals/array-slice');\n\n// https://tc39.github.io/proposal-setmap-offrom/\nmodule.exports = function of() {\n return new this(arraySlice(arguments));\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.map');\nrequire('../modules/es.weak-map');\nvar getBuiltIn = require('../internals/get-built-in');\nvar create = require('../internals/object-create');\nvar isObject = require('../internals/is-object');\n\nvar $Object = Object;\nvar $TypeError = TypeError;\nvar Map = getBuiltIn('Map');\nvar WeakMap = getBuiltIn('WeakMap');\n\nvar Node = function () {\n // keys\n this.object = null;\n this.symbol = null;\n // child nodes\n this.primitives = null;\n this.objectsByIndex = create(null);\n};\n\nNode.prototype.get = function (key, initializer) {\n return this[key] || (this[key] = initializer());\n};\n\nNode.prototype.next = function (i, it, IS_OBJECT) {\n var store = IS_OBJECT\n ? this.objectsByIndex[i] || (this.objectsByIndex[i] = new WeakMap())\n : this.primitives || (this.primitives = new Map());\n var entry = store.get(it);\n if (!entry) store.set(it, entry = new Node());\n return entry;\n};\n\nvar root = new Node();\n\nmodule.exports = function () {\n var active = root;\n var length = arguments.length;\n var i, it;\n // for prevent leaking, start from objects\n for (i = 0; i < length; i++) {\n if (isObject(it = arguments[i])) active = active.next(i, it, true);\n }\n if (this === $Object && active === root) throw $TypeError('Composite keys must contain a non-primitive component');\n for (i = 0; i < length; i++) {\n if (!isObject(it = arguments[i])) active = active.next(i, it, false);\n } return active;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","module.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","/* global Bun -- Deno case */\nmodule.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string';\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var global = require('../internals/global');\n\nmodule.exports = function (CONSTRUCTOR) {\n return global[CONSTRUCTOR].prototype;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function demethodize() {\n return uncurryThis(aCallable(this));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function from(obj) {\n var object = anObject(obj);\n var alreadyAsync = true;\n var method = getMethod(object, ASYNC_ITERATOR);\n var iterator;\n if (!isCallable(method)) {\n method = getIteratorMethod(object);\n alreadyAsync = false;\n }\n if (isCallable(method)) {\n iterator = call(method, object);\n } else {\n iterator = object;\n alreadyAsync = true;\n }\n anObject(iterator);\n return getIteratorDirect(alreadyAsync ? iterator : new AsyncFromSyncIterator(getIteratorDirect(iterator)));\n};\n","var call = require('../internals/function-call');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar anObject = require('../internals/an-object');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getMethod = require('../internals/get-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');\n\nmodule.exports = function (it, usingIterator) {\n var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR) : usingIterator;\n return method ? anObject(call(method, it)) : new AsyncFromSyncIterator(getIteratorDirect(getIterator(it)));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\n\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: aCallable(anObject(obj).next)\n };\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (obj) {\n var object = anObject(obj);\n var method = getIteratorMethod(object);\n return getIteratorDirect(anObject(isCallable(method) ? call(method, object) : object));\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) == 'Number' || classof(element) == 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, size, has, keys) {\n this.set = set;\n this.size = size;\n this.has = has;\n this.keys = keys;\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return anObject(call(this.keys, this.set));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize != numSize) throw $TypeError('Invalid size');\n return new SetRecord(\n obj,\n max(toIntegerOrInfinity(numSize), 0),\n aCallable(obj.has),\n aCallable(obj.keys)\n );\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass == 'BigInt64Array' || klass == 'BigUint64Array';\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar $Object = Object;\n\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) return false;\n var O = $Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n || hasOwn(Iterators, classof(O));\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar getInternalState = require('../internals/internal-state').get;\n\nmodule.exports = function isRawJSON(O) {\n if (!isObject(O)) return false;\n var state = getInternalState(O);\n return !!state && state.type === 'RawJSON';\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var call = require('../internals/function-call');\n\nmodule.exports = function (iterator, fn, $next) {\n var next = $next || iterator.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n try {\n var result = state.done ? undefined : state.nextHandler();\n return createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n iteratorClose(iterator, 'normal');\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar map = require('../internals/iterator-map');\n\nvar callback = function (value, counter) {\n return [counter, value];\n};\n\n// `Iterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function indexed() {\n return call(map, this, callback);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: aCallable(mapper)\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar Map = MapHelpers.Map;\nvar MapPrototype = MapHelpers.proto;\nvar forEach = uncurryThis(MapPrototype.forEach);\nvar entries = uncurryThis(MapPrototype.entries);\nvar next = entries(new Map()).next;\n\nmodule.exports = function (map, fn, interruptible) {\n return interruptible ? iterateSimple(entries(map), function (entry) {\n return fn(entry[1], entry[0]);\n }, next) : forEach(map, fn);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\n\nvar $TypeError = TypeError;\n\n// `Map.prototype.upsert` method\n// https://github.com/tc39/proposal-upsert\nmodule.exports = function upsert(key, updateFn /* , insertFn */) {\n var map = anObject(this);\n var get = aCallable(map.get);\n var has = aCallable(map.has);\n var set = aCallable(map.set);\n var insertFn = arguments.length > 2 ? arguments[2] : undefined;\n var value;\n if (!isCallable(updateFn) && !isCallable(insertFn)) {\n throw $TypeError('At least one callback required');\n }\n if (call(has, map, key)) {\n value = call(get, map, key);\n if (isCallable(updateFn)) {\n value = updateFn(value);\n call(set, map, key, value);\n }\n } else if (isCallable(insertFn)) {\n value = insertFn();\n call(set, map, key, value);\n } return value;\n};\n","var sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\n// `Math.fround` method implementation\n// https://tc39.es/ecma262/#sec-math.fround\n// eslint-disable-next-line es/no-math-fround -- safe\nmodule.exports = Math.fround || function fround(x) {\n var n = +x;\n var $abs = abs(n);\n var $sign = sign(n);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// `Math.scale` method implementation\n// https://rwaldron.github.io/proposal-math-extensions/\nmodule.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {\n var nx = +x;\n var nInLow = +inLow;\n var nInHigh = +inHigh;\n var nOutLow = +outLow;\n var nOutHigh = +outHigh;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (nx != nx || nInLow != nInLow || nInHigh != nInHigh || nOutLow != nOutLow || nOutHigh != nOutHigh) return NaN;\n if (nx === Infinity || nx === -Infinity) return nx;\n return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow;\n};\n","// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n == 0 || n != n ? n : n < 0 ? -1 : 1;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","/* eslint-disable es/no-json -- safe */\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var unsafeInt = '9007199254740993';\n var raw = JSON.rawJSON(unsafeInt);\n return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;\n});\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var $RangeError = RangeError;\n\nmodule.exports = function (it) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (it === it) return it;\n throw $RangeError('NaN is not allowed');\n};\n","var global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar InternalStateModule = require('../internals/internal-state');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar defineProperties = require('../internals/object-define-properties').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar INCORRECT_RANGE = 'Incorrect Iterator.range arguments';\nvar NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(NUMERIC_RANGE_ITERATOR);\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\n\nvar $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) {\n // TODO: Drop the first `typeof` check after removing lagacy methods in `core-js@4`\n if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) {\n throw $TypeError(INCORRECT_RANGE);\n }\n if (start === Infinity || start === -Infinity) {\n throw $RangeError(INCORRECT_RANGE);\n }\n var ifIncrease = end > start;\n var inclusiveEnd = false;\n var step;\n if (option === undefined) {\n step = undefined;\n } else if (isObject(option)) {\n step = option.step;\n inclusiveEnd = !!option.inclusive;\n } else if (typeof option == type) {\n step = option;\n } else {\n throw $TypeError(INCORRECT_RANGE);\n }\n if (isNullOrUndefined(step)) {\n step = ifIncrease ? one : -one;\n }\n if (typeof step != type) {\n throw $TypeError(INCORRECT_RANGE);\n }\n if (step === Infinity || step === -Infinity || (step === zero && start !== end)) {\n throw $RangeError(INCORRECT_RANGE);\n }\n // eslint-disable-next-line no-self-compare -- NaN check\n var hitsEnd = start != start || end != end || step != step || (end > start) !== (step > zero);\n setInternalState(this, {\n type: NUMERIC_RANGE_ITERATOR,\n start: start,\n end: end,\n step: step,\n inclusiveEnd: inclusiveEnd,\n hitsEnd: hitsEnd,\n currentCount: zero,\n zero: zero\n });\n if (!DESCRIPTORS) {\n this.start = start;\n this.end = end;\n this.step = step;\n this.inclusive = inclusiveEnd;\n }\n}, NUMERIC_RANGE_ITERATOR, function next() {\n var state = getInternalState(this);\n if (state.hitsEnd) return createIterResultObject(undefined, true);\n var start = state.start;\n var end = state.end;\n var step = state.step;\n var currentYieldingValue = start + (step * state.currentCount++);\n if (currentYieldingValue === end) state.hitsEnd = true;\n var inclusiveEnd = state.inclusiveEnd;\n var endCondition;\n if (end > start) {\n endCondition = inclusiveEnd ? currentYieldingValue > end : currentYieldingValue >= end;\n } else {\n endCondition = inclusiveEnd ? end > currentYieldingValue : end >= currentYieldingValue;\n }\n if (endCondition) {\n state.hitsEnd = true;\n return createIterResultObject(undefined, true);\n } return createIterResultObject(currentYieldingValue, false);\n});\n\nvar getter = function (fn) {\n return { get: fn, set: function () { /* empty */ }, configurable: true, enumerable: false };\n};\n\nif (DESCRIPTORS) {\n defineProperties($RangeIterator.prototype, {\n start: getter(function () {\n return getInternalState(this).start;\n }),\n end: getter(function () {\n return getInternalState(this).end;\n }),\n inclusive: getter(function () {\n return getInternalState(this).inclusiveEnd;\n }),\n step: getter(function () {\n return getInternalState(this).step;\n })\n });\n}\n\nmodule.exports = $RangeIterator;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar InternalStateModule = require('../internals/internal-state');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar hasOwn = require('../internals/has-own-property');\nvar objectKeys = require('../internals/object-keys');\nvar toObject = require('../internals/to-object');\n\nvar OBJECT_ITERATOR = 'Object Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(OBJECT_ITERATOR);\n\nmodule.exports = createIteratorConstructor(function ObjectIterator(source, mode) {\n var object = toObject(source);\n setInternalState(this, {\n type: OBJECT_ITERATOR,\n mode: mode,\n object: object,\n keys: objectKeys(object),\n index: 0\n });\n}, 'Object', function next() {\n var state = getInternalState(this);\n var keys = state.keys;\n while (true) {\n if (keys === null || state.index >= keys.length) {\n state.object = state.keys = null;\n return createIterResultObject(undefined, true);\n }\n var key = keys[state.index++];\n var object = state.object;\n if (!hasOwn(object, key)) continue;\n switch (state.mode) {\n case 'keys': return createIterResultObject(key, false);\n case 'values': return createIterResultObject(object[key], false);\n } /* entries */ return createIterResultObject([key, object[key]], false);\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $$OBSERVABLE = wellKnownSymbol('observable');\nvar NativeObservable = global.Observable;\nvar NativeObservablePrototype = NativeObservable && NativeObservable.prototype;\n\nmodule.exports = !isCallable(NativeObservable)\n || !isCallable(NativeObservable.from)\n || !isCallable(NativeObservable.of)\n || !isCallable(NativeObservablePrototype.subscribe)\n || !isCallable(NativeObservablePrototype[$$OBSERVABLE]);\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n '\\\\\"': '\"',\n '\\\\\\\\': '\\\\',\n '\\\\/': '/',\n '\\\\b': '\\b',\n '\\\\f': '\\f',\n '\\\\n': '\\n',\n '\\\\r': '\\r',\n '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n var unterminated = true;\n var value = '';\n while (i < source.length) {\n var chr = at(source, i);\n if (chr == '\\\\') {\n var twoChars = slice(source, i, i + 2);\n if (hasOwn(codePoints, twoChars)) {\n value += codePoints[twoChars];\n i += 2;\n } else if (twoChars == '\\\\u') {\n i += 2;\n var fourHexDigits = slice(source, i, i + 4);\n if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw $SyntaxError('Bad Unicode escape at: ' + i);\n value += fromCharCode($parseInt(fourHexDigits, 16));\n i += 4;\n } else throw $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n } else if (chr == '\"') {\n unterminated = false;\n i++;\n break;\n } else {\n if (exec(IS_C0_CONTROL_CODE, chr)) throw $SyntaxError('Bad control character in string literal at: ' + i);\n value += chr;\n i++;\n }\n }\n if (unterminated) throw $SyntaxError('Unterminated string at: ' + i);\n return { value: value, end: i };\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.map');\nrequire('../modules/es.weak-map');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar shared = require('../internals/shared');\n\nvar Map = getBuiltIn('Map');\nvar WeakMap = getBuiltIn('WeakMap');\nvar push = uncurryThis([].push);\n\nvar metadata = shared('metadata');\nvar store = metadata.store || (metadata.store = new WeakMap());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\n\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\n\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\n\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\n\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { push(keys, key); });\n return keys;\n};\n\nvar toMetadataKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\n\nmodule.exports = {\n store: store,\n getMap: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n toKey: toMetadataKey\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// `SameValueZero` abstract operation\n// https://tc39.es/ecma262/#sec-samevaluezero\nmodule.exports = function (x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y || x != x && y != y;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENGINE_IS_BUN = require('../internals/engine-is-bun');\nvar USER_AGENT = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = global.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () {\n var version = global.Bun.version.split('.');\n return version.length < 3 || version[0] == 0 && (version[1] < 3 || version[1] == 3 && version[2] == 0);\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\n};\n","var SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) remove(result, e);\n });\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype,\n $has: SetPrototype.has,\n $keys: SetPrototype.keys\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar nativeHas = SetHelpers.$has;\nvar nativeKeys = SetHelpers.$keys;\n\nvar isNativeSetRecord = function (record) {\n return record.has === nativeHas && record.keys === nativeKeys;\n};\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n // observable side effects\n if (!isNativeSetRecord(otherRec) && size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n\n if (size(result) < 2) return result;\n\n var disordered = result;\n result = new Set();\n iterateSet(O, function (e) {\n if (has(disordered, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple(keys(set), fn, next) : forEach(set, fn);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nvar createEmptySetLike = function () {\n return {\n size: 0,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nmodule.exports = function (name) {\n try {\n var Set = getBuiltIn('Set');\n new Set()[name](createEmptySetLike());\n return true;\n } catch (error) {\n return false;\n }\n};\n","var uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.28.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.28.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.cooked` method\n// https://tc39.es/proposal-string-cooked/\nmodule.exports = function cooked(template /* , ...substitutions */) {\n var cookedTemplate = toIndexedObject(template);\n var literalSegments = lengthOfArrayLike(cookedTemplate);\n if (!literalSegments) return '';\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (true) {\n var nextVal = cookedTemplate[i++];\n if (nextVal === undefined) throw $TypeError('Incorrect template');\n push(elements, toString(nextVal));\n if (i === literalSegments) return join(elements, '');\n if (i < argumentsLength) push(elements, toString(arguments[i]));\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","// adapted from https://github.com/jridgewell/string-dedent\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar fromCharCode = String.fromCharCode;\nvar fromCodePoint = getBuiltIn('String', 'fromCodePoint');\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar ZERO_CODE = 48;\nvar NINE_CODE = 57;\nvar LOWER_A_CODE = 97;\nvar LOWER_F_CODE = 102;\nvar UPPER_A_CODE = 65;\nvar UPPER_F_CODE = 70;\n\nvar isDigit = function (str, index) {\n var c = charCodeAt(str, index);\n return c >= ZERO_CODE && c <= NINE_CODE;\n};\n\nvar parseHex = function (str, index, end) {\n if (end >= str.length) return -1;\n var n = 0;\n for (; index < end; index++) {\n var c = hexToInt(charCodeAt(str, index));\n if (c === -1) return -1;\n n = n * 16 + c;\n }\n return n;\n};\n\nvar hexToInt = function (c) {\n if (c >= ZERO_CODE && c <= NINE_CODE) return c - ZERO_CODE;\n if (c >= LOWER_A_CODE && c <= LOWER_F_CODE) return c - LOWER_A_CODE + 10;\n if (c >= UPPER_A_CODE && c <= UPPER_F_CODE) return c - UPPER_A_CODE + 10;\n return -1;\n};\n\nmodule.exports = function (raw) {\n var out = '';\n var start = 0;\n // We need to find every backslash escape sequence, and cook the escape into a real char.\n var i = 0;\n var n;\n while ((i = stringIndexOf(raw, '\\\\', i)) > -1) {\n out += stringSlice(raw, start, i);\n // If the backslash is the last char of the string, then it was an invalid sequence.\n // This can't actually happen in a tagged template literal, but could happen if you manually\n // invoked the tag with an array.\n if (++i === raw.length) return;\n var next = charAt(raw, i++);\n switch (next) {\n // Escaped control codes need to be individually processed.\n case 'b':\n out += '\\b';\n break;\n case 't':\n out += '\\t';\n break;\n case 'n':\n out += '\\n';\n break;\n case 'v':\n out += '\\v';\n break;\n case 'f':\n out += '\\f';\n break;\n case 'r':\n out += '\\r';\n break;\n // Escaped line terminators just skip the char.\n case '\\r':\n // Treat `\\r\\n` as a single terminator.\n if (i < raw.length && charAt(raw, i) === '\\n') ++i;\n // break omitted\n case '\\n':\n case '\\u2028':\n case '\\u2029':\n break;\n // `\\0` is a null control char, but `\\0` followed by another digit is an illegal octal escape.\n case '0':\n if (isDigit(raw, i)) return;\n out += '\\0';\n break;\n // Hex escapes must contain 2 hex chars.\n case 'x':\n n = parseHex(raw, i, i + 2);\n if (n === -1) return;\n i += 2;\n out += fromCharCode(n);\n break;\n // Unicode escapes contain either 4 chars, or an unlimited number between `{` and `}`.\n // The hex value must not overflow 0x10FFFF.\n case 'u':\n if (i < raw.length && charAt(raw, i) === '{') {\n var end = stringIndexOf(raw, '}', ++i);\n if (end === -1) return;\n n = parseHex(raw, i, end);\n i = end + 1;\n } else {\n n = parseHex(raw, i, i + 4);\n i += 4;\n }\n if (n === -1 || n > 0x10FFFF) return;\n out += fromCodePoint(n);\n break;\n default:\n if (isDigit(next, 0)) return;\n out += next;\n }\n start = i;\n }\n return out + stringSlice(raw, start);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/engine-v8-version');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar structuredClone = global.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength != 0 || clone.byteLength != 8;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw $RangeError('Wrong length or index');\n return length;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw $RangeError('Wrong offset');\n return offset;\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isIterable = require('../internals/is-iterable');\nvar isObject = require('../internals/is-object');\n\nvar Set = getBuiltIn('Set');\n\nvar isSetLike = function (it) {\n return isObject(it)\n && typeof it.size == 'number'\n && isCallable(it.has)\n && isCallable(it.keys);\n};\n\n// fallback old -> new set methods proposal arguments\nmodule.exports = function (it) {\n if (isSetLike(it)) return it;\n if (isIterable(it)) return new Set(it);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray)));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-weak-map -- safe\nvar WeakMapPrototype = WeakMap.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-weak-map -- safe\n WeakMap: WeakMap,\n set: uncurryThis(WeakMapPrototype.set),\n get: uncurryThis(WeakMapPrototype.get),\n has: uncurryThis(WeakMapPrototype.has),\n remove: uncurryThis(WeakMapPrototype['delete'])\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-weak-set -- safe\nvar WeakSetPrototype = WeakSet.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-weak-set -- safe\n WeakSet: WeakSet,\n add: uncurryThis(WeakSetPrototype.add),\n has: uncurryThis(WeakSetPrototype.has),\n remove: uncurryThis(WeakSetPrototype['delete'])\n};\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n installErrorStack(result, WrappedError, result.stack, 2);\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar fails = require('../internals/fails');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar AGGREGATE_ERROR = 'AggregateError';\nvar $AggregateError = getBuiltIn(AGGREGATE_ERROR);\n\nvar FORCED = !fails(function () {\n return $AggregateError([1]).errors[0] !== 1;\n}) && fails(function () {\n return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7;\n});\n\n// https://github.com/tc39/proposal-error-cause\n$({ global: true, constructor: true, arity: 2, forced: FORCED }, {\n AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) {\n // eslint-disable-next-line no-unused-vars -- required for functions `.length`\n return function AggregateError(errors, message) { return apply(init, this, arguments); };\n }, FORCED, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf($Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n installErrorStack(that, $AggregateError, that.stack, 1);\n if (arguments.length > 2) installErrorCause(that, arguments[2]);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n AggregateError: $AggregateError\n});\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'Array', proto: true }, {\n at: function at(index) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n }\n});\n\naddToUnscopables('at');\n","'use strict';\nvar $ = require('../internals/export');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.findLastIndex` method\n// https://github.com/tc39/proposal-array-find-from-last\n$({ target: 'Array', proto: true }, {\n findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) {\n return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('findLastIndex');\n","'use strict';\nvar $ = require('../internals/export');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.findLast` method\n// https://github.com/tc39/proposal-array-find-from-last\n$({ target: 'Array', proto: true }, {\n findLast: function findLast(callbackfn /* , that = undefined */) {\n return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('findLast');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight');\n\n// `Array.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar $Array = Array;\n\n// `Array.prototype.toReversed` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n$({ target: 'Array', proto: true }, {\n toReversed: function toReversed() {\n return arrayToReversed(toIndexedObject(this), $Array);\n }\n});\n\naddToUnscopables('toReversed');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar getVirtual = require('../internals/entry-virtual');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar $Array = Array;\nvar sort = uncurryThis(getVirtual('Array').sort);\n\n// `Array.prototype.toSorted` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toSorted\n$({ target: 'Array', proto: true }, {\n toSorted: function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = toIndexedObject(this);\n var A = arrayFromConstructorAndList($Array, O);\n return sort(A, compareFn);\n }\n});\n\naddToUnscopables('toSorted');\n","'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $Array = Array;\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.toSpliced` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toSpliced\n$({ target: 'Array', proto: true }, {\n toSpliced: function toSpliced(start, deleteCount /* , ...items */) {\n var O = toIndexedObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var k = 0;\n var insertCount, actualDeleteCount, newLen, A;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = $Array(newLen);\n\n for (; k < actualStart; k++) A[k] = O[k];\n for (; k < actualStart + insertCount; k++) A[k] = arguments[k - actualStart + 2];\n for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];\n\n return A;\n }\n});\n\naddToUnscopables('toSpliced');\n","'use strict';\nvar $ = require('../internals/export');\nvar arrayWith = require('../internals/array-with');\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar $Array = Array;\n\n// `Array.prototype.with` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n$({ target: 'Array', proto: true }, {\n 'with': function (index, value) {\n return arrayWith(toIndexedObject(this), $Array, index, value);\n }\n});\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\n\n// `Object.hasOwn` method\n// https://github.com/tc39/proposal-accessible-object-hasownproperty\n$({ target: 'Object', stat: true }, {\n hasOwn: hasOwn\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = global.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar charAt = uncurryThis(''.charAt);\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-array-string-prototype-at -- safe\n return '𠮷'.at(-2) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'String', proto: true, forced: FORCED }, {\n at: function at(index) {\n var S = toString(requireObjectCoercible(this));\n var len = S.length;\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : charAt(S, k);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://github.com/tc39/proposal-array-find-from-last\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://github.com/tc39/proposal-array-find-from-last\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toSorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = aTypedArray(this);\n var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n return sort(A, compareFn);\n});\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\n","'use strict';\nvar FREEZING = require('../internals/freezing');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar fails = require('../internals/fails');\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\n\nvar $Object = Object;\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray = Array.isArray;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = $Object.isExtensible;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = $Object.isFrozen;\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar isSealed = $Object.isSealed;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = $Object.freeze;\n// eslint-disable-next-line es/no-object-seal -- safe\nvar seal = $Object.seal;\n\nvar FROZEN = {};\nvar SEALED = {};\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\nvar WeakMapPrototype = $WeakMap.prototype;\nvar nativeSet = uncurryThis(WeakMapPrototype.set);\n\n// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them\nvar hasMSEdgeFreezingBug = function () {\n return FREEZING && fails(function () {\n var frozenArray = freeze([]);\n nativeSet(new $WeakMap(), frozenArray, 1);\n return !isFrozen(frozenArray);\n });\n};\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP) if (IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n defineBuiltIns(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n// Chakra Edge frozen keys fix\n} else if (hasMSEdgeFreezingBug()) {\n defineBuiltIns(WeakMapPrototype, {\n set: function set(key, value) {\n var arrayIntegrityLevel;\n if (isArray(key)) {\n if (isFrozen(key)) arrayIntegrityLevel = FROZEN;\n else if (isSealed(key)) arrayIntegrityLevel = SEALED;\n }\n nativeSet(this, key, value);\n if (arrayIntegrityLevel == FROZEN) freeze(key);\n if (arrayIntegrityLevel == SEALED) seal(key);\n return this;\n }\n });\n}\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-map.constructor');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n configurable: true,\n get: function detached() {\n return isDetached(this);\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transferToFixedLength: function transferToFixedLength() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transfer: function transfer() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n }\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.filterOut` method\n// https://github.com/tc39/proposal-array-filtering\n$({ target: 'Array', proto: true, forced: true }, {\n filterOut: function filterOut(callbackfn /* , thisArg */) {\n return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('filterOut');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.filterReject` method\n// https://github.com/tc39/proposal-array-filtering\n$({ target: 'Array', proto: true, forced: true }, {\n filterReject: function filterReject(callbackfn /* , thisArg */) {\n return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('filterReject');\n","var $ = require('../internals/export');\nvar fromAsync = require('../internals/array-from-async');\n\n// `Array.fromAsync` method\n// https://github.com/tc39/proposal-array-from-async\n$({ target: 'Array', stat: true }, {\n fromAsync: fromAsync\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar $groupToMap = require('../internals/array-group-to-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Array.prototype.groupByToMap` method\n// https://github.com/tc39/proposal-array-grouping\n// https://bugs.webkit.org/show_bug.cgi?id=236541\n$({ target: 'Array', proto: true, name: 'groupToMap', forced: IS_PURE || !arrayMethodIsStrict('groupByToMap') }, {\n groupByToMap: $groupToMap\n});\n\naddToUnscopables('groupByToMap');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar $group = require('../internals/array-group');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\n// https://bugs.webkit.org/show_bug.cgi?id=236541\n$({ target: 'Array', proto: true, forced: !arrayMethodIsStrict('groupBy') }, {\n groupBy: function groupBy(callbackfn /* , thisArg */) {\n var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n return $group(this, callbackfn, thisArg);\n }\n});\n\naddToUnscopables('groupBy');\n","var $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar $groupToMap = require('../internals/array-group-to-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Array.prototype.groupToMap` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Array', proto: true, forced: IS_PURE }, {\n groupToMap: $groupToMap\n});\n\naddToUnscopables('groupToMap');\n","'use strict';\nvar $ = require('../internals/export');\nvar $group = require('../internals/array-group');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.group` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Array', proto: true }, {\n group: function group(callbackfn /* , thisArg */) {\n var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n return $group(this, callbackfn, thisArg);\n }\n});\n\naddToUnscopables('group');\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = Object.isFrozen;\n\nvar isFrozenStringArray = function (array, allowUndefined) {\n if (!isFrozen || !isArray(array) || !isFrozen(array)) return false;\n var index = 0;\n var length = array.length;\n var element;\n while (index < length) {\n element = array[index++];\n if (!(typeof element == 'string' || (allowUndefined && element === undefined))) {\n return false;\n }\n } return length !== 0;\n};\n\n// `Array.isTemplateObject` method\n// https://github.com/tc39/proposal-array-is-template-object\n$({ target: 'Array', stat: true, sham: true, forced: true }, {\n isTemplateObject: function isTemplateObject(value) {\n if (!isFrozenStringArray(value, true)) return false;\n var raw = value.raw;\n return raw.length === value.length && isFrozenStringArray(raw, false);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = require('../internals/descriptors');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\n// `Array.prototype.lastIndex` getter\n// https://github.com/keithamus/proposal-array-last\nif (DESCRIPTORS) {\n defineBuiltInAccessor(Array.prototype, 'lastIndex', {\n configurable: true,\n get: function lastIndex() {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n return len == 0 ? 0 : len - 1;\n }\n });\n\n addToUnscopables('lastIndex');\n}\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = require('../internals/descriptors');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\n// `Array.prototype.lastIndex` accessor\n// https://github.com/keithamus/proposal-array-last\nif (DESCRIPTORS) {\n defineBuiltInAccessor(Array.prototype, 'lastItem', {\n configurable: true,\n get: function lastItem() {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n return len == 0 ? undefined : O[len - 1];\n },\n set: function lastItem(value) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n return O[len == 0 ? 0 : len - 1] = value;\n }\n });\n\n addToUnscopables('lastItem');\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar uniqueBy = require('../internals/array-unique-by');\n\n// `Array.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\n$({ target: 'Array', proto: true, forced: true }, {\n uniqueBy: uniqueBy\n});\n\naddToUnscopables('uniqueBy');\n","'use strict';\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aCallable = require('../internals/a-callable');\nvar anInstance = require('../internals/an-instance');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar addDisposableResource = require('../internals/add-disposable-resource');\n\nvar Promise = getBuiltIn('Promise');\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar ASYNC_DISPOSABLE_STACK = 'AsyncDisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getAsyncDisposableStackInternalState = InternalStateModule.getterFor(ASYNC_DISPOSABLE_STACK);\n\nvar HINT = 'async-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar ALREADY_DISPOSED = ASYNC_DISPOSABLE_STACK + ' already disposed';\n\nvar $AsyncDisposableStack = function AsyncDisposableStack() {\n setInternalState(anInstance(this, AsyncDisposableStackPrototype), {\n type: ASYNC_DISPOSABLE_STACK,\n state: PENDING,\n stack: []\n });\n\n if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar AsyncDisposableStackPrototype = $AsyncDisposableStack.prototype;\n\ndefineBuiltIns(AsyncDisposableStackPrototype, {\n disposeAsync: function disposeAsync() {\n var asyncDisposableStack = this;\n return new Promise(function (resolve, reject) {\n var internalState = getAsyncDisposableStackInternalState(asyncDisposableStack);\n if (internalState.state == DISPOSED) return resolve(undefined);\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) asyncDisposableStack.disposed = true;\n var stack = internalState.stack;\n var i = stack.length;\n var thrown = false;\n var suppressed;\n\n var handleError = function (result) {\n if (thrown) {\n suppressed = new SuppressedError(result, suppressed);\n } else {\n thrown = true;\n suppressed = result;\n }\n\n loop();\n };\n\n var loop = function () {\n if (i) {\n var disposeMethod = stack[--i];\n stack[i] = null;\n try {\n Promise.resolve(disposeMethod()).then(loop, handleError);\n } catch (error) {\n handleError(error);\n }\n } else {\n internalState.stack = null;\n thrown ? reject(suppressed) : resolve(undefined);\n }\n };\n\n loop();\n });\n },\n use: function use(value) {\n var internalState = getAsyncDisposableStackInternalState(this);\n if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);\n addDisposableResource(internalState, value, HINT);\n return value;\n },\n adopt: function adopt(value, onDispose) {\n var internalState = getAsyncDisposableStackInternalState(this);\n if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, function () {\n onDispose(value);\n });\n return value;\n },\n defer: function defer(onDispose) {\n var internalState = getAsyncDisposableStackInternalState(this);\n if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, onDispose);\n },\n move: function move() {\n var internalState = getAsyncDisposableStackInternalState(this);\n if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);\n var newAsyncDisposableStack = new $AsyncDisposableStack();\n getAsyncDisposableStackInternalState(newAsyncDisposableStack).stack = internalState.stack;\n internalState.stack = [];\n return newAsyncDisposableStack;\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(AsyncDisposableStackPrototype, 'disposed', {\n configurable: true,\n get: function disposed() {\n return getAsyncDisposableStackInternalState(this).state == DISPOSED;\n }\n});\n\ndefineBuiltIn(AsyncDisposableStackPrototype, ASYNC_DISPOSE, AsyncDisposableStackPrototype.disposeAsync, { name: 'disposeAsync' });\ndefineBuiltIn(AsyncDisposableStackPrototype, TO_STRING_TAG, ASYNC_DISPOSABLE_STACK, { nonWritable: true });\n\n$({ global: true, constructor: true, forced: true }, {\n AsyncDisposableStack: $AsyncDisposableStack\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/async-iterator-indexed');\n\n// `AsyncIterator.prototype.asIndexedPairs` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'AsyncIterator', name: 'indexed', proto: true, real: true, forced: true }, {\n asIndexedPairs: indexed\n});\n","'use strict';\n// https://github.com/tc39/proposal-async-explicit-resource-management\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getMethod = require('../internals/get-method');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\n\nvar ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');\nvar Promise = getBuiltIn('Promise');\n\nif (!hasOwn(AsyncIteratorPrototype, ASYNC_DISPOSE)) {\n defineBuiltIn(AsyncIteratorPrototype, ASYNC_DISPOSE, function () {\n var O = this;\n return new Promise(function (resolve, reject) {\n var $return = getMethod(O, 'return');\n if ($return) {\n Promise.resolve(call($return, O)).then(function () {\n resolve(undefined);\n }, reject);\n } else resolve(undefined);\n });\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar anInstance = require('../internals/an-instance');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar IS_PURE = require('../internals/is-pure');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar AsyncIteratorConstructor = function AsyncIterator() {\n anInstance(this, AsyncIteratorPrototype);\n};\n\nAsyncIteratorConstructor.prototype = AsyncIteratorPrototype;\n\nif (!hasOwn(AsyncIteratorPrototype, TO_STRING_TAG)) {\n createNonEnumerableProperty(AsyncIteratorPrototype, TO_STRING_TAG, 'AsyncIterator');\n}\n\nif (IS_PURE || !hasOwn(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPrototype.constructor === Object) {\n createNonEnumerableProperty(AsyncIteratorPrototype, 'constructor', AsyncIteratorConstructor);\n}\n\n// `AsyncIterator` constructor\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ global: true, constructor: true, forced: IS_PURE }, {\n AsyncIterator: AsyncIteratorConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var loop = function () {\n try {\n Promise.resolve(anObject(call(state.next, state.iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else if (state.remaining) {\n state.remaining--;\n loop();\n } else resolve(createIterResultObject(step.value, false));\n } catch (err) { doneAndReject(err); }\n }, doneAndReject);\n } catch (error) { doneAndReject(error); }\n };\n\n loop();\n });\n});\n\n// `AsyncIterator.prototype.drop` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n drop: function drop(limit) {\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n remaining: toPositiveInteger(notANaN(+limit))\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/async-iterator-iteration').every;\n\n// `AsyncIterator.prototype.every` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n every: function every(predicate) {\n return $every(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var predicate = state.predicate;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n };\n\n var loop = function () {\n try {\n Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else {\n var value = step.value;\n try {\n var result = predicate(value, state.counter++);\n\n var handler = function (selected) {\n selected ? resolve(createIterResultObject(value, false)) : loop();\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n } catch (error2) { doneAndReject(error2); }\n }, doneAndReject);\n } catch (error) { doneAndReject(error); }\n };\n\n loop();\n });\n});\n\n// `AsyncIterator.prototype.filter` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n filter: function filter(predicate) {\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n predicate: aCallable(predicate)\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/async-iterator-iteration').find;\n\n// `AsyncIterator.prototype.find` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n find: function find(predicate) {\n return $find(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar getAsyncIteratorFlattenable = require('../internals/get-async-iterator-flattenable');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var mapper = state.mapper;\n\n return new Promise(function (resolve, reject) {\n var doneAndReject = function (error) {\n state.done = true;\n reject(error);\n };\n\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);\n };\n\n var outerLoop = function () {\n try {\n Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n state.done = true;\n resolve(createIterResultObject(undefined, true));\n } else {\n var value = step.value;\n try {\n var result = mapper(value, state.counter++);\n\n var handler = function (mapped) {\n try {\n state.inner = getAsyncIteratorFlattenable(mapped);\n innerLoop();\n } catch (error4) { ifAbruptCloseAsyncIterator(error4); }\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n } catch (error2) { doneAndReject(error2); }\n }, doneAndReject);\n } catch (error) { doneAndReject(error); }\n };\n\n var innerLoop = function () {\n var inner = state.inner;\n if (inner) {\n try {\n Promise.resolve(anObject(call(inner.next, inner.iterator))).then(function (result) {\n try {\n if (anObject(result).done) {\n state.inner = null;\n outerLoop();\n } else resolve(createIterResultObject(result.value, false));\n } catch (error1) { ifAbruptCloseAsyncIterator(error1); }\n }, ifAbruptCloseAsyncIterator);\n } catch (error) { ifAbruptCloseAsyncIterator(error); }\n } else outerLoop();\n };\n\n innerLoop();\n });\n});\n\n// `AsyncIterator.prototype.flaMap` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n flatMap: function flatMap(mapper) {\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n mapper: aCallable(mapper),\n inner: null\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $forEach = require('../internals/async-iterator-iteration').forEach;\n\n// `AsyncIterator.prototype.forEach` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n forEach: function forEach(fn) {\n return $forEach(this, fn);\n }\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getAsyncIteratorFlattenable = require('../internals/get-async-iterator-flattenable');\nvar AsyncIteratorPrototype = require('../internals/async-iterator-prototype');\nvar WrapAsyncIterator = require('../internals/async-iterator-wrap');\n\n// `AsyncIterator.from` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', stat: true }, {\n from: function from(O) {\n var iteratorRecord = getAsyncIteratorFlattenable(typeof O == 'string' ? toObject(O) : O);\n return isPrototypeOf(AsyncIteratorPrototype, iteratorRecord.iterator)\n ? iteratorRecord.iterator\n : new WrapAsyncIterator(iteratorRecord);\n }\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/async-iterator-indexed');\n\n// `AsyncIterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true, forced: true }, {\n indexed: indexed\n});\n","var $ = require('../internals/export');\nvar map = require('../internals/async-iterator-map');\n\n// `AsyncIterator.prototype.map` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n map: map\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar closeAsyncIteration = require('../internals/async-iterator-close');\n\nvar Promise = getBuiltIn('Promise');\nvar $TypeError = TypeError;\n\n// `AsyncIterator.prototype.reduce` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n var record = getIteratorDirect(this);\n var iterator = record.iterator;\n var next = record.next;\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n aCallable(reducer);\n\n return new Promise(function (resolve, reject) {\n var ifAbruptCloseAsyncIterator = function (error) {\n closeAsyncIteration(iterator, reject, error, reject);\n };\n\n var loop = function () {\n try {\n Promise.resolve(anObject(call(next, iterator))).then(function (step) {\n try {\n if (anObject(step).done) {\n noInitial ? reject($TypeError('Reduce of empty iterator with no initial value')) : resolve(accumulator);\n } else {\n var value = step.value;\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n loop();\n } else try {\n var result = reducer(accumulator, value, counter);\n\n var handler = function ($result) {\n accumulator = $result;\n loop();\n };\n\n if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);\n else handler(result);\n } catch (error3) { ifAbruptCloseAsyncIterator(error3); }\n }\n counter++;\n } catch (error2) { reject(error2); }\n }, reject);\n } catch (error) { reject(error); }\n };\n\n loop();\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/async-iterator-iteration').some;\n\n// `AsyncIterator.prototype.some` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n some: function some(predicate) {\n return $some(this, predicate);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {\n var state = this;\n var iterator = state.iterator;\n var returnMethod;\n\n if (!state.remaining--) {\n var resultDone = createIterResultObject(undefined, true);\n state.done = true;\n returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return Promise.resolve(call(returnMethod, iterator, undefined)).then(function () {\n return resultDone;\n });\n }\n return resultDone;\n } return Promise.resolve(call(state.next, iterator)).then(function (step) {\n if (anObject(step).done) {\n state.done = true;\n return createIterResultObject(undefined, true);\n } return createIterResultObject(step.value, false);\n }).then(null, function (error) {\n state.done = true;\n throw error;\n });\n});\n\n// `AsyncIterator.prototype.take` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n take: function take(limit) {\n return new AsyncIteratorProxy(getIteratorDirect(this), {\n remaining: toPositiveInteger(notANaN(+limit))\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $toArray = require('../internals/async-iterator-iteration').toArray;\n\n// `AsyncIterator.prototype.toArray` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'AsyncIterator', proto: true, real: true }, {\n toArray: function toArray() {\n return $toArray(this, undefined, []);\n }\n});\n","'use strict';\n/* eslint-disable es/no-bigint -- safe */\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\n// `BigInt.range` method\n// https://github.com/tc39/proposal-Number.range\n// TODO: Remove from `core-js@4`\nif (typeof BigInt == 'function') {\n $({ target: 'BigInt', stat: true, forced: true }, {\n range: function range(start, end, option) {\n return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1));\n }\n });\n}\n","var $ = require('../internals/export');\nvar apply = require('../internals/function-apply');\nvar getCompositeKeyNode = require('../internals/composite-key');\nvar getBuiltIn = require('../internals/get-built-in');\nvar create = require('../internals/object-create');\n\nvar $Object = Object;\n\nvar initializer = function () {\n var freeze = getBuiltIn('Object', 'freeze');\n return freeze ? freeze(create(null)) : create(null);\n};\n\n// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey\n$({ global: true, forced: true }, {\n compositeKey: function compositeKey() {\n return apply(getCompositeKeyNode, $Object, arguments).get('object', initializer);\n }\n});\n","var $ = require('../internals/export');\nvar getCompositeKeyNode = require('../internals/composite-key');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\n\n// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey\n$({ global: true, forced: true }, {\n compositeSymbol: function compositeSymbol() {\n if (arguments.length == 1 && typeof arguments[0] == 'string') return getBuiltIn('Symbol')['for'](arguments[0]);\n return apply(getCompositeKeyNode, null, arguments).get('symbol', getBuiltIn('Symbol'));\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-explicit-resource-management\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aCallable = require('../internals/a-callable');\nvar anInstance = require('../internals/an-instance');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar addDisposableResource = require('../internals/add-disposable-resource');\n\nvar SuppressedError = getBuiltIn('SuppressedError');\nvar $ReferenceError = ReferenceError;\n\nvar DISPOSE = wellKnownSymbol('dispose');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar DISPOSABLE_STACK = 'DisposableStack';\nvar setInternalState = InternalStateModule.set;\nvar getDisposableStackInternalState = InternalStateModule.getterFor(DISPOSABLE_STACK);\n\nvar HINT = 'sync-dispose';\nvar DISPOSED = 'disposed';\nvar PENDING = 'pending';\n\nvar ALREADY_DISPOSED = DISPOSABLE_STACK + ' already disposed';\n\nvar $DisposableStack = function DisposableStack() {\n setInternalState(anInstance(this, DisposableStackPrototype), {\n type: DISPOSABLE_STACK,\n state: PENDING,\n stack: []\n });\n\n if (!DESCRIPTORS) this.disposed = false;\n};\n\nvar DisposableStackPrototype = $DisposableStack.prototype;\n\ndefineBuiltIns(DisposableStackPrototype, {\n dispose: function dispose() {\n var internalState = getDisposableStackInternalState(this);\n if (internalState.state == DISPOSED) return;\n internalState.state = DISPOSED;\n if (!DESCRIPTORS) this.disposed = true;\n var stack = internalState.stack;\n var i = stack.length;\n var thrown = false;\n var suppressed;\n while (i) {\n var disposeMethod = stack[--i];\n stack[i] = null;\n try {\n disposeMethod();\n } catch (errorResult) {\n if (thrown) {\n suppressed = new SuppressedError(errorResult, suppressed);\n } else {\n thrown = true;\n suppressed = errorResult;\n }\n }\n }\n internalState.stack = null;\n if (thrown) throw suppressed;\n },\n use: function use(value) {\n var internalState = getDisposableStackInternalState(this);\n if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);\n addDisposableResource(internalState, value, HINT);\n return value;\n },\n adopt: function adopt(value, onDispose) {\n var internalState = getDisposableStackInternalState(this);\n if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, function () {\n onDispose(value);\n });\n return value;\n },\n defer: function defer(onDispose) {\n var internalState = getDisposableStackInternalState(this);\n if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);\n aCallable(onDispose);\n addDisposableResource(internalState, undefined, HINT, onDispose);\n },\n move: function move() {\n var internalState = getDisposableStackInternalState(this);\n if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);\n var newDisposableStack = new $DisposableStack();\n getDisposableStackInternalState(newDisposableStack).stack = internalState.stack;\n internalState.stack = [];\n return newDisposableStack;\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(DisposableStackPrototype, 'disposed', {\n configurable: true,\n get: function disposed() {\n return getDisposableStackInternalState(this).state == DISPOSED;\n }\n});\n\ndefineBuiltIn(DisposableStackPrototype, DISPOSE, DisposableStackPrototype.dispose, { name: 'dispose' });\ndefineBuiltIn(DisposableStackPrototype, TO_STRING_TAG, DISPOSABLE_STACK, { nonWritable: true });\n\n$({ global: true, constructor: true }, {\n DisposableStack: $DisposableStack\n});\n","var $ = require('../internals/export');\nvar demethodize = require('../internals/function-demethodize');\n\n// `Function.prototype.demethodize` method\n// https://github.com/js-choi/proposal-function-demethodize\n$({ target: 'Function', proto: true, forced: true }, {\n demethodize: demethodize\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar $isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar classRegExp = /^\\s*class\\b/;\nvar exec = uncurryThis(classRegExp.exec);\n\nvar isClassConstructor = function (argument) {\n try {\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n if (!DESCRIPTORS || !exec(classRegExp, inspectSource(argument))) return false;\n } catch (error) { /* empty */ }\n var prototype = getOwnPropertyDescriptor(argument, 'prototype');\n return !!prototype && hasOwn(prototype, 'writable') && !prototype.writable;\n};\n\n// `Function.isCallable` method\n// https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md\n$({ target: 'Function', stat: true, sham: true, forced: true }, {\n isCallable: function isCallable(argument) {\n return $isCallable(argument) && !isClassConstructor(argument);\n }\n});\n","var $ = require('../internals/export');\nvar isConstructor = require('../internals/is-constructor');\n\n// `Function.isConstructor` method\n// https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md\n$({ target: 'Function', stat: true, forced: true }, {\n isConstructor: isConstructor\n});\n","var $ = require('../internals/export');\nvar demethodize = require('../internals/function-demethodize');\n\n// `Function.prototype.unThis` method\n// https://github.com/js-choi/proposal-function-demethodize\n// TODO: Remove from `core-js@4`\n$({ target: 'Function', proto: true, forced: true, name: 'demethodize' }, {\n unThis: demethodize\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/iterator-indexed');\n\n// `Iterator.prototype.asIndexedPairs` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', name: 'indexed', proto: true, real: true, forced: true }, {\n asIndexedPairs: indexed\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar IS_PURE = require('../internals/is-pure');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar NativeIterator = global.Iterator;\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) {\n createNonEnumerableProperty(IteratorPrototype, TO_STRING_TAG, 'Iterator');\n}\n\nif (FORCED || !hasOwn(IteratorPrototype, 'constructor') || IteratorPrototype.constructor === Object) {\n createNonEnumerableProperty(IteratorPrototype, 'constructor', IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://github.com/tc39/proposal-iterator-helpers\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n","'use strict';\n// https://github.com/tc39/proposal-explicit-resource-management\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar getMethod = require('../internals/get-method');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\n\nvar DISPOSE = wellKnownSymbol('dispose');\n\nif (!hasOwn(IteratorPrototype, DISPOSE)) {\n defineBuiltIn(IteratorPrototype, DISPOSE, function () {\n var $return = getMethod(this, 'return');\n if ($return) call($return, this);\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var next = this.next;\n var result, done;\n while (this.remaining) {\n this.remaining--;\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n }\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.drop` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n drop: function drop(limit) {\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: toPositiveInteger(notANaN(+limit))\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n every: function every(predicate) {\n var record = getIteratorDirect(this);\n var counter = 0;\n aCallable(predicate);\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n filter: function filter(predicate) {\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: aCallable(predicate)\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.find` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n find: function find(predicate) {\n var record = getIteratorDirect(this);\n var counter = 0;\n aCallable(predicate);\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop(value);\n }, { IS_RECORD: true, INTERRUPTED: true }).result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var mapper = this.mapper;\n var result, inner;\n\n while (true) {\n if (inner = this.inner) try {\n result = anObject(call(inner.next, inner.iterator));\n if (!result.done) return result.value;\n this.inner = null;\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n\n result = anObject(call(this.next, iterator));\n\n if (this.done = !!result.done) return;\n\n try {\n this.inner = getIteratorFlattenable(mapper(result.value, this.counter++));\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n }\n});\n\n// `Iterator.prototype.flatMap` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n flatMap: function flatMap(mapper) {\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: aCallable(mapper),\n inner: null\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.forEach` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n forEach: function forEach(fn) {\n var record = getIteratorDirect(this);\n var counter = 0;\n aCallable(fn);\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n","var $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\n\nvar IteratorProxy = createIteratorProxy(function () {\n return call(this.next, this.iterator);\n}, true);\n\n// `Iterator.from` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', stat: true }, {\n from: function from(O) {\n var iteratorRecord = getIteratorFlattenable(typeof O == 'string' ? toObject(O) : O);\n return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator)\n ? iteratorRecord.iterator\n : new IteratorProxy(iteratorRecord);\n }\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar indexed = require('../internals/iterator-indexed');\n\n// `Iterator.prototype.indexed` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: true }, {\n indexed: indexed\n});\n","var $ = require('../internals/export');\nvar map = require('../internals/iterator-map');\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n map: map\n});\n","'use strict';\n/* eslint-disable es/no-bigint -- safe */\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\nvar $TypeError = TypeError;\n\n// `Iterator.range` method\n// https://github.com/tc39/proposal-Number.range\n$({ target: 'Iterator', stat: true, forced: true }, {\n range: function range(start, end, option) {\n if (typeof start == 'number') return new NumericRangeIterator(start, end, option, 'number', 0, 1);\n if (typeof start == 'bigint') return new NumericRangeIterator(start, end, option, 'bigint', BigInt(0), BigInt(1));\n throw $TypeError('Incorrect Iterator.range arguments');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar $TypeError = TypeError;\n\n// `Iterator.prototype.reduce` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n var record = getIteratorDirect(this);\n aCallable(reducer);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n some: function some(predicate) {\n var record = getIteratorDirect(this);\n var counter = 0;\n aCallable(predicate);\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n if (!this.remaining--) {\n this.done = true;\n return iteratorClose(iterator, 'normal', undefined);\n }\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.take` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n take: function take(limit) {\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: toPositiveInteger(notANaN(+limit))\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar push = [].push;\n\n// `Iterator.prototype.toArray` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n toArray: function toArray() {\n var result = [];\n iterate(getIteratorDirect(this), push, { that: result, IS_RECORD: true });\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');\nvar WrapAsyncIterator = require('../internals/async-iterator-wrap');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.toAsync` method\n// https://github.com/tc39/proposal-async-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n toAsync: function toAsync() {\n return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(this))));\n }\n});\n","var $ = require('../internals/export');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\nvar isRawJSON = require('../internals/is-raw-json');\n\n// `JSON.parse` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n isRawJSON: isRawJSON\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar parseJSONString = require('../internals/parse-json-string');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar JSON = global.JSON;\nvar Number = global.Number;\nvar SyntaxError = global.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^(-|\\d)$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n source = toString(source);\n var context = new Context(source, 0, '');\n var root = context.parse();\n var value = root.value;\n var endIndex = context.skip(IS_WHITESPACE, root.end);\n if (endIndex < source.length) {\n throw SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n }\n return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n var val = holder[name];\n var unmodified = node && val === node.value;\n var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n var elementRecordsLen, keys, len, i, P;\n if (isObject(val)) {\n var nodeIsArray = isArray(val);\n var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n if (nodeIsArray) {\n elementRecordsLen = nodes.length;\n len = lengthOfArrayLike(val);\n for (i = 0; i < len; i++) {\n internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n }\n } else {\n keys = enumerableOwnProperties(val);\n len = lengthOfArrayLike(keys);\n for (i = 0; i < len; i++) {\n P = keys[i];\n internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n }\n }\n }\n return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n if (DESCRIPTORS) {\n var descriptor = getOwnPropertyDescriptor(object, key);\n if (descriptor && !descriptor.configurable) return;\n }\n if (value === undefined) delete object[key];\n else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n this.value = value;\n this.end = end;\n this.source = source;\n this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n this.source = source;\n this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n fork: function (nextIndex) {\n return new Context(this.source, nextIndex);\n },\n parse: function () {\n var source = this.source;\n var i = this.skip(IS_WHITESPACE, this.index);\n var fork = this.fork(i);\n var chr = at(source, i);\n var result;\n if (exec(IS_NUMBER_START, chr)) result = fork.number();\n else switch (chr) {\n case '{':\n result = fork.object();\n break;\n case '[':\n result = fork.array();\n break;\n case '\"':\n result = fork.string();\n break;\n case 't':\n result = fork.keyword(true);\n break;\n case 'f':\n result = fork.keyword(false);\n break;\n case 'n':\n result = fork.keyword(null);\n break;\n default:\n throw SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n }\n return result;\n },\n node: function (type, value, start, end, nodes) {\n return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n },\n object: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectKeypair = false;\n var object = {};\n var nodes = {};\n while (i < source.length) {\n i = this.until(['\"', '}'], i);\n if (at(source, i) == '}' && !expectKeypair) {\n i++;\n break;\n }\n // Parsing the key\n var result = this.fork(i).string();\n var key = result.value;\n i = result.end;\n i = this.until([':'], i) + 1;\n // Parsing value\n i = this.skip(IS_WHITESPACE, i);\n result = this.fork(i).parse();\n createProperty(nodes, key, result);\n createProperty(object, key, result.value);\n i = this.until([',', '}'], result.end);\n var chr = at(source, i);\n if (chr == ',') {\n expectKeypair = true;\n i++;\n } else if (chr == '}') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, object, this.index, i, nodes);\n },\n array: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectElement = false;\n var array = [];\n var nodes = [];\n while (i < source.length) {\n i = this.skip(IS_WHITESPACE, i);\n if (at(source, i) == ']' && !expectElement) {\n i++;\n break;\n }\n var result = this.fork(i).parse();\n push(nodes, result);\n push(array, result.value);\n i = this.until([',', ']'], result.end);\n if (at(source, i) == ',') {\n expectElement = true;\n i++;\n } else if (at(source, i) == ']') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, array, this.index, i, nodes);\n },\n string: function () {\n var index = this.index;\n var parsed = parseJSONString(this.source, this.index + 1);\n return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n },\n number: function () {\n var source = this.source;\n var startIndex = this.index;\n var i = startIndex;\n if (at(source, i) == '-') i++;\n if (at(source, i) == '0') i++;\n else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, ++i);\n else throw SyntaxError('Failed to parse number at: ' + i);\n if (at(source, i) == '.') i = this.skip(IS_DIGIT, ++i);\n if (at(source, i) == 'e' || at(source, i) == 'E') {\n i++;\n if (at(source, i) == '+' || at(source, i) == '-') i++;\n var exponentStartIndex = i;\n i = this.skip(IS_DIGIT, i);\n if (exponentStartIndex == i) throw SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n }\n return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n },\n keyword: function (value) {\n var keyword = '' + value;\n var index = this.index;\n var endIndex = index + keyword.length;\n if (slice(this.source, index, endIndex) != keyword) throw SyntaxError('Failed to parse value at: ' + index);\n return this.node(PRIMITIVE, value, index, endIndex);\n },\n skip: function (regex, i) {\n var source = this.source;\n for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n return i;\n },\n until: function (array, i) {\n i = this.skip(IS_WHITESPACE, i);\n var chr = at(this.source, i);\n for (var j = 0; j < array.length; j++) if (array[j] == chr) return i;\n throw SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n var unsafeInt = '9007199254740993';\n var source;\n nativeParse(unsafeInt, function (key, value, context) {\n source = context.source;\n });\n return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n // Safari 9 bug\n return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n parse: function parse(text, reviver) {\n return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar isRawJSON = require('../internals/is-raw-json');\nvar toString = require('../internals/to-string');\nvar createProperty = require('../internals/create-property');\nvar parseJSONString = require('../internals/parse-json-string');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar uid = require('../internals/uid');\nvar setInternalState = require('../internals/internal-state').set;\n\nvar $String = String;\nvar $SyntaxError = SyntaxError;\nvar parse = getBuiltIn('JSON', 'parse');\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar create = getBuiltIn('Object', 'create');\nvar freeze = getBuiltIn('Object', 'freeze');\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar MARK = uid();\nvar MARK_LENGTH = MARK.length;\nvar ERROR_MESSAGE = 'Unacceptable as raw JSON';\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\n// `JSON.parse` method\n// https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {\n rawJSON: function rawJSON(text) {\n var jsonString = toString(text);\n if (jsonString == '' || exec(IS_WHITESPACE, at(jsonString, 0)) || exec(IS_WHITESPACE, at(jsonString, jsonString.length - 1))) {\n throw $SyntaxError(ERROR_MESSAGE);\n }\n var parsed = parse(jsonString);\n if (typeof parsed == 'object' && parsed !== null) throw $SyntaxError(ERROR_MESSAGE);\n var obj = create(null);\n setInternalState(obj, { type: 'RawJSON' });\n createProperty(obj, 'rawJSON', jsonString);\n return FREEZING ? freeze(obj) : obj;\n }\n});\n\n// `JSON.stringify` method\n// https://tc39.es/ecma262/#sec-json.stringify\n// https://github.com/tc39/proposal-json-parse-with-source\nif ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: !NATIVE_RAW_JSON }, {\n stringify: function stringify(text, replacer, space) {\n var replacerFunction = getReplacerFunction(replacer);\n var rawStrings = [];\n\n var json = $stringify(text, function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value;\n return isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v;\n }, space);\n\n if (typeof json != 'string') return json;\n\n var result = '';\n var length = json.length;\n\n for (var i = 0; i < length; i++) {\n var chr = at(json, i);\n if (chr == '\"') {\n var end = parseJSONString(json, ++i).end - 1;\n var string = slice(json, i, end);\n result += slice(string, 0, MARK_LENGTH) == MARK\n ? rawStrings[slice(string, MARK_LENGTH)]\n : '\"' + string + '\"';\n i = end;\n } else result += chr;\n }\n\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar remove = require('../internals/map-helpers').remove;\n\n// `Map.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aMap(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.emplace` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n emplace: function emplace(key, handler) {\n var map = aMap(this);\n var value, inserted;\n if (has(map, key)) {\n value = get(map, key);\n if ('update' in handler) {\n value = handler.update(value, key, map);\n set(map, key, value);\n } return value;\n }\n inserted = handler.insert(key, map);\n set(map, key, inserted);\n return inserted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n every: function every(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(map, function (value, key) {\n if (!boundFunction(value, key, map)) return false;\n }, true) !== false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n filter: function filter(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) set(newMap, key, value);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.findKey` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n findKey: function findKey(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return { key: key };\n }, true);\n return result && result.key;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n find: function find(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return { value: value };\n }, true);\n return result && result.value;\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/collection-from');\n\n// `Map.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\n$({ target: 'Map', stat: true, forced: true }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar aCallable = require('../internals/a-callable');\nvar iterate = require('../internals/iterate');\nvar Map = require('../internals/map-helpers').Map;\n\nvar push = uncurryThis([].push);\n\n// `Map.groupBy` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', stat: true, forced: true }, {\n groupBy: function groupBy(iterable, keyDerivative) {\n var C = isCallable(this) ? this : Map;\n var newMap = new C();\n aCallable(keyDerivative);\n var has = aCallable(newMap.has);\n var get = aCallable(newMap.get);\n var set = aCallable(newMap.set);\n iterate(iterable, function (element) {\n var derivedKey = keyDerivative(element);\n if (!call(has, newMap, derivedKey)) call(set, newMap, derivedKey, [element]);\n else push(call(get, newMap, derivedKey), element);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar sameValueZero = require('../internals/same-value-zero');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.includes` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n includes: function includes(searchElement) {\n return iterate(aMap(this), function (value) {\n if (sameValueZero(value, searchElement)) return true;\n }, true) === true;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar isCallable = require('../internals/is-callable');\nvar aCallable = require('../internals/a-callable');\nvar Map = require('../internals/map-helpers').Map;\n\n// `Map.keyBy` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', stat: true, forced: true }, {\n keyBy: function keyBy(iterable, keyDerivative) {\n var C = isCallable(this) ? this : Map;\n var newMap = new C();\n aCallable(keyDerivative);\n var setter = aCallable(newMap.set);\n iterate(iterable, function (element) {\n call(setter, newMap, keyDerivative(element), element);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.keyOf` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n keyOf: function keyOf(searchElement) {\n var result = iterate(aMap(this), function (value, key) {\n if (value === searchElement) return { key: key };\n }, true);\n return result && result.key;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapKeys` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n mapKeys: function mapKeys(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n set(newMap, boundFunction(value, key, map), value);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapValues` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n mapValues: function mapValues(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n set(newMap, key, boundFunction(value, key, map));\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/iterate');\nvar set = require('../internals/map-helpers').set;\n\n// `Map.prototype.merge` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n merge: function merge(iterable /* ...iterables */) {\n var map = aMap(this);\n var argumentsLength = arguments.length;\n var i = 0;\n while (i < argumentsLength) {\n iterate(arguments[i++], function (key, value) {\n set(map, key, value);\n }, { AS_ENTRIES: true });\n }\n return map;\n }\n});\n","var $ = require('../internals/export');\nvar of = require('../internals/collection-of');\n\n// `Map.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\n$({ target: 'Map', stat: true, forced: true }, {\n of: of\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\nvar $TypeError = TypeError;\n\n// `Map.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var map = aMap(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n aCallable(callbackfn);\n iterate(map, function (value, key) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = callbackfn(accumulator, value, key, map);\n }\n });\n if (noInitial) throw $TypeError('Reduce of empty map with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n some: function some(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return true;\n }, true) === true;\n }\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.emplace`)\n// https://github.com/thumbsupep/proposal-upsert\n$({ target: 'Map', proto: true, real: true, name: 'upsert', forced: true }, {\n updateOrInsert: upsert\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar $TypeError = TypeError;\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.update` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n update: function update(key, callback /* , thunk */) {\n var map = aMap(this);\n var length = arguments.length;\n aCallable(callback);\n var isPresentInMap = has(map, key);\n if (!isPresentInMap && length < 3) {\n throw $TypeError('Updating absent value');\n }\n var value = isPresentInMap ? get(map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map);\n set(map, key, callback(value, key, map));\n return map;\n }\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `Map.prototype.upsert` method (replaced by `Map.prototype.emplace`)\n// https://github.com/thumbsupep/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n upsert: upsert\n});\n","var $ = require('../internals/export');\n\nvar min = Math.min;\nvar max = Math.max;\n\n// `Math.clamp` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n clamp: function clamp(x, lower, upper) {\n return min(upper, max(lower, x));\n }\n});\n","var $ = require('../internals/export');\n\n// `Math.DEG_PER_RAD` constant\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {\n DEG_PER_RAD: Math.PI / 180\n});\n","var $ = require('../internals/export');\n\nvar RAD_PER_DEG = 180 / Math.PI;\n\n// `Math.degrees` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n degrees: function degrees(radians) {\n return radians * RAD_PER_DEG;\n }\n});\n","var $ = require('../internals/export');\n\nvar scale = require('../internals/math-scale');\nvar fround = require('../internals/math-fround');\n\n// `Math.fscale` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {\n return fround(scale(x, inLow, inHigh, outLow, outHigh));\n }\n});\n","var $ = require('../internals/export');\n\n// `Math.iaddh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n iaddh: function iaddh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n }\n});\n","var $ = require('../internals/export');\n\n// `Math.imulh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n imulh: function imulh(u, v) {\n var UINT16 = 0xFFFF;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >> 16;\n var v1 = $v >> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n }\n});\n","var $ = require('../internals/export');\n\n// `Math.isubh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n isubh: function isubh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n }\n});\n","var $ = require('../internals/export');\n\n// `Math.RAD_PER_DEG` constant\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, {\n RAD_PER_DEG: 180 / Math.PI\n});\n","var $ = require('../internals/export');\n\nvar DEG_PER_RAD = Math.PI / 180;\n\n// `Math.radians` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n radians: function radians(degrees) {\n return degrees * DEG_PER_RAD;\n }\n});\n","var $ = require('../internals/export');\nvar scale = require('../internals/math-scale');\n\n// `Math.scale` method\n// https://rwaldron.github.io/proposal-math-extensions/\n$({ target: 'Math', stat: true, forced: true }, {\n scale: scale\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar numberIsFinite = require('../internals/number-is-finite');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar SEEDED_RANDOM = 'Seeded Random';\nvar SEEDED_RANDOM_GENERATOR = SEEDED_RANDOM + ' Generator';\nvar SEED_TYPE_ERROR = 'Math.seededPRNG() argument should have a \"seed\" field with a finite value.';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SEEDED_RANDOM_GENERATOR);\nvar $TypeError = TypeError;\n\nvar $SeededRandomGenerator = createIteratorConstructor(function SeededRandomGenerator(seed) {\n setInternalState(this, {\n type: SEEDED_RANDOM_GENERATOR,\n seed: seed % 2147483647\n });\n}, SEEDED_RANDOM, function next() {\n var state = getInternalState(this);\n var seed = state.seed = (state.seed * 1103515245 + 12345) % 2147483647;\n return createIterResultObject((seed & 1073741823) / 1073741823, false);\n});\n\n// `Math.seededPRNG` method\n// https://github.com/tc39/proposal-seeded-random\n// based on https://github.com/tc39/proposal-seeded-random/blob/78b8258835b57fc2100d076151ab506bc3202ae6/demo.html\n$({ target: 'Math', stat: true, forced: true }, {\n seededPRNG: function seededPRNG(it) {\n var seed = anObject(it).seed;\n if (!numberIsFinite(seed)) throw $TypeError(SEED_TYPE_ERROR);\n return new $SeededRandomGenerator(seed);\n }\n});\n","var $ = require('../internals/export');\n\n// `Math.signbit` method\n// https://github.com/tc39/proposal-Math.signbit\n$({ target: 'Math', stat: true, forced: true }, {\n signbit: function signbit(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n == n && n == 0 ? 1 / n == -Infinity : n < 0;\n }\n});\n","var $ = require('../internals/export');\n\n// `Math.umulh` method\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n// TODO: Remove from `core-js@4`\n$({ target: 'Math', stat: true, forced: true }, {\n umulh: function umulh(u, v) {\n var UINT16 = 0xFFFF;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >>> 16;\n var v1 = $v >>> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar parseInt = require('../internals/number-parse-int');\n\nvar INVALID_NUMBER_REPRESENTATION = 'Invalid number representation';\nvar INVALID_RADIX = 'Invalid radix';\nvar $RangeError = RangeError;\nvar $SyntaxError = SyntaxError;\nvar $TypeError = TypeError;\nvar valid = /^[\\da-z]+$/;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(valid.exec);\nvar numberToString = uncurryThis(1.0.toString);\nvar stringSlice = uncurryThis(''.slice);\n\n// `Number.fromString` method\n// https://github.com/tc39/proposal-number-fromstring\n$({ target: 'Number', stat: true, forced: true }, {\n fromString: function fromString(string, radix) {\n var sign = 1;\n var R, mathNum;\n if (typeof string != 'string') throw $TypeError(INVALID_NUMBER_REPRESENTATION);\n if (!string.length) throw $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n if (charAt(string, 0) == '-') {\n sign = -1;\n string = stringSlice(string, 1);\n if (!string.length) throw $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n }\n R = radix === undefined ? 10 : toIntegerOrInfinity(radix);\n if (R < 2 || R > 36) throw $RangeError(INVALID_RADIX);\n if (!exec(valid, string) || numberToString(mathNum = parseInt(string, R), R) !== string) {\n throw $SyntaxError(INVALID_NUMBER_REPRESENTATION);\n }\n return sign * mathNum;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NumericRangeIterator = require('../internals/numeric-range-iterator');\n\n// `Number.range` method\n// https://github.com/tc39/proposal-Number.range\n// TODO: Remove from `core-js@4`\n$({ target: 'Number', stat: true, forced: true }, {\n range: function range(start, end, option) {\n return new NumericRangeIterator(start, end, option, 'number', 0, 1);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateEntries` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n iterateEntries: function iterateEntries(object) {\n return new ObjectIterator(object, 'entries');\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateKeys` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n iterateKeys: function iterateKeys(object) {\n return new ObjectIterator(object, 'keys');\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ObjectIterator = require('../internals/object-iterator');\n\n// `Object.iterateValues` method\n// https://github.com/tc39/proposal-object-iteration\n$({ target: 'Object', stat: true, forced: true }, {\n iterateValues: function iterateValues(object) {\n return new ObjectIterator(object, 'values');\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-observable\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar getMethod = require('../internals/get-method');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar OBSERVABLE_FORCED = require('../internals/observable-forced');\n\nvar $$OBSERVABLE = wellKnownSymbol('observable');\nvar OBSERVABLE = 'Observable';\nvar SUBSCRIPTION = 'Subscription';\nvar SUBSCRIPTION_OBSERVER = 'SubscriptionObserver';\nvar getterFor = InternalStateModule.getterFor;\nvar setInternalState = InternalStateModule.set;\nvar getObservableInternalState = getterFor(OBSERVABLE);\nvar getSubscriptionInternalState = getterFor(SUBSCRIPTION);\nvar getSubscriptionObserverInternalState = getterFor(SUBSCRIPTION_OBSERVER);\n\nvar SubscriptionState = function (observer) {\n this.observer = anObject(observer);\n this.cleanup = undefined;\n this.subscriptionObserver = undefined;\n};\n\nSubscriptionState.prototype = {\n type: SUBSCRIPTION,\n clean: function () {\n var cleanup = this.cleanup;\n if (cleanup) {\n this.cleanup = undefined;\n try {\n cleanup();\n } catch (error) {\n hostReportErrors(error);\n }\n }\n },\n close: function () {\n if (!DESCRIPTORS) {\n var subscription = this.facade;\n var subscriptionObserver = this.subscriptionObserver;\n subscription.closed = true;\n if (subscriptionObserver) subscriptionObserver.closed = true;\n } this.observer = undefined;\n },\n isClosed: function () {\n return this.observer === undefined;\n }\n};\n\nvar Subscription = function (observer, subscriber) {\n var subscriptionState = setInternalState(this, new SubscriptionState(observer));\n var start;\n if (!DESCRIPTORS) this.closed = false;\n try {\n if (start = getMethod(observer, 'start')) call(start, observer, this);\n } catch (error) {\n hostReportErrors(error);\n }\n if (subscriptionState.isClosed()) return;\n var subscriptionObserver = subscriptionState.subscriptionObserver = new SubscriptionObserver(subscriptionState);\n try {\n var cleanup = subscriber(subscriptionObserver);\n var subscription = cleanup;\n if (!isNullOrUndefined(cleanup)) subscriptionState.cleanup = isCallable(cleanup.unsubscribe)\n ? function () { subscription.unsubscribe(); }\n : aCallable(cleanup);\n } catch (error) {\n subscriptionObserver.error(error);\n return;\n } if (subscriptionState.isClosed()) subscriptionState.clean();\n};\n\nSubscription.prototype = defineBuiltIns({}, {\n unsubscribe: function unsubscribe() {\n var subscriptionState = getSubscriptionInternalState(this);\n if (!subscriptionState.isClosed()) {\n subscriptionState.close();\n subscriptionState.clean();\n }\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(Subscription.prototype, 'closed', {\n configurable: true,\n get: function closed() {\n return getSubscriptionInternalState(this).isClosed();\n }\n});\n\nvar SubscriptionObserver = function (subscriptionState) {\n setInternalState(this, {\n type: SUBSCRIPTION_OBSERVER,\n subscriptionState: subscriptionState\n });\n if (!DESCRIPTORS) this.closed = false;\n};\n\nSubscriptionObserver.prototype = defineBuiltIns({}, {\n next: function next(value) {\n var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n if (!subscriptionState.isClosed()) {\n var observer = subscriptionState.observer;\n try {\n var nextMethod = getMethod(observer, 'next');\n if (nextMethod) call(nextMethod, observer, value);\n } catch (error) {\n hostReportErrors(error);\n }\n }\n },\n error: function error(value) {\n var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n if (!subscriptionState.isClosed()) {\n var observer = subscriptionState.observer;\n subscriptionState.close();\n try {\n var errorMethod = getMethod(observer, 'error');\n if (errorMethod) call(errorMethod, observer, value);\n else hostReportErrors(value);\n } catch (err) {\n hostReportErrors(err);\n } subscriptionState.clean();\n }\n },\n complete: function complete() {\n var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;\n if (!subscriptionState.isClosed()) {\n var observer = subscriptionState.observer;\n subscriptionState.close();\n try {\n var completeMethod = getMethod(observer, 'complete');\n if (completeMethod) call(completeMethod, observer);\n } catch (error) {\n hostReportErrors(error);\n } subscriptionState.clean();\n }\n }\n});\n\nif (DESCRIPTORS) defineBuiltInAccessor(SubscriptionObserver.prototype, 'closed', {\n configurable: true,\n get: function closed() {\n return getSubscriptionObserverInternalState(this).subscriptionState.isClosed();\n }\n});\n\nvar $Observable = function Observable(subscriber) {\n anInstance(this, ObservablePrototype);\n setInternalState(this, {\n type: OBSERVABLE,\n subscriber: aCallable(subscriber)\n });\n};\n\nvar ObservablePrototype = $Observable.prototype;\n\ndefineBuiltIns(ObservablePrototype, {\n subscribe: function subscribe(observer) {\n var length = arguments.length;\n return new Subscription(isCallable(observer) ? {\n next: observer,\n error: length > 1 ? arguments[1] : undefined,\n complete: length > 2 ? arguments[2] : undefined\n } : isObject(observer) ? observer : {}, getObservableInternalState(this).subscriber);\n }\n});\n\ndefineBuiltIn(ObservablePrototype, $$OBSERVABLE, function () { return this; });\n\n$({ global: true, constructor: true, forced: OBSERVABLE_FORCED }, {\n Observable: $Observable\n});\n\nsetSpecies(OBSERVABLE);\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isConstructor = require('../internals/is-constructor');\nvar getIterator = require('../internals/get-iterator');\nvar getMethod = require('../internals/get-method');\nvar iterate = require('../internals/iterate');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar OBSERVABLE_FORCED = require('../internals/observable-forced');\n\nvar $$OBSERVABLE = wellKnownSymbol('observable');\n\n// `Observable.from` method\n// https://github.com/tc39/proposal-observable\n$({ target: 'Observable', stat: true, forced: OBSERVABLE_FORCED }, {\n from: function from(x) {\n var C = isConstructor(this) ? this : getBuiltIn('Observable');\n var observableMethod = getMethod(anObject(x), $$OBSERVABLE);\n if (observableMethod) {\n var observable = anObject(call(observableMethod, x));\n return observable.constructor === C ? observable : new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n var iterator = getIterator(x);\n return new C(function (observer) {\n iterate(iterator, function (it, stop) {\n observer.next(it);\n if (observer.closed) return stop();\n }, { IS_ITERATOR: true, INTERRUPTED: true });\n observer.complete();\n });\n }\n});\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/esnext.observable.constructor');\nrequire('../modules/esnext.observable.from');\nrequire('../modules/esnext.observable.of');\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isConstructor = require('../internals/is-constructor');\nvar OBSERVABLE_FORCED = require('../internals/observable-forced');\n\nvar Array = getBuiltIn('Array');\n\n// `Observable.of` method\n// https://github.com/tc39/proposal-observable\n$({ target: 'Observable', stat: true, forced: OBSERVABLE_FORCED }, {\n of: function of() {\n var C = isConstructor(this) ? this : getBuiltIn('Observable');\n var length = arguments.length;\n var items = Array(length);\n var index = 0;\n while (index < length) items[index] = arguments[index++];\n return new C(function (observer) {\n for (var i = 0; i < length; i++) {\n observer.next(items[i]);\n if (observer.closed) return;\n } observer.complete();\n });\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\n\n// `Promise.try` method\n// https://github.com/tc39/proposal-promise-try\n$({ target: 'Promise', stat: true, forced: true }, {\n 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(callbackfn);\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar ordinaryDefineOwnMetadata = ReflectMetadataModule.set;\n\n// `Reflect.defineMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n defineMetadata: function defineMetadata(metadataKey, metadataValue, target /* , targetKey */) {\n var targetKey = arguments.length < 4 ? undefined : toMetadataKey(arguments[3]);\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), targetKey);\n }\n});\n","var $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar getOrCreateMetadataMap = ReflectMetadataModule.getMap;\nvar store = ReflectMetadataModule.store;\n\n// `Reflect.deleteMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n }\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar $arrayUniqueBy = require('../internals/array-unique-by');\n\nvar arrayUniqueBy = uncurryThis($arrayUniqueBy);\nvar concat = uncurryThis([].concat);\nvar ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? arrayUniqueBy(concat(oKeys, pKeys)) : pKeys : oKeys;\n};\n\n// `Reflect.getMetadataKeys` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);\n return ordinaryMetadataKeys(anObject(target), targetKey);\n }\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar ordinaryGetOwnMetadata = ReflectMetadataModule.get;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\n// `Reflect.getMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryGetMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.getOwnMetadataKeys` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);\n return ordinaryOwnMetadataKeys(anObject(target), targetKey);\n }\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryGetOwnMetadata = ReflectMetadataModule.get;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.getOwnMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryGetOwnMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\n// `Reflect.hasMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryHasMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar ordinaryHasOwnMetadata = ReflectMetadataModule.has;\nvar toMetadataKey = ReflectMetadataModule.toKey;\n\n// `Reflect.hasOwnMetadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);\n return ordinaryHasOwnMetadata(metadataKey, anObject(target), targetKey);\n }\n});\n","var $ = require('../internals/export');\nvar ReflectMetadataModule = require('../internals/reflect-metadata');\nvar anObject = require('../internals/an-object');\n\nvar toMetadataKey = ReflectMetadataModule.toKey;\nvar ordinaryDefineOwnMetadata = ReflectMetadataModule.set;\n\n// `Reflect.metadata` method\n// https://github.com/rbuckton/reflect-metadata\n$({ target: 'Reflect', stat: true }, {\n metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, key) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetadataKey(key));\n };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\n\n// `Set.prototype.addAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n addAll: function addAll(/* ...elements */) {\n var set = aSet(this);\n for (var k = 0, len = arguments.length; k < len; k++) {\n add(set, arguments[k]);\n } return set;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aSet = require('../internals/a-set');\nvar remove = require('../internals/set-helpers').remove;\n\n// `Set.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aSet(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $difference = require('../internals/set-difference');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n difference: function difference(other) {\n return call($difference, this, toSetLike(other));\n }\n});\n","var $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, {\n difference: difference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n every: function every(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(set, function (value) {\n if (!boundFunction(value, value, set)) return false;\n }, true) !== false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n filter: function filter(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newSet = new Set();\n iterate(set, function (value) {\n if (boundFunction(value, value, set)) add(newSet, value);\n });\n return newSet;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n find: function find(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(set, function (value) {\n if (boundFunction(value, value, set)) return { value: value };\n }, true);\n return result && result.value;\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/collection-from');\n\n// `Set.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\n$({ target: 'Set', stat: true, forced: true }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $intersection = require('../internals/set-intersection');\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n intersection: function intersection(other) {\n return call($intersection, this, toSetLike(other));\n }\n});\n","var $ = require('../internals/export');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('intersection') }, {\n intersection: intersection\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isDisjointFrom = require('../internals/set-is-disjoint-from');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isDisjointFrom: function isDisjointFrom(other) {\n return call($isDisjointFrom, this, toSetLike(other));\n }\n});\n","var $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isSubsetOf = require('../internals/set-is-subset-of');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isSubsetOf: function isSubsetOf(other) {\n return call($isSubsetOf, this, toSetLike(other));\n }\n});\n","var $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {\n isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isSupersetOf = require('../internals/set-is-superset-of');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isSupersetOf: function isSupersetOf(other) {\n return call($isSupersetOf, this, toSetLike(other));\n }\n});\n","var $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\nvar toString = require('../internals/to-string');\n\nvar arrayJoin = uncurryThis([].join);\nvar push = uncurryThis([].push);\n\n// `Set.prototype.join` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n join: function join(separator) {\n var set = aSet(this);\n var sep = separator === undefined ? ',' : toString(separator);\n var array = [];\n iterate(set, function (value) {\n push(array, value);\n });\n return arrayJoin(array, sep);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.map` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n map: function map(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newSet = new Set();\n iterate(set, function (value) {\n add(newSet, boundFunction(value, value, set));\n });\n return newSet;\n }\n});\n","var $ = require('../internals/export');\nvar of = require('../internals/collection-of');\n\n// `Set.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\n$({ target: 'Set', stat: true, forced: true }, {\n of: of\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\nvar $TypeError = TypeError;\n\n// `Set.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var set = aSet(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n aCallable(callbackfn);\n iterate(set, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = callbackfn(accumulator, value, value, set);\n }\n });\n if (noInitial) throw $TypeError('Reduce of empty set with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n some: function some(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(set, function (value) {\n if (boundFunction(value, value, set)) return true;\n }, true) === true;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $symmetricDifference = require('../internals/set-symmetric-difference');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n symmetricDifference: function symmetricDifference(other) {\n return call($symmetricDifference, this, toSetLike(other));\n }\n});\n","var $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $union = require('../internals/set-union');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n union: function union(other) {\n return call($union, this, toSetLike(other));\n }\n});\n","var $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n union: union\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar charAt = require('../internals/string-multibyte').charAt;\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\n// `String.prototype.at` method\n// https://github.com/mathiasbynens/String.prototype.at\n$({ target: 'String', proto: true, forced: true }, {\n at: function at(index) {\n var S = toString(requireObjectCoercible(this));\n var len = S.length;\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : charAt(S, k);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar StringMultibyteModule = require('../internals/string-multibyte');\n\nvar codeAt = StringMultibyteModule.codeAt;\nvar charAt = StringMultibyteModule.charAt;\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// TODO: unify with String#@@iterator\nvar $StringIterator = createIteratorConstructor(function StringIterator(string) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: string,\n index: 0\n });\n}, 'String', function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject({ codePoint: codeAt(point, 0), position: index }, false);\n});\n\n// `String.prototype.codePoints` method\n// https://github.com/tc39/proposal-string-prototype-codepoints\n$({ target: 'String', proto: true, forced: true }, {\n codePoints: function codePoints() {\n return new $StringIterator(toString(requireObjectCoercible(this)));\n }\n});\n","var $ = require('../internals/export');\nvar cooked = require('../internals/string-cooked');\n\n// `String.cooked` method\n// https://github.com/tc39/proposal-string-cooked\n$({ target: 'String', stat: true, forced: true }, {\n cooked: cooked\n});\n","'use strict';\nvar FREEZING = require('../internals/freezing');\nvar $ = require('../internals/export');\nvar shared = require('../internals/shared');\nvar getBuiltIn = require('../internals/get-built-in');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar apply = require('../internals/function-apply');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar isCallable = require('../internals/is-callable');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createArrayFromList = require('../internals/array-slice-simple');\nvar cooked = require('../internals/string-cooked');\nvar parse = require('../internals/string-parse');\nvar whitespaces = require('../internals/whitespaces');\n\nvar WeakMap = getBuiltIn('WeakMap');\nvar globalDedentRegistry = shared('GlobalDedentRegistry', new WeakMap());\n\n/* eslint-disable no-self-assign -- prototype methods protection */\nglobalDedentRegistry.has = globalDedentRegistry.has;\nglobalDedentRegistry.get = globalDedentRegistry.get;\nglobalDedentRegistry.set = globalDedentRegistry.set;\n/* eslint-enable no-self-assign -- prototype methods protection */\n\nvar $Array = Array;\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = Object.freeze || Object;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = Object.isFrozen;\nvar min = Math.min;\nvar charAt = uncurryThis(''.charAt);\nvar stringSlice = uncurryThis(''.slice);\nvar split = uncurryThis(''.split);\nvar exec = uncurryThis(/./.exec);\n\nvar NEW_LINE = /([\\n\\u2028\\u2029]|\\r\\n?)/g;\nvar LEADING_WHITESPACE = RegExp('^[' + whitespaces + ']*');\nvar NON_WHITESPACE = RegExp('[^' + whitespaces + ']');\nvar INVALID_TAG = 'Invalid tag';\nvar INVALID_OPENING_LINE = 'Invalid opening line';\nvar INVALID_CLOSING_LINE = 'Invalid closing line';\n\nvar dedentTemplateStringsArray = function (template) {\n var rawInput = template.raw;\n // https://github.com/tc39/proposal-string-dedent/issues/75\n if (FREEZING && !isFrozen(rawInput)) throw $TypeError('Raw template should be frozen');\n if (globalDedentRegistry.has(rawInput)) return globalDedentRegistry.get(rawInput);\n var raw = dedentStringsArray(rawInput);\n var cookedArr = cookStrings(raw);\n defineProperty(cookedArr, 'raw', {\n value: freeze(raw)\n });\n freeze(cookedArr);\n globalDedentRegistry.set(rawInput, cookedArr);\n return cookedArr;\n};\n\nvar dedentStringsArray = function (template) {\n var t = toObject(template);\n var length = lengthOfArrayLike(t);\n var blocks = $Array(length);\n var dedented = $Array(length);\n var i = 0;\n var lines, common;\n\n if (!length) throw $TypeError(INVALID_TAG);\n\n for (; i < length; i++) {\n var element = t[i];\n if (typeof element == 'string') blocks[i] = split(element, NEW_LINE);\n else throw $TypeError(INVALID_TAG);\n }\n\n for (i = 0; i < length; i++) {\n var lastSplit = i + 1 === length;\n lines = blocks[i];\n if (i === 0) {\n if (lines.length === 1 || lines[0].length > 0) {\n throw $TypeError(INVALID_OPENING_LINE);\n }\n lines[1] = '';\n }\n if (lastSplit) {\n if (lines.length === 1 || exec(NON_WHITESPACE, lines[lines.length - 1])) {\n throw $TypeError(INVALID_CLOSING_LINE);\n }\n lines[lines.length - 2] = '';\n lines[lines.length - 1] = '';\n }\n for (var j = 2; j < lines.length; j += 2) {\n var text = lines[j];\n var lineContainsTemplateExpression = j + 1 === lines.length && !lastSplit;\n var leading = exec(LEADING_WHITESPACE, text)[0];\n if (!lineContainsTemplateExpression && leading.length === text.length) {\n lines[j] = '';\n continue;\n }\n common = commonLeadingIndentation(leading, common);\n }\n }\n\n var count = common ? common.length : 0;\n\n for (i = 0; i < length; i++) {\n lines = blocks[i];\n for (var quasi = lines[0], k = 1; k < lines.length; k += 2) {\n quasi += lines[k] + stringSlice(lines[k + 1], count);\n }\n dedented[i] = quasi;\n }\n\n return dedented;\n};\n\nvar commonLeadingIndentation = function (a, b) {\n if (b === undefined || a === b) return a;\n var i = 0;\n for (var len = min(a.length, b.length); i < len; i++) {\n if (charAt(a, i) !== charAt(b, i)) break;\n }\n return stringSlice(a, 0, i);\n};\n\nvar cookStrings = function (raw) {\n for (var i = 0, length = raw.length, result = $Array(length); i < length; i++) {\n result[i] = parse(raw[i]);\n } return result;\n};\n\nvar makeDedentTag = function (tag) {\n return makeBuiltIn(function (template /* , ...substitutions */) {\n var args = createArrayFromList(arguments);\n args[0] = dedentTemplateStringsArray(anObject(template));\n return apply(tag, this, args);\n }, '');\n};\n\nvar cookedDedentTag = makeDedentTag(cooked);\n\n// `String.dedent` method\n// https://github.com/tc39/proposal-string-dedent\n$({ target: 'String', stat: true, forced: true }, {\n dedent: function dedent(templateOrFn /* , ...substitutions */) {\n anObject(templateOrFn);\n if (isCallable(templateOrFn)) return makeDedentTag(templateOrFn);\n return apply(cookedDedentTag, this, arguments);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `String.prototype.isWellFormed` method\n// https://github.com/tc39/proposal-is-usv-string\n$({ target: 'String', proto: true }, {\n isWellFormed: function isWellFormed() {\n var S = toString(requireObjectCoercible(this));\n var length = S.length;\n for (var i = 0; i < length; i++) {\n var charCode = charCodeAt(S, i);\n // single UTF-16 code unit\n if ((charCode & 0xF800) != 0xD800) continue;\n // unpaired surrogate\n if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) != 0xDC00) return false;\n } return true;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar $Array = Array;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar $toWellFormed = ''.toWellFormed;\nvar REPLACEMENT_CHARACTER = '\\uFFFD';\n\n// Safari bug\nvar TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () {\n return call($toWellFormed, 1) !== '1';\n});\n\n// `String.prototype.toWellFormed` method\n// https://github.com/tc39/proposal-is-usv-string\n$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, {\n toWellFormed: function toWellFormed() {\n var S = toString(requireObjectCoercible(this));\n if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S);\n var length = S.length;\n var result = $Array(length);\n for (var i = 0; i < length; i++) {\n var charCode = charCodeAt(S, i);\n // single UTF-16 code unit\n if ((charCode & 0xF800) != 0xD800) result[i] = charAt(S, i);\n // unpaired surrogate\n else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) != 0xDC00) result[i] = REPLACEMENT_CHARACTER;\n // surrogate pair\n else {\n result[i] = charAt(S, i);\n result[++i] = charAt(S, i);\n }\n } return join(result, '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorStack = require('../internals/error-stack-install');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\n\nvar $SuppressedError = function SuppressedError(error, suppressed, message) {\n var isInstance = isPrototypeOf(SuppressedErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf($Error(), isInstance ? getPrototypeOf(this) : SuppressedErrorPrototype);\n } else {\n that = isInstance ? this : create(SuppressedErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n installErrorStack(that, $SuppressedError, that.stack, 1);\n createNonEnumerableProperty(that, 'error', error);\n createNonEnumerableProperty(that, 'suppressed', suppressed);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($SuppressedError, $Error);\nelse copyConstructorProperties($SuppressedError, $Error, { name: true });\n\nvar SuppressedErrorPrototype = $SuppressedError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $SuppressedError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'SuppressedError')\n});\n\n// `SuppressedError` constructor\n// https://github.com/tc39/proposal-explicit-resource-management\n$({ global: true, constructor: true, arity: 3 }, {\n SuppressedError: $SuppressedError\n});\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Symbol = getBuiltIn('Symbol');\nvar keyFor = Symbol.keyFor;\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\n\n// `Symbol.isRegistered` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregistered\n$({ target: 'Symbol', stat: true }, {\n isRegistered: function isRegistered(value) {\n try {\n return keyFor(thisSymbolValue(value)) !== undefined;\n } catch (error) {\n return false;\n }\n }\n});\n","var $ = require('../internals/export');\nvar shared = require('../internals/shared');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isSymbol = require('../internals/is-symbol');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Symbol = getBuiltIn('Symbol');\nvar $isWellKnown = Symbol.isWellKnown;\nvar getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\nvar WellKnownSymbolsStore = shared('wks');\n\nfor (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {\n // some old engines throws on access to some keys like `arguments` or `caller`\n try {\n var symbolKey = symbolKeys[i];\n if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);\n } catch (error) { /* empty */ }\n}\n\n// `Symbol.isWellKnown` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknown\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, forced: true }, {\n isWellKnown: function isWellKnown(value) {\n if ($isWellKnown && $isWellKnown(value)) return true;\n try {\n var symbol = thisSymbolValue(value);\n for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {\n if (WellKnownSymbolsStore[keys[j]] == symbol) return true;\n }\n } catch (error) { /* empty */ }\n return false;\n }\n});\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadataKey` well-known symbol\n// https://github.com/tc39/proposal-decorator-metadata\ndefineWellKnownSymbol('metadataKey');\n","// TODO: Remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\ndefineWellKnownSymbol('replaceAll');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filterOut` method\n// https://github.com/tc39/proposal-array-filtering\nexportTypedArrayMethod('filterOut', function filterOut(callbackfn /* , thisArg */) {\n var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n}, true);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filterReject = require('../internals/array-iteration').filterReject;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filterReject` method\n// https://github.com/tc39/proposal-array-filtering\nexportTypedArrayMethod('filterReject', function filterReject(callbackfn /* , thisArg */) {\n var list = $filterReject(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n}, true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar getBuiltIn = require('../internals/get-built-in');\nvar aConstructor = require('../internals/a-constructor');\nvar arrayFromAsync = require('../internals/array-from-async');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.fromAsync` method\n// https://github.com/tc39/proposal-array-from-async\nexportTypedArrayStaticMethod('fromAsync', function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {\n var C = this;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var thisArg = argumentsLength > 2 ? arguments[2] : undefined;\n return new (getBuiltIn('Promise'))(function (resolve) {\n aConstructor(C);\n resolve(arrayFromAsync(asyncItems, mapfn, thisArg));\n }).then(function (list) {\n return arrayFromConstructorAndList(aTypedArrayConstructor(C), list);\n });\n}, true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $group = require('../internals/array-group');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\nexportTypedArrayMethod('groupBy', function groupBy(callbackfn /* , thisArg */) {\n var thisArg = arguments.length > 1 ? arguments[1] : undefined;\n return $group(aTypedArray(this), callbackfn, thisArg, typedArraySpeciesConstructor);\n}, true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toBigInt = require('../internals/to-big-int');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar max = Math.max;\nvar min = Math.min;\n\n// some early implementations, like WebKit, does not follow the final semantic\nvar PROPER_ORDER = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Int8Array([1]);\n\n var spliced = array.toSpliced(1, 0, {\n valueOf: function () {\n array[0] = 2;\n return 3;\n }\n });\n\n return spliced[0] !== 2 || spliced[1] !== 3;\n});\n\n// `%TypedArray%.prototype.toSpliced` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toSpliced\nexportTypedArrayMethod('toSpliced', function toSpliced(start, deleteCount /* , ...items */) {\n var O = aTypedArray(this);\n var C = getTypedArrayConstructor(O);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var k = 0;\n var insertCount, actualDeleteCount, thisIsBigIntArray, convertedItems, value, newLen, A;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n insertCount = argumentsLength - 2;\n if (insertCount) {\n convertedItems = new C(insertCount);\n thisIsBigIntArray = isBigIntArray(convertedItems);\n for (var i = 2; i < argumentsLength; i++) {\n value = arguments[i];\n // FF30- typed arrays doesn't properly convert objects to typed array values\n convertedItems[i - 2] = thisIsBigIntArray ? toBigInt(value) : +value;\n }\n }\n }\n newLen = len + insertCount - actualDeleteCount;\n A = new C(newLen);\n\n for (; k < actualStart; k++) A[k] = O[k];\n for (; k < actualStart + insertCount; k++) A[k] = convertedItems[k - actualStart];\n for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount];\n\n return A;\n}, !PROPER_ORDER);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar $arrayUniqueBy = require('../internals/array-unique-by');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar arrayUniqueBy = uncurryThis($arrayUniqueBy);\n\n// `%TypedArray%.prototype.uniqueBy` method\n// https://github.com/tc39/proposal-array-unique\nexportTypedArrayMethod('uniqueBy', function uniqueBy(resolver) {\n aTypedArray(this);\n return arrayFromConstructorAndList(getTypedArrayConstructor(this), arrayUniqueBy(this, resolver));\n}, true);\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakMap = require('../internals/a-weak-map');\nvar remove = require('../internals/weak-map-helpers').remove;\n\n// `WeakMap.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aWeakMap(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakMap = require('../internals/a-weak-map');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.emplace` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n emplace: function emplace(key, handler) {\n var map = aWeakMap(this);\n var value, inserted;\n if (has(map, key)) {\n value = get(map, key);\n if ('update' in handler) {\n value = handler.update(value, key, map);\n set(map, key, value);\n } return value;\n }\n inserted = handler.insert(key, map);\n set(map, key, inserted);\n return inserted;\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/collection-from');\n\n// `WeakMap.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\n$({ target: 'WeakMap', stat: true, forced: true }, {\n from: from\n});\n","var $ = require('../internals/export');\nvar of = require('../internals/collection-of');\n\n// `WeakMap.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\n$({ target: 'WeakMap', stat: true, forced: true }, {\n of: of\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `WeakMap.prototype.upsert` method (replaced by `WeakMap.prototype.emplace`)\n// https://github.com/tc39/proposal-upsert\n$({ target: 'WeakMap', proto: true, real: true, forced: true }, {\n upsert: upsert\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakSet = require('../internals/a-weak-set');\nvar add = require('../internals/weak-set-helpers').add;\n\n// `WeakSet.prototype.addAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakSet', proto: true, real: true, forced: true }, {\n addAll: function addAll(/* ...elements */) {\n var set = aWeakSet(this);\n for (var k = 0, len = arguments.length; k < len; k++) {\n add(set, arguments[k]);\n } return set;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aWeakSet = require('../internals/a-weak-set');\nvar remove = require('../internals/weak-set-helpers').remove;\n\n// `WeakSet.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'WeakSet', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aWeakSet(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/collection-from');\n\n// `WeakSet.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\n$({ target: 'WeakSet', stat: true, forced: true }, {\n from: from\n});\n","var $ = require('../internals/export');\nvar of = require('../internals/collection-of');\n\n// `WeakSet.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\n$({ target: 'WeakSet', stat: true, forced: true }, {\n of: of\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, {\n clearImmediate: clearImmediate\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.clear-immediate');\nrequire('../modules/web.set-immediate');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar INCORRECT_VALUE = global.self !== global;\n\n// `self` getter\n// https://html.spec.whatwg.org/multipage/window-object.html#dom-self\ntry {\n if (DESCRIPTORS) {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var descriptor = Object.getOwnPropertyDescriptor(global, 'self');\n // some engines have `self`, but with incorrect descriptor\n // https://github.com/denoland/deno/issues/15765\n if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) {\n defineBuiltInAccessor(global, 'self', {\n get: function self() {\n return global;\n },\n set: function self(value) {\n if (this !== global) throw $TypeError('Illegal invocation');\n defineProperty(global, 'self', {\n value: value,\n writable: true,\n configurable: true,\n enumerable: true\n });\n },\n configurable: true,\n enumerable: true\n });\n }\n } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, {\n self: global\n });\n} catch (error) { /* empty */ }\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setTask = require('../internals/task').set;\nvar schedulersFix = require('../internals/schedulers-fix');\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, {\n setImmediate: setImmediate\n});\n","var IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltin = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar MapHelpers = require('../internals/map-helpers');\nvar SetHelpers = require('../internals/set-helpers');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar PROPER_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar Object = global.Object;\nvar Array = global.Array;\nvar Date = global.Date;\nvar Error = global.Error;\nvar EvalError = global.EvalError;\nvar RangeError = global.RangeError;\nvar ReferenceError = global.ReferenceError;\nvar SyntaxError = global.SyntaxError;\nvar TypeError = global.TypeError;\nvar URIError = global.URIError;\nvar PerformanceMark = global.PerformanceMark;\nvar WebAssembly = global.WebAssembly;\nvar CompileError = WebAssembly && WebAssembly.CompileError || Error;\nvar LinkError = WebAssembly && WebAssembly.LinkError || Error;\nvar RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;\nvar DOMException = getBuiltin('DOMException');\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapGet = MapHelpers.get;\nvar mapSet = MapHelpers.set;\nvar Set = SetHelpers.Set;\nvar setAdd = SetHelpers.add;\nvar objectKeys = getBuiltin('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.0.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new global.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;\n }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n var error = new $Error();\n var test = structuredCloneImplementation({ a: error, b: error });\n return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;\n });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = global.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n || !checkErrorsCloning(nativeStructuredClone, Error)\n || !checkErrorsCloning(nativeStructuredClone, DOMException)\n || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar createDataTransfer = function () {\n var dataTransfer;\n try {\n dataTransfer = new global.DataTransfer();\n } catch (error) {\n try {\n dataTransfer = new global.ClipboardEvent('').clipboardData;\n } catch (error2) { /* empty */ }\n }\n return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var deep = false;\n var C, name, cloned, dataTransfer, i, length, keys, key, source, target;\n\n switch (type) {\n case 'Array':\n cloned = Array(lengthOfArrayLike(value));\n deep = true;\n break;\n case 'Object':\n cloned = {};\n deep = true;\n break;\n case 'Map':\n cloned = new Map();\n deep = true;\n break;\n case 'Set':\n cloned = new Set();\n deep = true;\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = getBuiltin('AggregateError')([]);\n break;\n case 'EvalError':\n cloned = EvalError();\n break;\n case 'RangeError':\n cloned = RangeError();\n break;\n case 'ReferenceError':\n cloned = ReferenceError();\n break;\n case 'SyntaxError':\n cloned = SyntaxError();\n break;\n case 'TypeError':\n cloned = TypeError();\n break;\n case 'URIError':\n cloned = URIError();\n break;\n case 'CompileError':\n cloned = CompileError();\n break;\n case 'LinkError':\n cloned = LinkError();\n break;\n case 'RuntimeError':\n cloned = RuntimeError();\n break;\n default:\n cloned = Error();\n }\n deep = true;\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n deep = true;\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n C = global[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n cloned = new C(\n // this is safe, since arraybuffer cannot have circular references\n structuredCloneInternal(value.buffer, map),\n value.byteOffset,\n type === 'DataView' ? value.byteLength : value.length\n );\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n }\n break;\n case 'FileList':\n dataTransfer = createDataTransfer();\n if (dataTransfer) {\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(thisBooleanValue(value));\n break;\n case 'Number':\n cloned = Object(thisNumberValue(value));\n break;\n case 'String':\n cloned = Object(thisStringValue(value));\n break;\n case 'Date':\n cloned = new Date(thisTimeValue(value));\n break;\n case 'ArrayBuffer':\n C = global.DataView;\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!C && typeof value.slice != 'function') throwUnpolyfillable(type);\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (typeof value.slice == 'function') {\n cloned = value.slice(0);\n } else {\n length = value.byteLength;\n cloned = new ArrayBuffer(length);\n source = new C(value);\n target = new C(cloned);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n } break;\n case 'SharedArrayBuffer':\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n cloned = value;\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = global[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = global[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = global[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'File':\n try {\n cloned = new File([value], value.name, value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'CropTarget':\n case 'CryptoKey':\n case 'FileSystemDirectoryHandle':\n case 'FileSystemFileHandle':\n case 'FileSystemHandle':\n case 'GPUCompilationInfo':\n case 'GPUCompilationMessage':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n if (deep) switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name == 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var value, type, C, transferredArray, transferred, canvas, context;\n\n if (PROPER_TRANSFER) {\n transferredArray = nativeStructuredClone(transfer, { transfer: transfer });\n while (i < length) mapSet(map, transfer[i], transferredArray[i++]);\n } else while (i < length) {\n value = transfer[i++];\n if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n\n type = classof(value);\n\n switch (type) {\n case 'ImageBitmap':\n C = global.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'ArrayBuffer':\n if (!isCallable(value.transfer)) throwUnpolyfillable(type, TRANSFERRING);\n transferred = value.transfer();\n break;\n case 'MediaSourceHandle':\n case 'MessagePort':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'TransformStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n mapSet(map, value, transferred);\n }\n};\n\n// `structuredClone` method\n// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone\n$({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map;\n\n if (transfer !== undefined) {\n map = new Map();\n tryToTransfer(transfer, map);\n }\n\n return structuredCloneInternal(value, map);\n }\n});\n","\"use strict\";\n\nvar isValue = require(\"type/value/is\")\n , isPlainFunction = require(\"type/plain-function/is\")\n , assign = require(\"es5-ext/object/assign\")\n , normalizeOpts = require(\"es5-ext/object/normalize-options\")\n , contains = require(\"es5-ext/string/#/contains\");\n\nvar d = (module.exports = function (dscr, value/*, options*/) {\n\tvar c, e, w, options, desc;\n\tif (arguments.length < 2 || typeof dscr !== \"string\") {\n\t\toptions = value;\n\t\tvalue = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[2];\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t\tw = contains.call(dscr, \"w\");\n\t} else {\n\t\tc = w = true;\n\t\te = false;\n\t}\n\n\tdesc = { value: value, configurable: c, enumerable: e, writable: w };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n});\n\nd.gs = function (dscr, get, set/*, options*/) {\n\tvar c, e, options, desc;\n\tif (typeof dscr !== \"string\") {\n\t\toptions = set;\n\t\tset = get;\n\t\tget = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[3];\n\t}\n\tif (!isValue(get)) {\n\t\tget = undefined;\n\t} else if (!isPlainFunction(get)) {\n\t\toptions = get;\n\t\tget = set = undefined;\n\t} else if (!isValue(set)) {\n\t\tset = undefined;\n\t} else if (!isPlainFunction(set)) {\n\t\toptions = set;\n\t\tset = undefined;\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t} else {\n\t\tc = true;\n\t\te = false;\n\t}\n\n\tdesc = { get: get, set: set, configurable: c, enumerable: e };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n};\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.enquireScreen = enquireScreen;\nexports.unenquireScreen = unenquireScreen;\nvar enquireJs = void 0;\nif (typeof window !== 'undefined') {\n var matchMediaPolyfill = function matchMediaPolyfill(mediaQuery) {\n return {\n media: mediaQuery,\n matches: false,\n addListener: function addListener() {},\n removeListener: function removeListener() {}\n };\n };\n window.matchMedia = window.matchMedia || matchMediaPolyfill;\n enquireJs = require('enquire.js');\n}\n\nvar mobileQuery = 'only screen and (max-width: 767.99px)';\n\nfunction enquireScreen(cb) {\n var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : mobileQuery;\n\n if (!enquireJs) {\n return;\n }\n\n var handler = {\n match: function match() {\n cb && cb(true);\n },\n unmatch: function unmatch() {\n cb && cb();\n }\n };\n enquireJs.register(query, handler);\n return handler;\n}\n\nfunction unenquireScreen(handler) {\n var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : mobileQuery;\n\n if (!enquireJs) {\n return;\n }\n enquireJs.unregister(query, handler);\n}\n\nexports.default = enquireJs;\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","\"use strict\";\n\n// eslint-disable-next-line no-empty-function\nmodule.exports = function () {};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.assign : require(\"./shim\");\n","\"use strict\";\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== \"function\") return false;\n\tobj = { foo: \"raz\" };\n\tassign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n\treturn obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n};\n","\"use strict\";\n\nvar keys = require(\"../keys\")\n , value = require(\"../valid-value\")\n , max = Math.max;\n\nmodule.exports = function (dest, src /*, …srcn*/) {\n\tvar error, i, length = max(arguments.length, 2), assign;\n\tdest = Object(value(dest));\n\tassign = function (key) {\n\t\ttry {\n\t\t\tdest[key] = src[key];\n\t\t} catch (e) {\n\t\t\tif (!error) error = e;\n\t\t}\n\t};\n\tfor (i = 1; i < length; ++i) {\n\t\tsrc = arguments[i];\n\t\tkeys(src).forEach(assign);\n\t}\n\tif (error !== undefined) throw error;\n\treturn dest;\n};\n","\"use strict\";\n\nvar _undefined = require(\"../function/noop\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.keys : require(\"./shim\");\n","\"use strict\";\n\nmodule.exports = function () {\n\ttry {\n\t\tObject.keys(\"primitive\");\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n","\"use strict\";\n\nvar isValue = require(\"../is-value\");\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar forEach = Array.prototype.forEach, create = Object.create;\n\nvar process = function (src, obj) {\n\tvar key;\n\tfor (key in src) obj[key] = src[key];\n};\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function (opts1 /*, …options*/) {\n\tvar result = create(null);\n\tforEach.call(arguments, function (options) {\n\t\tif (!isValue(options)) return;\n\t\tprocess(Object(options), result);\n\t});\n\treturn result;\n};\n","\"use strict\";\n\nmodule.exports = function (fn) {\n\tif (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n\treturn fn;\n};\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) throw new TypeError(\"Cannot use null or undefined\");\n\treturn value;\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? String.prototype.contains : require(\"./shim\");\n","\"use strict\";\n\nvar str = \"razdwatrzy\";\n\nmodule.exports = function () {\n\tif (typeof str.contains !== \"function\") return false;\n\treturn str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n};\n","\"use strict\";\n\nvar indexOf = String.prototype.indexOf;\n\nmodule.exports = function (searchString /*, position*/) {\n\treturn indexOf.call(this, searchString, arguments[1]) > -1;\n};\n","'use strict';\n\nvar d = require('d')\n , callable = require('es5-ext/object/valid-callable')\n\n , apply = Function.prototype.apply, call = Function.prototype.call\n , create = Object.create, defineProperty = Object.defineProperty\n , defineProperties = Object.defineProperties\n , hasOwnProperty = Object.prototype.hasOwnProperty\n , descriptor = { configurable: true, enumerable: false, writable: true }\n\n , on, once, off, emit, methods, descriptors, base;\n\non = function (type, listener) {\n\tvar data;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) {\n\t\tdata = descriptor.value = create(null);\n\t\tdefineProperty(this, '__ee__', descriptor);\n\t\tdescriptor.value = null;\n\t} else {\n\t\tdata = this.__ee__;\n\t}\n\tif (!data[type]) data[type] = listener;\n\telse if (typeof data[type] === 'object') data[type].push(listener);\n\telse data[type] = [data[type], listener];\n\n\treturn this;\n};\n\nonce = function (type, listener) {\n\tvar once, self;\n\n\tcallable(listener);\n\tself = this;\n\ton.call(this, type, once = function () {\n\t\toff.call(self, type, once);\n\t\tapply.call(listener, this, arguments);\n\t});\n\n\tonce.__eeOnceListener__ = listener;\n\treturn this;\n};\n\noff = function (type, listener) {\n\tvar data, listeners, candidate, i;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return this;\n\tdata = this.__ee__;\n\tif (!data[type]) return this;\n\tlisteners = data[type];\n\n\tif (typeof listeners === 'object') {\n\t\tfor (i = 0; (candidate = listeners[i]); ++i) {\n\t\t\tif ((candidate === listener) ||\n\t\t\t\t\t(candidate.__eeOnceListener__ === listener)) {\n\t\t\t\tif (listeners.length === 2) data[type] = listeners[i ? 0 : 1];\n\t\t\t\telse listeners.splice(i, 1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ((listeners === listener) ||\n\t\t\t\t(listeners.__eeOnceListener__ === listener)) {\n\t\t\tdelete data[type];\n\t\t}\n\t}\n\n\treturn this;\n};\n\nemit = function (type) {\n\tvar i, l, listener, listeners, args;\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return;\n\tlisteners = this.__ee__[type];\n\tif (!listeners) return;\n\n\tif (typeof listeners === 'object') {\n\t\tl = arguments.length;\n\t\targs = new Array(l - 1);\n\t\tfor (i = 1; i < l; ++i) args[i - 1] = arguments[i];\n\n\t\tlisteners = listeners.slice();\n\t\tfor (i = 0; (listener = listeners[i]); ++i) {\n\t\t\tapply.call(listener, this, args);\n\t\t}\n\t} else {\n\t\tswitch (arguments.length) {\n\t\tcase 1:\n\t\t\tcall.call(listeners, this);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tcall.call(listeners, this, arguments[1]);\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tcall.call(listeners, this, arguments[1], arguments[2]);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tl = arguments.length;\n\t\t\targs = new Array(l - 1);\n\t\t\tfor (i = 1; i < l; ++i) {\n\t\t\t\targs[i - 1] = arguments[i];\n\t\t\t}\n\t\t\tapply.call(listeners, this, args);\n\t\t}\n\t}\n};\n\nmethods = {\n\ton: on,\n\tonce: once,\n\toff: off,\n\temit: emit\n};\n\ndescriptors = {\n\ton: d(on),\n\tonce: d(once),\n\toff: d(off),\n\temit: d(emit)\n};\n\nbase = defineProperties({}, descriptors);\n\nmodule.exports = exports = function (o) {\n\treturn (o == null) ? create(base) : defineProperties(Object(o), descriptors);\n};\nexports.methods = methods;\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","import _extends from '@babel/runtime/helpers/esm/extends';\n\n/**\r\n * Actions represent the type of change to a location value.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#action\r\n */\nvar Action;\n\n(function (Action) {\n /**\r\n * A POP indicates a change to an arbitrary index in the history stack, such\r\n * as a back or forward navigation. It does not describe the direction of the\r\n * navigation, only that the current index changed.\r\n *\r\n * Note: This is the default action for newly created history objects.\r\n */\n Action[\"Pop\"] = \"POP\";\n /**\r\n * A PUSH indicates a new entry being added to the history stack, such as when\r\n * a link is clicked and a new page loads. When this happens, all subsequent\r\n * entries in the stack are lost.\r\n */\n\n Action[\"Push\"] = \"PUSH\";\n /**\r\n * A REPLACE indicates the entry at the current index in the history stack\r\n * being replaced by a new one.\r\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nvar readOnly = process.env.NODE_ENV !== \"production\" ? function (obj) {\n return Object.freeze(obj);\n} : function (obj) {\n return obj;\n};\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== 'undefined') console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nvar BeforeUnloadEventType = 'beforeunload';\nvar HashChangeEventType = 'hashchange';\nvar PopStateEventType = 'popstate';\n/**\r\n * Browser history stores the location in regular URLs. This is the standard for\r\n * most web apps, but it requires some configuration on the server to ensure you\r\n * serve the same app at multiple URLs.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\r\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$window = _options.window,\n window = _options$window === void 0 ? document.defaultView : _options$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation[0],\n nextLocation = _getIndexAndLocation[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better what\n // is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n var action = Action.Pop;\n\n var _getIndexAndLocation2 = getIndexAndLocation(),\n index = _getIndexAndLocation2[0],\n location = _getIndexAndLocation2[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n } // state defaults to `null` because `window.history.state` does\n\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation3 = getIndexAndLocation();\n\n index = _getIndexAndLocation3[0];\n location = _getIndexAndLocation3[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr[0],\n url = _getHistoryStateAndUr[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr2 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr2[0],\n url = _getHistoryStateAndUr2[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Hash history stores the location in window.location.hash. This makes it ideal\r\n * for situations where you don't want to send the location to the server for\r\n * some reason, either because you do cannot configure it or the URL space is\r\n * reserved for something else.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\r\n */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options2 = options,\n _options2$window = _options2.window,\n window = _options2$window === void 0 ? document.defaultView : _options2$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _parsePath = parsePath(window.location.hash.substr(1)),\n _parsePath$pathname = _parsePath.pathname,\n pathname = _parsePath$pathname === void 0 ? '/' : _parsePath$pathname,\n _parsePath$search = _parsePath.search,\n search = _parsePath$search === void 0 ? '' : _parsePath$search,\n _parsePath$hash = _parsePath.hash,\n hash = _parsePath$hash === void 0 ? '' : _parsePath$hash;\n\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation4 = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation4[0],\n nextLocation = _getIndexAndLocation4[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better\n // what is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop); // popstate does not fire on hashchange in IE 11 and old (trident) Edge\n // https://developer.mozilla.org/de/docs/Web/API/Window/popstate_event\n\n window.addEventListener(HashChangeEventType, function () {\n var _getIndexAndLocation5 = getIndexAndLocation(),\n nextLocation = _getIndexAndLocation5[1]; // Ignore extraneous hashchange events.\n\n\n if (createPath(nextLocation) !== createPath(location)) {\n handlePop();\n }\n });\n var action = Action.Pop;\n\n var _getIndexAndLocation6 = getIndexAndLocation(),\n index = _getIndexAndLocation6[0],\n location = _getIndexAndLocation6[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function getBaseHref() {\n var base = document.querySelector('base');\n var href = '';\n\n if (base && base.getAttribute('href')) {\n var url = window.location.href;\n var hashIndex = url.indexOf('#');\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href;\n }\n\n function createHref(to) {\n return getBaseHref() + '#' + (typeof to === 'string' ? to : createPath(to));\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation7 = getIndexAndLocation();\n\n index = _getIndexAndLocation7[0];\n location = _getIndexAndLocation7[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr3 = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr3[0],\n url = _getHistoryStateAndUr3[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr4 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr4[0],\n url = _getHistoryStateAndUr4[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Memory history stores the current location in memory. It is designed for use\r\n * in stateful non-browser environments like tests and React Native.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#creatememoryhistory\r\n */\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options3 = options,\n _options3$initialEntr = _options3.initialEntries,\n initialEntries = _options3$initialEntr === void 0 ? ['/'] : _options3$initialEntr,\n initialIndex = _options3.initialIndex;\n var entries = initialEntries.map(function (entry) {\n var location = readOnly(_extends({\n pathname: '/',\n search: '',\n hash: '',\n state: null,\n key: createKey()\n }, typeof entry === 'string' ? parsePath(entry) : entry));\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \" + JSON.stringify(entry) + \")\") : void 0;\n return location;\n });\n var index = clamp(initialIndex == null ? entries.length - 1 : initialIndex, 0, entries.length - 1);\n var action = Action.Pop;\n var location = entries[index];\n var listeners = createEvents();\n var blockers = createEvents();\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n search: '',\n hash: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction, nextLocation) {\n action = nextAction;\n location = nextLocation;\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n applyTx(nextAction, nextLocation);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n entries[index] = nextLocation;\n applyTx(nextAction, nextLocation);\n }\n }\n\n function go(delta) {\n var nextIndex = clamp(index + delta, 0, entries.length - 1);\n var nextAction = Action.Pop;\n var nextLocation = entries[nextIndex];\n\n function retry() {\n go(delta);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index = nextIndex;\n applyTx(nextAction, nextLocation);\n }\n }\n\n var history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n return blockers.push(blocker);\n }\n };\n return history;\n} ////////////////////////////////////////////////////////////////////////////////\n// UTILS\n////////////////////////////////////////////////////////////////////////////////\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n\nfunction promptBeforeUnload(event) {\n // Cancel the event.\n event.preventDefault(); // Chrome (and legacy IE) requires returnValue to be set.\n\n event.returnValue = '';\n}\n\nfunction createEvents() {\n var handlers = [];\n return {\n get length() {\n return handlers.length;\n },\n\n push: function push(fn) {\n handlers.push(fn);\n return function () {\n handlers = handlers.filter(function (handler) {\n return handler !== fn;\n });\n };\n },\n call: function call(arg) {\n handlers.forEach(function (fn) {\n return fn && fn(arg);\n });\n }\n };\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\r\n * Creates a string URL path from the given pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createpath\r\n */\n\n\nfunction createPath(_ref) {\n var _ref$pathname = _ref.pathname,\n pathname = _ref$pathname === void 0 ? '/' : _ref$pathname,\n _ref$search = _ref.search,\n search = _ref$search === void 0 ? '' : _ref$search,\n _ref$hash = _ref.hash,\n hash = _ref$hash === void 0 ? '' : _ref$hash;\n if (search && search !== '?') pathname += search.charAt(0) === '?' ? search : '?' + search;\n if (hash && hash !== '#') pathname += hash.charAt(0) === '#' ? hash : '#' + hash;\n return pathname;\n}\n/**\r\n * Parses a string URL path into its separate pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#parsepath\r\n */\n\nfunction parsePath(path) {\n var parsedPath = {};\n\n if (path) {\n var hashIndex = path.indexOf('#');\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n var searchIndex = path.indexOf('?');\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport { Action, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, parsePath };\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","// =========\n// = humps =\n// =========\n// Underscore-to-camelCase converter (and vice versa)\n// for strings and object keys\n\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n\n\n;(function(global) {\n\n var _processKeys = function(convert, obj, options) {\n if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {\n return obj;\n }\n\n var output,\n i = 0,\n l = 0;\n\n if(_isArray(obj)) {\n output = [];\n for(l=obj.length; i */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n rsUpper + '+' + rsOptUpperContr,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = camelCase;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\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 an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\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 an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\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 * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\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 * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\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 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\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 * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\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 * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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 * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\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 a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\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/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\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 an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\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 an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\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 an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\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 an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\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 a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\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 a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\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 a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\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 */\n function 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\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\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 a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\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 an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\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 `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\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 `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\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 a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\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 a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': ' + \ No newline at end of file From 5f7bd3ba123ab1264af03573f0e19ec14742b961 Mon Sep 17 00:00:00 2001 From: huweiqiang Date: Thu, 29 Feb 2024 14:54:45 +0800 Subject: [PATCH 11/11] update(setup.py): upgrade version from 0.9.5 to 0.10.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3e3bfab..4c0d64c 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup -version = "0.9.5" +version = "0.10.0" description = "A tool for CV dataset labeling, visualizing and analysing" with open("README.md", "r", encoding="utf8") as fp: